Excel VBA 配列: VBA における配列の概要、使用方法、種類

VBA配列とは何ですか?

配列は、複数の値を格納できるメモリ位置として定義されます。 値はすべて同じデータ型である必要があります。 お気に入りの飲み物のリストを XNUMX つの変数に保存したいとします。これには VBA 配列を使用できます。

配列を使用すると、関連する値を同じ名前で参照できます。 インデックスまたは添え字を使用してそれらを区別できます。 個々の値は Excel VBA 配列の要素として参照されます。 これらはインデックス 0 から最大のインデックス値まで連続しています。

このチュートリアルでは、次を使用していることを前提としています。 Microsoft エクセル バージョン 2013。この知識は他のバージョンにも適用されます。 Microsoft エクセルもそう。

配列の利点は何ですか?

以下はVBA配列関数が提供する利点の一部です。

  1. 論理的に関連するデータをグループ化します。たとえば、学生のリストを保存したいとします。 生徒のカテゴリ (幼稚園、小学校、中学校、高校など) に個別の場所を持つ単一の配列変数を使用できます。
  2. 配列を使用すると、保守可能なコードを簡単に作成できます。 同じ論理的に関連するデータに対して、複数の変数を定義する代わりに、単一の変数を定義できます。
  3. パフォーマンスの向上 – 配列を定義すると、データの取得、並べ替え、および変更がより速くなります。

VBA の配列の種類

VBA は XNUMX 種類の配列をサポートしています。

  • 静的 – これらのタイプの配列には、保存できる要素の数があらかじめ決められています。 静的配列のデータ型のサイズは変更できません。 これらは、週の日数、性別などの既知のエンティティを操作する場合に便利です。次に例を示します。: 文字列としての Dim ArrayMonth(12)
  • ダイナミック – これらのタイプの配列には、保存できる要素の数があらかじめ決められていません。 これらは、数値を事前に決定できないエンティティを操作する場合に便利です。次に例を示します。: バリアントとしての Dim ArrayMonth()

配列を宣言する構文

静的配列

宣言するための構文 静的解析 配列は次のとおりです。

Dim arrayName (n) as datatype

ここに、

Code 行動
Dim arrayName (n) データ型
  1. これは、サイズが n でデータ型が である arrayName という配列変数を宣言します。サイズは、配列に格納できる要素の数を示します。

動的配列

宣言するための構文 動的解析 配列は次のとおりです。

Dim arrayName() as datatype
ReDim arrayName(4)

ここに、

Code 行動
Dim arrayName () データ型
  1. 要素数を指定せずにarrayNameという配列変数を宣言します。
ReDim 配列名(4)
  1. 配列が定義された後の配列サイズを指定します。

配列の次元

配列は XNUMX 次元、XNUMX 次元、または多次元にすることができます。

  • 一次元: この次元では、配列はインデックスを XNUMX つだけ使用します。 たとえば、各年齢の人数。
  • 二次元: この次元では、配列は XNUMX つのインデックスを使用します。 たとえば、各クラスの生徒の数などです。 クラス数と各クラスの生徒数が必要です
  • 多次元: この次元では、配列は 30 つ以上のインデックスを使用します。 たとえば、日中の気温です。 (40、20、XNUMX)。

Excel VBAで配列を使用する方法

簡単なアプリケーションを作成します。このアプリケーションは、配列変数からデータを Excel シートに入力します。この VBA 配列の例では、次のことを行います。

  • 新しいを作成します Microsoft Excel ワークブックを選択し、Excel マクロ有効ワークブック (*.xlsm) として保存します。
  • ワークブックにコマンド ボタンを追加する
  • コマンド ボタンの名前とキャプションのプロパティを設定する
  • Excel シートにデータを入力する VBA のプログラミング

この練習を段階的にやってみましょう。

ステップ 1 – 新しいワークブックを作成する

  1. Open Microsoft Excel
  2. 新しいワークブックを VBA Arrays.xlsm として保存します

ステップ 2 – コマンド ボタンを追加する

ご注意: このセクションは、Excel でインターフェイスを作成するプロセスに精通していることを前提としています。 慣れていない場合は、チュートリアルを読んでください VBA ExcelフォームコントロールとActiveXコントロール。 インターフェースの作成方法を説明します。

  1. シートにコマンドボタンを追加する

Excel VBAで配列を使用する

  1. name プロパティを cmdLoadBeverages に設定します。
  2. キャプション プロパティを「飲み物をロード」に設定します。

GUI は次のようになります。

Excel VBAで配列を使用する

ステップ 3 – ファイルを保存する

  1. 名前を付けて保存ボタンをクリックします
  2. 以下の図に示すように、Excel マクロ有効ワークブック (*.xlsm) を選択します。

Excel VBAで配列を使用する

ステップ 4 – コードを書く

次に、アプリケーションのコードを記述します。

  1. 「飲み物の読み込み」ボタンを右クリックし、「コードの表示」を選択します。
  2. cmdLoadBeveragesのクリックイベントに次のコードを追加します。
Private Sub cmdLoadBeverages_Click()
    Dim Drinks(1 To 4) As String
     
    Drinks(1) = "Pepsi"
    Drinks(2) = "Coke"
    Drinks(3) = "Fanta"
    Drinks(4) = "Juice"
     
    Sheet1.Cells(1, 1).Value = "My Favorite Beverages"
    Sheet1.Cells(2, 1).Value = Drinks(1)
    Sheet1.Cells(3, 1).Value = Drinks(2)
    Sheet1.Cells(4, 1).Value = Drinks(3)
    Sheet1.Cells(5, 1).Value = Drinks(4)
End Sub

ここに、

Code 行動
Dim Drinks(1 ~ 4) を文字列として表示
  • Drinks という配列変数を宣言します。最初の配列インデックスは 1 で、最後の配列インデックスは 4 です。
ドリンク(1)=「ペプシ」
  • 値 Pepsi を最初の配列要素に割り当てます。 他の同様のコードは、配列内の他の要素に対して同じことを行います。
Sheet1.Cells(1, 1).Value = 「私の好きな飲​​み物」。
  • 値 My Favorite Beverages をセル アドレス A1 に書き込みます。 Sheet1 はシートを参照し、Cells(1,1) は行番号 1 と列 1 (B) を参照します。
Sheet1.Cells(2, 1).Value = ドリンク(1)
  • インデックス 1 の配列要素の値を列 1 の行番号 XNUMX に書き込みます。

アプリケーションをテストする

[開発] タブを選択し、[デザイン モード] ボタンが「オフ」になっていることを確認します。 インジケーターは、色付き (緑がかった) 背景ではなく、白い背景を持つことです。 (下の画像を参照)

Excel VBA でのアプリケーションのテスト

「飲み物をロード」ボタンをクリックします

次のような結果が得られます

Excel VBA でのアプリケーションのテスト

上記のコードを含む Excel をダウンロード

上記のExcelコードをダウンロードします。

まとめ

  1. 配列は複数の値を格納できる変数です
  2. Excel VBA 静的配列と動的配列をサポートします
  3. 配列を使用すると、論理的に関連するデータに対して多数の変数を宣言する場合に比べて、保守可能なコードを簡単に作成できます。