「配列 中身 消す vba」
「excel vbaの配列に残ったデータを消す」
といった検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。
VBA(Visual Basic for Applications)で配列の再初期化を行うには、どのようなコードを書けばいいのかを探していた方による検索です。
まずは結論を。
VBAで配列の再初期化を行うには、Eraseステートメントを使ってください。
Eraseで静的配列の再初期化を行うサンプルマクロ
以下のようなマクロで、静的配列を再初期化する様子が確認できます。
Dim arr(1 To 3) As String
arr(1) = "松"
arr(2) = "竹"
arr(3) = "梅"
Stop
Erase arr
Stop
1つ目のStopステートメントの箇所で、ステップ実行モードになりますから、ローカルウィンドウで配列の中身を確認すると、下図のように「松」「竹」「梅」という文字列が格納されていることが確認できます。
[F5]キーを押して実行を継続して、2つ目のStopステートメントで一時停止したときには、Eraseステートメントで配列変数・arrが再初期化され、下図のように空白文字列が格納されていることを確認できます。
Eraseで動的配列の再初期化を行うサンプルマクロ
動的配列の場合、Eraseステートメントを実行したあとの様子が、静的配列の場合とは少々違います。
Dim arr() As String
ReDim arr(1 To 3)
arr(1) = "松"
arr(2) = "竹"
arr(3) = "梅"
Stop
Erase arr
Stop
1つ目のStopステートメントの箇所は、先ほどの静的配列の場合と同じですけれど、Erase実行後の2つ目のStopステートメントでは下図のようになっています。
先の静的配列の場合、Eraseしても配列要素のメモリは確保されたままだったわけですが、動的配列の場合は、配列要素のメモリの解放まで行われているということです。
「配列 中身 消す vba」
「excel vbaの配列に残ったデータを消す」
といった検索をなさった方が、何のために配列の再初期化をしようとしていたのかがわかりませんので、これ以上のことは語れませんがErase後にどのような状態になるのかを確認した上で、Eraseステートメントを使ってください。
- Newer:MergeArea.Itemとは
- Older:対数曲線の書き方
Home » エクセルマクロ・Excel VBAの使い方 » 配列 » 配列の再初期化を行う-Eraseステートメント