項目
動的配列の利用
概要
動的配列を利用する場合には、Redimを使用します。
RedimにPreserveを指定すると既存の配列に格納されている値を失うことなく
配列の最後の次元の要素数を変更する事ができます。
Preserveを指定しない場合には既存の値を失います。
方法
Option Compare Database
Option Explicit
'---------------------------------------------------
'■Preserveを指定しない場合
'---------------------------------------------------
Private Sub btArrayTest1_Click()
Dim arrayTest() As String
Dim element
ReDim arrayTest(1)
arrayTest(0) = "arrayTest0の要素"
arrayTest(1) = "arrayTest1の要素"
For Each element In arrayTest
Debug.Print element
Next
'============================
'(出力結果)
'----------------------------
'arrayTest0の要素
'arrayTest1の要素
'----------------------------
ReDim arrayTest(3)
arrayTest(2) = "arrayTest2の要素"
arrayTest(3) = "arrayTest3の要素"
For Each element In arrayTest
Debug.Print element
Next
'============================
'(出力結果)
'----------------------------
'arrayTest2の要素
'arrayTest3の要素
'----------------------------
End Sub
'---------------------------------------------------
'■Preserveを指定した場合
'---------------------------------------------------
Private Sub btArrayTest2_Click()
Dim arrayTest() As String
Dim element
ReDim arrayTest(1)
arrayTest(0) = "arrayTest0の要素"
arrayTest(1) = "arrayTest1の要素"
For Each element In arrayTest
Debug.Print element
Next
'============================
'(出力結果)
'----------------------------
'arrayTest0の要素
'arrayTest1の要素
'----------------------------
ReDim Preserve arrayTest(3) 'Preserveを指定
arrayTest(2) = "arrayTest2の要素"
arrayTest(3) = "arrayTest3の要素"
For Each element In arrayTest
Debug.Print element
Next
'============================
'(出力結果)
'----------------------------
'arrayTest0の要素
'arrayTest1の要素
'arrayTest2の要素
'arrayTest3の要素
'----------------------------
End Sub