変数とは値を一時的に覚えておくためのものです。 イメージとしては、メモリ領域に確保された「箱」が変数であり、その中身が「変数の値」と言うような感じです。
変数は宣言をしないと使えません。 宣言とは「これからこういう変数を使うから、その準備をしなさい」とコンピュータに命令をするようなものです。 宣言に際して、変数の名前と「型」を決めなければなりません。
変数の名前は、値を入れておく箱の名前のことです。 たとえば、「年齢という数値を扱うための変数にはageという名前を付けることにする」とすれば、その変数はageという名前になります。
一方、型とは変数の扱える値の種類のことです。 たとえば、整数や実数、または文字などです。 この名前と型をもって変数を宣言する必要があります。
変数の宣言
変数の宣言はVB6からと概ね変わりありません。 宣言の構文は次の通りです。
次の例で宣言されている型はすべてVB.NETでのプリミティブ型(組み込み型)です。
VB.NETから新たに加わった型は、Short, Decimal, Char, Objectです。 また、Integer型は16ビットから32ビットへと変わりました。 それに伴いLong型も32ビットから64ビットへ格上げされました。
プリミティブ型
VB.NETでのプリミティブ型の表記は、すべて.NET Frameworkで定義された型の別名になっています。 次の二つのコードは表記が異なるだけで全く同じ意味です。
プリミティブ型はVB.NETに固有な型であるように見えますが、内部的にはC#など.NET Frameworkを使用する他の言語からも共通して使われる型と同じです。 また、これらのプリミティブ型はすべて構造体もしくはクラスになっていて、メソッドやプロパティを備えています。 これらの型の種類と値域などの詳細については、型の種類・サイズ・精度・値域で詳しく解説しています。
宣言と代入
Dimステートメントを用いて一行で複数の変数を宣言する場合、カンマで区切ることで宣言することができます。
次のコードは同じ意味になります。
VB6ではこの宣言方法を使用すると、aとbはVariant型になりましたが、VB.NETではすべてInteger型として宣言されます。
また、異なる型の変数も一行で宣言することができます。
さらに、VB.NETでは宣言と代入を同時に行えるようになっています。
上の三行と下の一行は等価です。 それぞれaに2、bに7、cに15が代入されます。
定数以外の値、たとえば変数の値でも代入することができます。 この例ではすべての変数が2に初期化されます。
このようにVB.NETではCやC#のような変数の宣言が可能になっています。
定数
定数を宣言するにはConstを用います。 定数として宣言された値は変更することができません。
サフィックス
変数や定数を宣言する時に値の型をより厳密にするためにサフィックスを付けることが出来ます。 デフォルトでは整数値はInteger、実数値はDoubleとみなされますが、LongやSingleと明示した上で代入したい場合などはそれぞれ次のように型を表す記号を値の後ろに付けます。
VBで指定できるサフィックスの一覧はリテラルとサフィックス §.サフィックスを参照してください。
静的変数
静的な変数を宣言するにはStaticを用います。 静的変数は、そのスコープから抜けても変数の値を保持し続けます。