水曜日, 3月 01, 2023

Excel VBA 04 
変数にデータ型と演算子

変数とは、データの入れ物で、以下の様に宣言します。

Dim 変数名 As データ型(integer,String,Variant等)
Dim 変数名 As オブジェクト名(WorkSheet、Range等

DimとはDimension(要素、範囲)の略で、Excel-VBAでは、変数に「どの値が代入されることを許すか」の宣言するために使用します。データ型には以下の様なものがあります。なお、Excel VBAでは、型を指定しない場合、変数の型はバリアント(Variant)型がデフォルトになります。

例) Dim my_data As Integer
※変数名は日本語でも問題ありません。
例) Dim 私の数値 As Integer

データ型一覧
ただし、以下の4つだけ覚えていればほとんど困りません。


ソース記述例は・・・
--------------------
Sub 加算A()
' マクロを開始する
Dim data1, data2 As Integer
' data1とdata2はInteger設定
data1 = 12
' data1に12を入れる
data2 = 34
' data2に34を入れる
MsgBox data1 + data2
' メッセージボックスにdata1とdata2の加算結果を表示
End Sub ' マクロを終了
--------------------
※「'」以降はコメント文

実際に任意のセルを指定する場合は・・・
--------------------
Sub 加算B()
' マクロを開始する
Dim data1, data2 As Range
' data1とdata2はRange設定
Set data1 = Range("B2")
' B2セルの値をdata1に入れる
Set data2 = Range("C2")
' C2セルの値をdata2に入れる
MsgBox data1 + data2
' メッセージボックスにdata1とdata2の加算結果を表示
End Sub ' マクロを終了
--------------------
※「'」以降はコメント文
※セルデータを読み込むのでIntegerではなくてRange

data1とdata2をInputBoxで入力し、結果をA2セルに書き出す場合は・・・
--------------------
Sub 加算C()
' マクロを開始する
Dim data1, data2 As Double
' data1とdata2はRange設定
data1 = CDbl(InputBox("最初の値"))
' InputBoxに最初の値data1を入力
data2 = CDbl(InputBox("次の値"))
' InputBoxに最初の値data2を入力
Range("A1").Value = data1 + data2
' A1セルにdata1とdata2の加算結果を書き出す
End Sub ' マクロを終了
--------------------

data1とdata2をInputBoxで入力し、書き出しセルを指定する場合は・・・
--------------------
Sub 加算D()
' マクロを開始する
Dim data1, data2 As Double
Dim RowNumber As Long
Dim ColumnNumber As Long
' data1, data2はDouble設定
' RowNumberはLong設定
' ColumnNumberはLong設定
data1 = CDbl(InputBox("最初の値"))
' InputBoxに最初の値data1を入力
data2 = CDbl(InputBox("次の値"))
' InputBoxに最初の値data2を入力
RowNumber = CDbl(InputBox("行番号"))
ColumnNumber = CDbl(InputBox("列番号"))
Cells(RowNumber, ColumnNumber).Value = data1 + data2
' 指定セルにdata1とdata2の加算結果を入力
End Sub ' マクロを終了
--------------------
※CDbl()は、指定した式を倍精度浮動小数点数型に変換しますが、ここでは以下の様に記述しなくても大丈夫です。

RowNumber = CDbl(InputBox("行番号"))
        ↓
RowNumber = InputBox("行番号")

比較演算子は他のプログラム系と同じです。
なお、算術演算子も比較演算子と同様に他のプログラム系と同じです。

※2023/03/18 追加修正
 2023/09/21 追加修正