【Excelマクロ】配列の仕組みとVBAによる作成方法を紹介

スポンサーリンク

アイキャッチ画像

この記事では、配列の仕組みとVBAでの配列の作り方について紹介しています。この記事を読めば、配列の基本的な内容を理解することができます。

 

VBAの環境構築がまだの人はは以下を参考にしてださい。

 

まず配列について簡単に紹介します。

配列とは

配列とは簡単に言えば、データが格納された箱のようなものです。

 

例えば、「fruits」という箱があるとして、その中には「りんご」「ぶどう」「パイナップル」という文字列のデータが格納されているとします。イメージとしては以下の通りです。

fruits = ['りんご’, 'ぶどう', 'パイナップル']

 

また、配列に格納されたデータはインデックス番号というものが振られています。インデックス番号は、1からではなく、0から数えます。

 

上記の配列fruitsの場合のインデックス番号とデータは以下の通りです。

インデックス番号0 → りんご

インデックス番号1 → ぶどう

インデックス番号2 → パイナップル

 

VBAの配列作成方法

VBAで配列を作る方法は大きく2つあります。

  1. データ数を決めて作成
  2. データ数を決めずに作成

 

1.データ数を決めて作成

データ数を決めて作成するプログラムは以下の通りです。

    ' ここで配列宣言
Dim fruits(2) fruits(0) = "りんご" fruits(1) = "ぶどう" fruits(2) = "パイナップル" Dim num For num = 0 To 2 Cells(num + 1, 1) = fruits(num) Next

 

最初に変数を宣言する際に()でデータ数を決めています。ここで注意点としては、()内の数字は、インデックス数ではなく、()内の数字のインデックス番号までという意味です。

 

For文を使って、内容を確認してみると、以下のようにセルに配列の内容が入力されています。

マクロ実行後

 

For文の使い方については、以下をご覧ください。

 

2.データ数を決めずに作成

次に、データ数を決めずに配列を作成する方法ですが、プログラムは以下の通りです。

    ' ここで配列宣言
    Dim fruits
    fruits = Array("りんご", "ぶどう", "パイナップル")
    
    Dim num
    For num = 0 To 2
        Cells(num + 1, 1) = fruits(num)
    Next

 

ここではArray関数を利用しています。結果は、先ほど同様で以下の通りです。

マクロ実行後

 

また、異なるデータ型でも同じ配列に格納することが可能です。

    ' ここで配列宣言
    Dim s
    s = Array(1, "りんご", 3)
    
    Dim num
    For num = 0 To 2
        Cells(num + 1, 1) = TypeName(s(num))
    Next

TypeName関数でデータ型を調べています。プログラムを実行後、以下の画像のように、Integer型、String型、Integer型といったように1→数値、りんご→文字列、3→数値とデータ型が異なっている配列を作成できています。

マクロ実行後

 

以上、配列の仕組みとVBAによる配列作成方法でした。以下、VBAを学ぶのにおすすめの書籍となっています。ぜひ参考にしてください。