配列のサイズを動的に変更する方法
スポンサーリンク
Excel VBA で配列のサイズを変更するには、宣言時に動的配列として宣言します。その後 ReDim を使用して、インデックスの最大値を変更することができます。 Redim を使用する際は、一緒に Preserve を使用すると、サイズ変更前の値がそのまま保持されます。
サンプルコードは次の通りです。
VBA(実行可能なサンプルコード) | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | Option Explicit Sub Test() '最初に配列のサイズを決めない。動的配列として宣言する。 Dim strNames() As String Dim i As Integer '配列の最大インデックスを0に変更する。 ReDim Preserve strNames(0) strNames(0) = "太郎" For i = LBound(strNames) To UBound(strNames) Debug.Print ("1回目のループ:" & i & "の値→" & strNames(i)) Next i '配列の最大インデックスを5に変更する。 ReDim Preserve strNames(5) strNames(1) = "次郎" strNames(2) = "三郎" strNames(3) = "四郎" strNames(4) = "五郎" strNames(5) = "六郎" For i = LBound(strNames) To UBound(strNames) Debug.Print ("2回目のループ:" & i & "の値→" & strNames(i)) Next i End Sub |
上記の実行結果は次の通りです。
実行結果 | |
1 2 3 4 5 6 7 | 1回目のループ:0の値→太郎 2回目のループ:0の値→太郎 2回目のループ:1の値→次郎 2回目のループ:2の値→三郎 2回目のループ:3の値→四郎 2回目のループ:4の値→五郎 2回目のループ:5の値→六郎 |
スポンサーリンク
- 配列
- 配列のサイズを動的に変更する方法
- For Each で配列の全ての要素を処理する方法
- 2個の配列をマージする方法