エクセルVBAでの動的配列
ご使用のアレイのサイズが大きくなると、あなたは、配列のサイズを修正したくない場合は、ReDimステートメントキーワードを使用することができます。エクセルVBAは自動的に配列のサイズを変更します。
A列にいくつかの数字を追加
ワークシート上のコマンドボタンを配置し、次のコード行を追加します。
1.まず、我々は、配列の名前の数字を宣言します。また、Integer型の2つの変数を宣言します。ワンという名前の大きさと私の名前1。
Dim numbers() As Integer, size As Integer, i As Integer
注:配列はまだ大きさを持っていません。番号、サイズ、および私がランダムにあなたがどんな名前を使用することができ、ここで選択されています。あなたのコードの残りの部分でこれらの名前を参照することを忘れないでください。
2.次に、我々は、配列のサイズを決定し、可変サイズにそれを格納します。あなたはこのためにワークシート関数COUNTAを使用することができます。次のコード行を追加します。
size = WorksheetFunction.CountA(Worksheets(1).Columns(1))
3.私たちは今、配列のサイズを知っているし、我々はそれを宣言し直すことができます。次のコード行を追加します。
ReDim numbers(size)
4.次に、我々は、配列の各要素を初期化します。私たちは、ループを使用しています。
For i = 1 To size numbers(i) = Cells(i, 1).Value Next i
5.私たちは、メッセージボックスを使用して、配列の最後の要素を表示します。
MsgBox numbers(size)
-
Visual Basicエディターを終了して、シート上のコマンドボタンをクリックしてください。
結果:
今7.は明らかにA列に番号を追加し、これは動的な配列と呼ばれる理由を確認し
再度コマンドボタンをクリックします8。
結論:エクセルVBAは、この動的配列のサイズを自動的に変更されました。
あなたはReDimステートメントキーワードを使用する場合9.あなたは現在、配列に格納されている既存のデータを消去します。例えば、以前に作成したコードに次のコード行を追加します。
ReDim numbers(3) MsgBox numbers(1)
結果:
配列は空です。
10.あなたは、あなたがそれを宣言し直す際に、既存のアレイにデータを保存したい場合は、preserveキーワードを使用します。
ReDim Preserve numbers(3) MsgBox numbers(1)
結果: