式の中では、まず変数を宣言しないと、その変数を使用することができません。変数は、指定された型の値を保持できます。利用できる型は、7 つの単純型(数値型、通貨型、文字列型、論理値型、日付型、時刻型、日時型)、6 つの範囲変数(数値型範囲、通貨型範囲、文字列型範囲、日付型範囲、時刻型範囲、日時型範囲)、およびこれらの型の配列を保持する変数です。したがって、変数が保持できる型は全部で 26 種類になります。
変数を宣言する場合は、変数名も指定します。変数に、関数名、演算子名、または Basic 構文で有効なほかのキーワードと同じ名前を付けることはできません。たとえば、変数に Sin、Mod、If などの名前を付けることはできません。なぜなら、Sin は組み込みの関数、Mod は組み込みの演算子、If は組み込みのキーワードだからです。式エディタを使って式を入力している場合、組み込みの関数、演算子、およびそのほかのキーワードを入力すると、それらは異なる色で強調表示されるので、変数名が衝突しているかどうかを確認することは簡単です。
宣言された変数は、式の中で使用できます。たとえば、初期値を代入できます。
Dim x As Number 'x を数値型の変数として宣言します x = 10 'x に値 10 を代入します
各宣言をカンマで区切ると、1 つのステートメントで複数の変数を宣言できます。
Dim x As Number, y as String, z as DateTime Range x = 10 : y = "こんにちは" z = #1999/1/1# To #1999/1/31#
一般に、変数の型は、宣言時に明示的に指定する必要がありません。その場合、変数の型は、その変数に対する最初の代入によって決まります。これは、特殊変数 formula に似ています。ただし、Visual Basic の場合とは異なります。Visual Basic では、宣言時に型が指定されない変数は自動的にバリアント型になります。しかし、実際に記述する式は、Visual Basic でバリアント型を使用する場合と似た形式になります。
Dim p 'p の型はまだ不明です p = "さようなら" 'p の型は、ここで文字列型に設定されます Dim q 'q の型はまだ不明です q = Array ("こんにちは", p) 'q は文字列型の配列になります 'エラー - p は文字列型の変数なので、数値は保持できません p = 25 Dim r 'r は数値型の変数で、値 5 を保持します r = (10 + 5) / 3 'a と c の型はまだ不明です Dim a, b As Boolean, c b = False 'a の型は、ここで論理値型に設定され、 'その値は False になります a = b 'c の型は、ここで数値値型に設定され、その値は 17 になります c = 2 + 3 * 5
範囲変数の宣言と初期化の例
Dim gradeA, quarter 'gradeA の型は数値型範囲に設定されます gradeA = 90 To 100 'quarter の型は日付型範囲に設定されます quarter = CDate (1999, 10, 1) To CDate (1999, 12, 31)