【EXCEL VBA | 基礎コード】二次元配列って何?

スポンサーリンク

二次元配列

EXCEL VBAの基本コードを紹介しています。初心者の方が順番に読んでくだけでVBAの基礎コードが理解出来るようになればなと思って、短めの記事で進めて行きたいと思います!

今回は、"二次元配列"について紹介します!

二次元配列とは

前回"配列"について説明しました。

※"配列"についての記事はこちら

"二次元配列"も"配列"です。"二次元配列"と比較して、前回説明した"配列"を表現すると、前回のは、"一次元配列"となります。

次元とは

n個の変数で状態を記述する時、そのnを次元と言う。例、直線は一次元、平面は二次元、空間の三方向のひろがりを表す時は三次元。

ということなので、"配列"の要素の箱の広がり方だと捉えると良いと思います。

"一次元配列"は、次の図のように一方向への広がりになっています。

//取り出す時
配列名(要素番号)

というように表現しましたね。

一方。二次元"配列"はというとこんな形になります。

横方向と縦方向の二方向への広がりがあるのが二次元ですので、こんなイメージになりますね。

何かに似ていますね。

真上から見てみるともっと分かりやすいです。

真上から見た図

はい、もう分かりましたね。

そうです。お馴染みのEXCELシートの表と同じ形です!

この図からも見て分かる通り、"二次元配列"の形はEXCELの表をデータを扱う上で、めちゃくちゃ分かりやすいのでめちゃくちゃ使います。

二次元配列の作り方と呼び出し方

VBAで"二次元配列"作るときには、"一次元配列"の時と同じように、まずは二次元配列を宣言します。

Dim 配列名(一次元目の要素の最大要素番号,二次元目の要素の最大要素番号) As データ型

上の図の例で言うと、次のような形になります。(名前を入れる予定なので文字列型に指定)

Dim names2(4, 2) As String

表の列と、行の数を指定していると考えると分かりやすいかもしれないですね。

具体的には、これは次のように、一次元配列の各要素の中に、更に一次元配列が格納されていると考えることが出来ます。

図で見てみましょう。

具体的にデータで考えてみましょう。

こんな感じでデータが入ります。

なんとなく分かって来ましたか?

Aの配列の0番の要素にあるBの配列の0番が「たろう」です。

Aの配列の2番の要素にあるBの配列の1版が「ごろう」です。

呼び出す場合は、

配列名(Aの配列の要素番号, Bの配列の要素番号)

というように書きます。

上の図の「ごろう」は次のようになります。

names2(2, 1)

他の要素も図にまとめました。

とう言うことで、実際に上の"二次元配列"を登録して呼び出してみましょう!

次のコードをVBEに書いて実行してください。

二次元配列「names2」を宣言して、各要素を登録して、Debug.Printでイミディエイトウィンドウに表示させるプログラムです。

Sub test()

    ' ①二次元配列の宣言
    Dim names2(4, 2) As String
    
    '②値の代入
    names2(0, 0) = "たろう"
    names2(0, 1) = "じろう"
    names2(0, 2) = "さぶろう"
    names2(1, 0) = "はなこ"
    names2(1, 1) = "ともこ"
    names2(1, 2) = "きくこ"
    names2(2, 0) = "じろう"
    names2(2, 1) = "ごろう"
    names2(2, 2) = "ろくろう"
    names2(3, 0) = "たま"
    names2(3, 1) = "みけ"
    names2(3, 2) = "ぽち"
    names2(4, 0) = "ケン"
    names2(4, 1) = "マイク"
    names2(4, 2) = "ベン"

    '③呼び出し
    Debug.Print (names2(0, 0))
    Debug.Print (names2(0, 1))
    Debug.Print (names2(0, 2))
    Debug.Print (names2(1, 0))
    Debug.Print (names2(1, 1))
    Debug.Print (names2(1, 2))
    Debug.Print (names2(2, 0))
    Debug.Print (names2(2, 1))
    Debug.Print (names2(2, 2))
    Debug.Print (names2(3, 0))
    Debug.Print (names2(3, 1))
    Debug.Print (names2(3, 2))
    Debug.Print (names2(4, 0))
    Debug.Print (names2(4, 1))
    Debug.Print (names2(4, 2))

End Sub

実行動画

二次元配列の要素の変更

要素の変更も一次元配列と同じです。変更したい要素を指定して代入すればOKです。

「ごろう」の要素を変更するコードは次ですね。

names2(2, 1) = "変更したごろう"

やってみます。

Sub test()

    ' ①二次元配列の宣言
    Dim names2(4, 2) As String
    
    '②値の代入
    names2(0, 0) = "たろう"
    names2(0, 1) = "じろう"
    names2(0, 2) = "さぶろう"
    names2(1, 0) = "はなこ"
    names2(1, 1) = "ともこ"
    names2(1, 2) = "きくこ"
    names2(2, 0) = "じろう"
    names2(2, 1) = "ごろう"
    names2(2, 2) = "ろくろう"
    names2(3, 0) = "たま"
    names2(3, 1) = "みけ"
    names2(3, 2) = "ぽち"
    names2(4, 0) = "ケン"
    names2(4, 1) = "マイク"
    names2(4, 2) = "ベン"
    
    '要素の変更
    names2(2, 1) = "変更したごろう"
    
    '③呼び出し
    Debug.Print (names2(2, 1))
End Sub

実行してみましょう。

バッチリですね(^^)

まとめ

二次元配列について説明しました。VBAでEXCELを操作する上では必須の知識になります。しっかり整理して覚えましょう!

「使えんのかもしれんけど、データ登録するのめちゃくちゃめんどくさくね?なげーし。」と思った方。もちろん通常は一個ずつ登録はしません。簡単に登録する方法もこれからやっていきますので安心してください!