Kの備忘録(仮)

Python、VBA、Excelを中心に記事を投稿

Excel VBAの配列にはどんな種類があるのか - 多次元配列 -

はじめに

前回は、1次元配列について説明しました。

lbibouroku.hatenablog.com

今回は予告どおり、多次元配列について説明します。

◆目次◆

多次元配列とは

たとえば2次元配列であれば、縦と横に並べた箱の集合体、3次元配列であれば、さらに奥行きがある箱の集合体を想像してください。

f:id:lbibouroku:20210820194610p:plain

この図のように、それぞれの箱にはインデックスが割り振られています。
2次元配列の場合は、左から縦向き、横向きのインデックスを指します。
3次元配列の場合は、左から奥行き、縦向き、横向きのインデックスを指します。

Excelは行と列で構成されています。 2次元配列は行と列の値を格納できるので、Excel VBAで使用すると便利です。

2次元配列のコードの書き方は1次元配列と同じです。 配列の変数を宣言し、値を入れます。

では、6つの箱にそれぞれの値を入れて、配列を作りましょう。

  • インデックス0,0:American Coffee
  • インデックス0,1:Earl Grey Tea
  • インデックス0,2:Almond Milk
  • インデックス1,0:Blended Coffee
  • インデックス1,1:Ceylon Tea
  • インデックス1,2:Soy Milk

f:id:lbibouroku:20210820194853p:plain

それぞれの箱に値を入れました。この配列をコードで書くと以下のとおりです。

Sub array1_3()

    Dim drinks(1, 2) As String
    
    drinks(0, 0) = "American Coffee"
    drinks(0, 1) = "Earl Grey Tea"
    drinks(0, 2) = "Almond Milk"
    drinks(1, 0) = "Blended Coffee"
    drinks(1, 1) = "Ceylon Tea"
    drinks(1, 2) = "Soy Milk"

End Sub

もちろん、インデックスの開始位置を0以外にすることも可能です。

たとえば、インデックスを「1,1」から開始する場合、以下のコードになります。

Sub array1_4()

    Dim drinks(1 To 2, 1 To 3) As String
    
    drinks(1, 1) = "American Coffee"
    drinks(1, 2) = "Earl Grey Tea"
    drinks(1, 3) = "Almond Milk"
    drinks(2, 1) = "Blended Coffee"
    drinks(2, 2) = "Ceylon Tea"
    drinks(2, 3) = "Soy Milk"

End Sub

f:id:lbibouroku:20210820194920p:plain

図にすると、インデックスがExcelのセルのように見えませんか。何回か後の記事で、実際にセルの値を使った配列のコードの書き方も説明しますので、しばらくお待ちください。

さいごに

いかがでしたか。多次元配列になると、さまざまな方向に値の格納ができるようになりました。

次回は静的配列と動的配列について説明します。