変数を宣言して、その名前と特性を指定します。 変数の宣言ステートメントは Dim ステートメントです。 その場所と内容によって変数の特性が決まります。
変数の名前付け規則と考慮事項については、「 宣言された要素名」を参照してください。
宣言レベル
ローカル変数とメンバー変数
ローカル変数は、プロシージャ内で宣言される変数です。 メンバー変数は Visual Basic 型のメンバーです。クラス、構造体、またはモジュール内のモジュール レベルで宣言されますが、そのクラス、構造体、またはモジュールの内部のプロシージャ内では宣言されません。
共有変数とインスタンス変数
クラスまたは構造体では、メンバー変数のカテゴリは、それが共有されているかどうかによって異なります。 Shared キーワードを使用して宣言されている場合は共有変数であり、クラスまたは構造体のすべてのインスタンス間で共有される単一のコピーに存在します。
それ以外の場合は インスタンス変数であり、クラスまたは構造体のインスタンスごとに個別のコピーが作成されます。 インスタンス変数の特定のコピーは、作成されたクラスまたは構造体のインスタンスでのみ使用できます。 これは、クラスまたは構造体の他のインスタンス内のインスタンス変数のコピーとは無関係です。
データ型の宣言
宣言ステートメントの As 句を使用すると、宣言する変数のデータ型またはオブジェクト型を定義できます。 変数には、次のいずれかの型を指定できます。
基本データ型 (
Boolean
、Long
、またはDecimal
配列や構造体などの複合データ型
アプリケーションまたは別のアプリケーションで定義されているオブジェクト型またはクラス
インターフェイスの種類 ( IComparable や IDisposable
データ型を繰り返すことなく、1 つのステートメントで複数の変数を宣言できます。 次のステートメントでは、変数i
、j
、およびk
は型Integer
、l
とm
としてLong
として宣言され、Single
としてx
とy
されます。
Dim i, j, k As Integer
' All three variables in the preceding statement are declared as Integer.
Dim l, m As Long, x, y As Single
' In the preceding statement, l and m are Long, x and y are Single.
データ型の詳細については、「データ型」を参照 してください。 オブジェクトの詳細については、「 オブジェクトとクラス」および 「 コンポーネントを使用したプログラミング」を参照してください。
ローカル型推論
型推論 は、 As
句なしで宣言されたローカル変数のデータ型を決定するために使用されます。 コンパイラは、初期化式の型から変数の型を推論します。 これにより、型を明示的に指定せずに変数を宣言できます。 次の例では、 num1
と num2
の両方が整数として厳密に型指定されています。
Public Sub inferenceExample()
' Using explicit typing.
Dim num1 As Integer = 3
' Using local type inference.
Dim num2 = 3
End Sub
ローカル型推論を使用する場合は、 Option Infer
を On
に設定する必要があります。 詳細については、「 ローカル型の推論 」および 「Option Infer ステートメント」を参照してください。
宣言された変数の特性
変数の 有効期間 は、変数が使用できる期間です。 一般に、変数 (プロシージャやクラスなど) を宣言する要素が存在し続ける限り、変数が存在します。 変数が含まれる要素の有効期間を超えて既存の変数を継続する必要がない場合は、宣言で特別な操作を行う必要はありません。 変数が含まれる要素よりも長く存在し続ける必要がある場合は、 Static
または Shared
キーワードを Dim
ステートメントに含めることができます。 詳細については、「 Visual Basic の有効期間」を参照してください。
変数の スコープ は、名前を修飾せずに参照できるすべてのコードのセットです。 変数のスコープは、宣言される場所によって決まります。 特定のリージョンにあるコードでは、名前を修飾しなくても、そのリージョンで定義されている変数を使用できます。 詳細については、「 Visual Basic のスコープ」を参照してください。
変数の アクセス レベル は、アクセス許可を持つコードの範囲です。 これは、Dim
ステートメントで使用するアクセス修飾子 (パブリックやプライベートなど) によって決まります。 詳しくは、「Visual Basic でのアクセス レベル」を参照してください。
こちらも参照ください
.NET