VB.NET, C#, PowerShellを使用しているエンジニアのためのサイト。
基本的な使用方法から開発で役立つTipsまで幅広く取り扱っています。
Update 2018/12/04
< Prev Tips
Next Tips>
1つ前の記事で説明した配列は正確には1次元配列です。
ここでは、2次元以上の配列について説明します。
1次元配列は、1つの箱に仕切りをつけて複数のデータが入れられるようにしたものでした。
2次元配列は、1次元配列をもう一組積み重ねたイメージです。以下のイメージでは2段ですが何段でも重ねることができます。
それぞれの段は区別できるように、0, 1というように番号が付きます。
2次元配列の書式を以下に示します。
Dim 配列変数名(段の数 - 1, 要素数 - 1) As データ型
以下は、Integer型で2段,5個の要素(データ)を持つことができる配列の宣言例です。
Option Explicit
Sub 二次元配列宣言の例()
Dim x(1, 4) As Integer
End Sub
2次元配列変数に値を代入するには、以下の書式を使用します。
要素番号は0から数えるので、3番目の箱にデータを代入したい場合は、要素番号は2となります。
配列変数名(段番号, 要素番号) = 値
以下に、2次元配列変数に値を代入する例を示します。
Option Explicit
Sub 二次元配列への値の代入例()
Dim x(1, 4) As Integer
x(0, 0) = 1
x(0, 1) = 2
x(0, 2) = 3
x(0, 3) = 4
x(0, 4) = 5
x(1, 0) = 6
x(1, 1) = 7
x(1, 2) = 8
x(1, 3) = 9
x(1, 4) = 10
End Sub
配列変数に入っている値を参照するには、以下の書式を使用します。
配列変数名(値が入っている段の番号, 参照したい値が入っている要素番号)
以下に、2次元配列の値を参照する例を示します。
ここででは、段の番号が1、要素番号が3の値をMsgBoxを使用して表示しています。
Option Explicit
Sub 配列の値参照例()
Dim x(1, 4) As Integer
x(0, 0) = 1
x(0, 1) = 2
x(0, 2) = 3
x(0, 3) = 4
x(0, 4) = 5
x(1, 0) = 6
x(1, 1) = 7
x(1, 2) = 8
x(1, 3) = 9
x(1, 4) = 10
MsgBox(x(1,3))
End Sub
配列変数はと繰り返し処理は相性がよいので、よく使用されます。
以下は、For〜Next文を使用して値を参照する例です。
Option Explicit
Sub 繰り返し処理での参照例()
Dim x(1, 4) As Integer
x(0, 0) = 1
x(0, 1) = 2
x(0, 2) = 3
x(0, 3) = 4
x(0, 4) = 5
x(1, 0) = 6
x(1, 1) = 7
x(1, 2) = 8
x(1, 3) = 9
x(1, 4) = 10
Dim i As Integer
Dim j As Integer
For i = 0 To 1
For j = 0 To 4
Debug.Print x(i, j)
Next
Next
End Sub
もう1つ、For Each文を使用した例を示します。
この例は先ほどのFor Next文をFor Each文に書き換えたものです。
Option Explicit
Sub 繰り返し処理での参照例2()
Dim x(4) As Integer
Dim data As Variant
x(0) = 3
x(1) = 5
x(2) = 1
x(3) = 7
x(4) = 2
For Each data In x
Debug.Print data
Next
End Sub