配列の基礎知識について記載、第2回は動的配列および配列変数に格納した値の初期化の方法について 静的配列:変数の宣言時に要素数が確定している ReDimステートメントを使用し、要素数を設定する Eraseステートメントを使用し、配列変数の中身を初期化
動的配列と静的配列
動的配列:要素数が確定していない、そのため宣言の際には配列の宣言のみを行う
▼静的配列の記述例▼
tama-shi.hatenadiary.com【ReDim】を使用した動的配列の宣言・要素数の設定
ReDimは何回でも使ってよい、つまり要素数のリセットは何度でも行える
キーワード「Preserve」で、それまで格納していた要素をリセットせずに要素数のみリセットすることも可能
▼構文▼
1.配列のみを宣言:
Dim 配列変数() As データ型
2.文中での要素数の設定_ReDimのみ:
ReDim 配列変数(要素数-1)
3.文中での要素数の設定_ReDim + Preserve:
ReDim Preserve 配列変数(要素数-1)
▼要素数を文中で変更する記述例▼Sub hairetsu_test()
Dim hairetsu() As String
Dim i As Long
ReDim hairetsu(5)
For i = 1 To 5
hairetsu(i) = i & "個め"
Next i
For i = 1 To 5
Debug.Print hairetsu(i) 'イミディエイトウィンドウに表示
Next i
ReDim hairetsu(10)
For i = 6 To 10
hairetsu(i) = i & "個め"
Next i
For i = 6 To 10
Debug.Print hairetsu(i) 'イミディエイトウィンドウに表示
Next i
End Sub
▼要素数を文中で変更する際に要素を保持する記述例▼Sub hairetsu_test()
Dim hairetsu() As String
Dim i As Long
ReDim hairetsu(5)
For i = 1 To 5
hairetsu(i) = i & "個め"
Next i
ReDim Preserve hairetsu(10) '格納した要素を保持しつつ要素数を変更
For i = 6 To 10
hairetsu(i) = i & "個め"
Next i
For i = 1 To 10
Debug.Print hairetsu(i) 'イミディエイトウィンドウに表示
Next i
End Sub
【Erase】を使用して配列変数の要素の初期化
静的配列の場合は値の削除のみ、動的配列の場合は値とメモリの両方を削除
▼構文▼
Erase 配列変数
▼要素の中身を文中で初期化する記述例▼Sub hairetsu_test()
Dim hairetsu() As String
Dim i As Long
ReDim hairetsu(5)
For i = 1 To 5
hairetsu(i) = i & "個め"
Next i
Erase hairetsu '格納した要素を初期化
For i = 6 To 10
hairetsu(i) = i & "個め"
Next i
For i = 1 To 10
Debug.Print hairetsu(i) 'イミディエイトウィンドウに表示
Next i
End Sub