変数 Newキーワード変数宣言のいろいろ

※より実装に近く表示させる為、コードの改行を避けています。スマホ等で閲覧される際は向きを変えてご覧ください。

※実装するバージョンによってはバージョンアップの仕様により動作しないコードもあります。実装には動作確認の上ご使用下さい。


'省略可能です。
'このキーワードを指定すると、オブジェクトを暗黙的に作成できます。
'オブジェクト変数を宣言するときにキーワード New を指定した場合は、
'オブジェクトを最初に参照したときにオブジェクトの新しいインスタンスが作成されるので、
'Set ステートメントを使ってオブジェクトへの参照を代入する必要はありません。
'キーワード New を使って、固有のデータ型の変数の宣言、
'または従属オブジェクトのインスタンスの宣言はできません。
'また、キーワード New は、キーワード WithEvents と共に使用できません。
'-----------------------------------------------------------------------------------
'Dim ステートメント
'
'Dim ステートメントの使用例
'次の例は、Dim ステートメントを使って、変数や配列を宣言する方法です。配列の添字の最小値は既定値では 0 ですが、
'Option Base ステートメントを使えば、モジュール レベルで変更できます。

' 変数 AnyValue と変数 MyValue は既定のバリアント型 (Variant)
' として宣言されて、値は Empty 値が設定されます。
Dim AnyValue, MyValue

' 整数型 (Integer) の変数を明示的に宣言します。
Dim Number As Integer

' 1 行で複数の変数を宣言します。型が指定されていないので、
' 変数 AnotherVar はバリアント型になります。
Dim AnotherVar, Choice As Boolean, BirthDate As Date

' 変数 DayArray は、要素数 51 のバリアント型配列として宣言されます。
' 現在のモジュールで、Option Base に既定値の 0 が設定されていれば、
' 添字の範囲は、0 ~ 50 になります。
Dim DayArray(50)

' 変数 Matrix は、整数型の 2 次元配列です。
Dim Matrix(3, 4) As Integer

' MyMatrix は、倍精度浮動小数点数型 (Double) の 3 次元配列です。
' 添字の範囲を、明示的に指定しています。
Dim MyMatrix(1 To 5, 4 To 9, 3 To 5) As Double

' BirthDay は、添字が 1 ~ 10 の範囲の日付型 (Date) の配列です。
Dim BirthDay(1 To 10) As Date

' MyArray は、バリアント型の動的配列です。
Dim MyArray()

'-----------------------------------------------------------------------------------
'Private ステートメント
'
'Private ステートメントの使用例
'次の例では、Private ステートメントをモジュール レベルで使って、変数をプライベートとして宣言しています。
'このような変数は、宣言を行っているモジュール内でのみ使用可能となります。

Private Number As Integer    ' 整数型の変数をプライベートにします。
Private NameArray(1 To 5) As String
                            ' 配列変数をプライベートにします。
' 1 行で複数の変数を宣言します。
' 2 つのバリアント型変数と 1 つの整数型変数がすべてプライベートになります。
Private MyVar, YourVar, ThisVar As Integer

'-----------------------------------------------------------------------------------
'Public ステートメント
'
'Public ステートメントの使用例
'次の例では、標準モジュールのモジュール レベル (宣言セクション) で、Public ステートメントを使って、
'変数を明示的にパブリックとして宣言します。このように宣言された変数は、Option Private Module が有効でない限り、
'すべてのアプリケーションの全モジュールの全プロシージャから使うことができます。

Public Number As Integer        ' 整数型変数をパブリックにします。
Public NameArray(1 To 5) As String
                                ' 配列変数をパブリックにします。
' 1 行で複数の変数を宣言します。
' 2 つのバリアント型変数と 1 つの整数型変数がすべてパブリックになります。
Public MyVar, YourVar, ThisVar As Integer

'-----------------------------------------------------------------------------------
'Set ステートメント
'
'Set ステートメントの使用例
'次の例では、Set ステートメントを使って、オブジェクトへの参照を変数に代入します。
'YourObject は、Text プロパティを持つ有効なオブジェクトであるとします。

Dim YourObject, MyObject, MyStr
Set MyObject = YourObject    ' オブジェクトへの参照を代入します。
' MyObject と YourObject は、同一のオブジェクトを参照します。
YourObject.Text = "Hello World"    ' プロパティを初期化します。
MyStr = MyObject.Text        ' Hello World" を返します。

' 関連付けを解除します。MyObject は、YourObject を参照しなくなります。
Set MyObject = Nothing        ' オブジェクトを解放します。

'-----------------------------------------------------------------------------------
'Static ステートメント
'
'Static ステートメントの使用例
'次の例では、Static ステートメントを使って、モジュール コードが実行されている間、変数の値を保持します。

' 関数を定義します。
Function KeepTotal(Number)
    ' 次にこの関数が呼び出されるときまで値が保持されるのは、
    ' 変数 Accumulate だけです。
    Static Accumulate
    Accumulate = Accumulate + Number
    KeepTotal = Accumulate
End Function

Static ステートメントを使って関数を定義します。
Static Function MyFunction(Arg1, Arg2, Arg3)
    ' すべてのローカル変数の値は、この関数が次に呼び出されるときまで
    ' 保持されます。
    Accumulate = Arg1 + Arg2 + Arg3
    Half = Accumulate / 2
    MyFunction = Half
End Function

 

 

 

2000年01月01日|[VBサンプルコード]:[変数]