【エクセルVBA】3次元配列の作成!セル上データを3D配列に格納してみる

こんにちは、ヒガシです。

 

このページでは、VBA上で3次元配列を作成する方法をご紹介していきます。

 

それではさっそくやっていきましょう!

 

スポンサーリンク

実施内容のイメージ共有

まずは以降でどんな処理を実施していくかのイメージを共有しておきましょう。

 

今回は、以下の画像に示すように、エクセルシート上に記述されているデータをVBA上で3次元配列として格納していきます。

セル上のデータを3次元配列に格納するという作業イメージ

 

スポンサーリンク

VBA上での3次元配列の作り方

VBA上で3次元配列を作成する方法は以下の通りです。

Dim array_name(*, *, *) As Variant

ここでarray_nameはあなたの好きな配列名に変更してOKです。

また、*の部分では3次元配列の大きさを指定します。

 

例えば今回のように(3,3,3)の大きさの配列を作成するには、

Dim test3d_array(3, 3, 3) As Variant

上記のようにすればOKです。

 

スポンサーリンク

セル上データを3次元配列にするサンプルコード

それでは冒頭に紹介したようにセル上のデータを(3,3,3)次元の配列に格納してみましょう。

セル上のデータを3次元配列に格納するという作業イメージ

以下がそのサンプルコードです。

SSub array_3d()
    Dim test3d_array(3, 3, 3) As Variant
    For i = 0 To 2
        For j = 0 To 2
            For k = 0 To 2
                test3d_array(i, j, k) = Cells(j + 1, i * 3 + k + 1).Value
            Next
        Next
    Next
    MsgBox test3d_array(0, 0, 0)
    MsgBox test3d_array(0, 1, 2)
    MsgBox test3d_array(2, 2, 2)
End Sub

 

最後の方にメッセージボックスで中身を確認していますが、ここでの数値の意味は以下の通りです。

要は青、オレンジ、緑のどの部分かを1次元目で指定し、縦方向を2次元目で指定、横方向を3次元目で指定します。

 

スポンサーリンク

サンプルコードの実行結果確認

それでは最後に先ほどのコードを実行してみましょう。

まずはtest3d_array(0, 0, 0)なので青い部分の左上の部分を取り出すことになります。

結果は以下の通りです。

3次元配列の中身を確認した結果1

問題なく出力されてますね。

 

次はtest3d_array(0, 1, 2)なので同じく青い部分の真ん中右側を指定したことになりますね。

3次元配列の中身を確認した結果2

こちらも問題なく取り出せてます。

 

最後はtest3d_array(2, 2, 2)なので緑の部分の右下ですね。

3次元配列の中身を確認した結果3

こちらも問題なしですね。

 

スポンサーリンク

おわりに

というわけで今回はVBA上で3次元配列を作成する方法と、その中身の取り出し方についてご紹介しました。

 

配列を扱えるとプログラムをシンプルに書けたり処理を高速化できたりと良いことが多いのでぜひマスターしておきましょう。

 

このように、私のブログではエクセルスキルはもちろん、様々なプログラミングスキルを紹介しています。

ぜひ他の記事ものぞいてみてください。

コメント

タイトルとURLをコピーしました