【VBA】変数宣言を行う方法
今回はVBAで変数宣言を行う方法を紹介します。
変数宣言の基本的なやり方の他に変数宣言を強制させる方法と、上級者向けの内容も紹介します。
変数宣言の基本と応用的な内容を確認してみてください。
この記事では↓の内容が分かります。
- 変数宣言を行う方法
- 変数を複数同時に宣言する方法
- 変数宣言を強制する方法
- 変数宣言はどこですればよいか(上級者向け)
- VBAでは初期値の設定はできない(上級者向け)
変数宣言を行う方法
Sub Sample1()
'Dim 変数名 As 変数のデータ型
Dim var As String
End Sub
VBAの変数宣言はこのように行います。
サンプルコードでは変数名をvar、変数のデータ型をStringにしています。
変数名は一部NGがありますが、自由に設定できます。 (VBAでは日本語もOK)
変数のデータ型は用途に応じて変更してください。主なデータ型には以下のようなものがあります。
宣言方法 | データ型 | 値の範囲 |
---|---|---|
String | 文字列型 | 0~2GB |
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.7976931348623E308~-4.94065645841247E-324(負の数) 4.94065645841247E-324~1.79769313486232E308(正の数) |
Date | 日付型 | 西暦100年1月1日~西暦9999年12月31日 |
Currency | 通貨型 | -922,337,203,685,477.5808~922,337,203,685,477.5807 |
Variant | バリアント型 | 倍精度浮動小数点数型の範囲と同じ 可変長の文字列型の範囲と同じ |
Object | オブジェクト型 | オブジェクトを参照するためのアドレス |
Byte | バイト型 | 0~255 |
なお、変数宣言はDimステートメント以外にも次のステートメントで行うことができます。
- Public
- Private
それぞれスコープ(変数の参照範囲)が違うため詳しくは下記記事をご覧ください。
変数を複数同時に宣言する方法
Sub Sample2()
'As 変数のデータ型はすべてに必要
Dim var1 As String, var2 As String
End Sub
変数を複数同時に宣言するにはサンプルコードのように記載します。
注意して欲しいのは「As 変数のデータ型」の部分で、宣言する変数すべてに必要です。
Dim var1, var2 As String
例えばこのように書くとvar1はデータ型を宣言しておらず、デフォルトのVariant型となってしまいます。
変数宣言を強制する方法(Option Explicit)
変数宣言を強制する方法を紹介します。
変数宣言を強制すると、宣言していない変数名を使用したときにコンパイルエラーで知らせてくれます。
タイプミスなどでエラーが発生するのを防げるため、基本的に強制するのがおすすめです。
やり方ですが、画像のようにツール⇒オプション⇒変数宣言を強制するにチェック⇒OKで設定できます。
設定するとモジュールの先頭に「Option Explicit」という文字が追加されます。
この文字があると変数宣言が強制されます。
変数宣言はどこですればよいか(上級者向け)
VBAでは変数宣言の位置に制約はありません。
C言語では変数に使うメモリを予め確定するため、プログラムの先頭で変数を宣言する必要があります。
そのため、C言語に慣れた方はすべての変数を先頭で宣言する事が多いです。
しかし、最近のプログラミング言語にはこのような習慣がなく、むしろ使う直前で宣言するのが主流となっています。
特別な理由が無ければ、変数宣言は使う直前で行うのをおすすめします。
VBAでは初期値の設定はできない(上級者向け)
C#やVBなどでは変数宣言と同時に初期値の設定(代入)ができます。
しかしVBAではこのような仕様がないため、変数宣言の後に代入が必要となります。