目次
「多次元配列」とは?
前回は「配列」について解説しましたが、今回は同じく配列で「多次元配列」について解説したいと思います。
いろいろ説明するよりも、まずはサンプルのソースコードと実行結果から見てみましょう。
Sub test17()
'---【テストの点数】---
'氏名|国語|数学|英語
'----------------------
'藤原|35点|10点|95点
'佐藤|10点|98点|20点
'----------------------
Dim Seiseki(1, 2) As Integer
Dim Simei(1) As String
Dim Kyouka(2) As String
Dim i As Integer
Dim j As Integer
Simei(0) = "藤原"
Simei(1) = "佐藤"
Kyouka(0) = "国語"
Kyouka(1) = "数学"
Kyouka(2) = "英語"
'藤原のテスト点数
Seiseki(0, 0) = 35 '国語
Seiseki(0, 1) = 10 '数学
Seiseki(0, 2) = 95 '英語
'佐藤のテスト点数
Seiseki(1, 0) = 10 '国語
Seiseki(1, 1) = 98 '数学
Seiseki(1, 2) = 20 '英語
For i = 0 To 1
For j = 0 To 2
MsgBox Simei(i) & "の成績:" & Kyouka(j) & "は" & Seiseki(i, j) & "点"
Next
Next
End Sub
それではいつものように1つずる解説していきます。
このサンプルコードでは、2人の国語・数学・英語のテスト点数を表示しています。
Simei(0) = "藤原"
Simei(1) = "佐藤"
Kyouka(0) = "国語"
Kyouka(1) = "数学"
Kyouka(2) = "英語"
まずは多次元ではない普通の配列を使って、氏名と教科を配列に代入しています。
'藤原のテスト点数
Seiseki(0, 0) = 35 '国語
Seiseki(0, 1) = 10 '数学
Seiseki(0, 2) = 95 '英語
'佐藤のテスト点数
Seiseki(1, 0) = 10 '国語
Seiseki(1, 1) = 98 '数学
Seiseki(1, 2) = 20 '英語
次に、藤原と佐藤の点数を代入しています。
この代入先が多次元配列になります。
ソースコードの宣言時「Dim Seiseki(1, 2) As Integer」と記述したのが、多次元配列の宣言です。
多次元配列の宣言は以下の通りです。
Dim <配列名>(<1次元目の配列数>, <2次元目の配列数>, <3次元目の配列数>, .....) As <データ型>
このサンプルコードでは「2次元目の配列数」まで定義されていますので、多次元配列の中でも「2次元配列」になります。
サンプルコードでは、1次元目は2人分のデータが入るよう定義され、2次元目は3教科のデータが入るよう定義されています。
「画像1:テストの成績表」を見れば分かりやすいかもしれません。
要するに、「氏名」と「教科」という2つの要素が組み合わさっています。
したがって、この2つの要素を配列に入れ込めば、2次元配列になるわけです。
For i = 0 To 1
For j = 0 To 2
MsgBox Simei(i) & "の成績:" & Kyouka(j) & "は" & Seiseki(i, j) & "点"
Next
Next
今回のループ処理では、For文の中にFor文を入れ子にしています。
そうする事で、先程の実行結果のように出力する事が可能なわけです。
簡単なプログラムを作っている内は、特に多次元配列を利用する機会は無いかもしれませんが、重要なデータに対する考え方なのでキッチリ覚えておきましょう。