VBAには動的配列があると言いました。
動的配列はReDimステートメントを使用して配列の要素数を変更することができますが、再度、要素数を変更すると全要素は破棄されます。以下、例です。
Sub macro()
Dim arr() As String
ReDim arr(1) ' 要素数変更
arr(0) = "a"
arr(1) = "b"
For Each i In arr
Debug.Print i
Next i
ReDim arr(2) ' 再度要素数変更
For Each i In arr
Debug.Print i
Next i
End Sub
結果は以下のようになります。
a
b
これを破棄されないようにするには、再度要素数変更する場合は、「ReDim Preserve」と宣言します。
上記の例で、再度要素数変更箇所だけPreserveを付け加えます。
Sub macro()
Dim arr() As String
ReDim arr(1) ' 要素数変更
arr(0) = "a"
arr(1) = "b"
For Each i In arr
Debug.Print i
Next i
ReDim Preserve arr(2) ' 再度要素数変更
For Each i In arr
Debug.Print i
Next i
End Sub
結果は以下のようになります。
a
b
a
b
KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES6),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^
コメント