プロシージャでVBAコードを記述する際に、何回も繰り返されるものやその都度、値が変化するようなものには変数を利用します。変数を用いることでデータを利用しやすくすることができます。簡単に説明すると、データや処理結果などを格納するための箱のようなものです。では、例を見てください。
Sub test()
Dim data As String
data = "変数を使っています。"
MsgBox data
End Sub
この例では、dataという変数を使っています。"変数を使っています"という文字列をdataという箱(変数)に格納して、メッセージとして表示しなさいという意味になります。変数名は任意に付けられますが、VBAなどで予約されているプロパティ、メソッド、関数などで使用されている文字は使えません。
変数は原則的に使用する前に宣言を行います。つまり、変数を使う前にあらかじめ使用することを明言することになります。変数の宣言は以下のようにします。
Dim 変数名 As 型宣言文字
型宣言文字は、変数の内容のデータ型となります。変数の中に格納するものが数値であれば「Integer(整数型)、Single(単精度浮動小数点型)」、文字であれば「String(文字列型)」などとなります。
もし、型宣言文字による指定を怠ると、変数はVariant型となってしまい、プログラムの処理スピードが劣ることになります。なるべく宣言をし、適切な型宣言文字を指定することにします。
変数宣言する場所は、プロシージャ内であればどこでもかまいません。通常は、プロシージャの最初にまとめて宣言するほうが、メンテナンスの際に便利です。
データ型 | 型宣言文字 | 格納可能なデータの範囲、条件 |
---|---|---|
バイト型 | Byte | 0~255 |
ブール型 | Boolean | 真(True)または偽(False) |
整数型 | Integer | -32,768~32,767 |
長整数型 | Long | -2,147,483,648~2,147,483,647 |
単精度浮動小数点型 | Single | -3.402823E38~-1.401298E-45(負の値) 1.401298E-45~3.402823E38(正の値) |
倍精度浮動小数点型 | Double | -1.79769313486232E308~ -4.94065645841247E-324(負の値) 4.94065645841247E-324~ 1.79769313486232E308(正の値) |
通貨型 | Currency | |
日付型 | Date | |
文字列型 | String | 0~2GB |
オブジェクト型 | Object | |
バリアント型 | Variant | 数値、文字列に扱える |
変数にデータを格納するには、右辺から左辺の変数に代入する形をとります。
例)
Name = "氏名"
… 変数Nameに「氏名」と言う文字を格納する。
hiduke = #2005/11/3#
… 変数hidukeに「2005年11月3日」という日付を格納する。
atai = 100 * 50
… 変数ataiに100に50を掛けた結果を格納する。
上の例を見てもらえればわかるように、単に文字だけであればダブルクォーテーションで囲みますが、日付の場合は「#」で囲みます。また、数値や演算子を使う場合は、直接そのまま記述します。