/ / Excel VBAでのダイナミック配列

Excel VBAでの動的配列

配列のサイズが大きくなり、配列のサイズを修正したくない場合は、 ReDimキーワード. Excel VBA 配列のサイズを自動的に変更します。

列Aにいくつかの数値を追加します。

Excel VBAでの動的配列

ワークシートにコマンドボタンを配置し、次のコード行を追加します。

1.まず、numbersという名前の配列を宣言します。 Integer型の2つの変数も宣言します。 1つの名前付きサイズと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を使用して配列の最後の要素を表示します。

MsgBox numbers(size)

6. Visual Basic Editorを終了し、シート上のコマンドボタンをクリックします。

結果:

配列の最後の要素

7.なぜこれが動的配列と呼ばれるのかを明確に理解するために、列Aに数値を追加します。

加算

8.もう一度コマンドボタンをクリックします。

ダイナミックアレイ結果

結論:Excel VBAはこの動的配列のサイズを自動的に変更しました。

9. ReDimキーワードを使用すると、配列に現在格納されている既存のデータがすべて消去されます。たとえば、以前に作成したコードに次のコード行を追加します。

ReDim numbers(3)
MsgBox numbers(1)

結果:

保存なし

配列は空です。

10.既存の配列の次元を変更するときにデータを保持する場合は、Preserveキーワードを使用します。

ReDim Preserve numbers(3)
MsgBox numbers(1)

結果:

保存して

また読む: