こんにちは、ヒガシです。
このページでは、VBA上で3次元配列を作成する方法をご紹介していきます。
それではさっそくやっていきましょう!
実施内容のイメージ共有
まずは以降でどんな処理を実施していくかのイメージを共有しておきましょう。
今回は、以下の画像に示すように、エクセルシート上に記述されているデータをVBA上で3次元配列として格納していきます。
VBA上での3次元配列の作り方
VBA上で3次元配列を作成する方法は以下の通りです。
ここでarray_nameはあなたの好きな配列名に変更してOKです。
また、*の部分では3次元配列の大きさを指定します。
例えば今回のように(3,3,3)の大きさの配列を作成するには、
Dim test3d_array(3, 3, 3) As Variant
上記のようにすればOKです。
セル上データを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)なので青い部分の左上の部分を取り出すことになります。
結果は以下の通りです。
問題なく出力されてますね。
次はtest3d_array(0, 1, 2)なので同じく青い部分の真ん中右側を指定したことになりますね。
こちらも問題なく取り出せてます。
最後はtest3d_array(2, 2, 2)なので緑の部分の右下ですね。
こちらも問題なしですね。
おわりに
というわけで今回はVBA上で3次元配列を作成する方法と、その中身の取り出し方についてご紹介しました。
配列を扱えるとプログラムをシンプルに書けたり処理を高速化できたりと良いことが多いのでぜひマスターしておきましょう。
このように、私のブログではエクセルスキルはもちろん、様々なプログラミングスキルを紹介しています。
ぜひ他の記事ものぞいてみてください。
コメント