変数とは、データの入れ物で、以下の様に宣言します。
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つだけ覚えていればほとんど困りません。
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7CHyzoxEHrUc6iugl5xP6RkH1gI7IVNqI3huXnJKcsQnEh0zZISUJVozSQt0bL0Rd_XRQOO9wP6swacB_S9sPX47zLZNa0M8_WBflpJTCfNwP_wYVcqroxc9lsgZy7hQY5mB2gwD2dcUwWa0aTuI6QOOtvB7LW0OrjnmqF1-jM-uR2zWhAQVZH-k/s1600/PIC16787.jpg)
ソース記述例は・・・
--------------------
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 ' マクロを終了
--------------------
※「'」以降はコメント文
--------------------
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 ' マクロを終了
--------------------
--------------------
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 追加修正