VBAには動的配列があると言いました。
動的配列はReDimステートメントを使用して配列の要素数を変更することができますが、再度、要素数を変更すると全要素は破棄されます。以下、例です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
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 |
結果は以下のようになります。
1 2 |
a b |
これを破棄されないようにするには、再度要素数変更する場合は、「ReDim Preserve」と宣言します。
上記の例で、再度要素数変更箇所だけPreserveを付け加えます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
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 |
結果は以下のようになります。
1 2 3 4 |
a b a b |

KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES6),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^
資格:少額短期保険募集人,FP3級