PRIMG0001
 毎週金曜日、プログラミングのちょっとした講座を記しています。
 ここでは、小学校から「プログラミング」が必須項目になってしまったため、お父さん・お母さん・おじいちゃん・おねえちゃんが子供に「プログラミング」教えることができるように、ここでこっそりと勉強してしまおうという企画です。
 今週は配列です。
今回はいつもよりも簡単です。
 例えば生徒の名前を変数に格納する場合、今まで習ってきた方法だと次のようになります。



Dim Seito1 as string
Dim Seito2 as string
Dim Seito3 as string
Dim Seito4 as string
Dim Seito5 as string
Dim Seito6 as string
Dim Seito7 as string
Dim Seito8 as string
Dim Seito9 as string
Dim Seito10 as string
Seito1 = "山田太郎”
Seito2 = "佐藤花子”
Seito3 = "鈴木一郎”
Seito4 = "加藤まり子”
Seito5 = "田中健也”
Seito6 = "伊藤麗子”
Seito7 = "高橋和也”
Seito8 = "渡辺次郎”
Seito9 = "加藤幸次”
Seito10 = "中村雄太”


となります。しかし、この方法だと10人くらいまでは記述に耐えることができますが、40人ともなると、変数の宣言だけで疲れてしまいます。そこで、変数に「配列」というものを使用します。
配列とは下記のイメージになります。


山田太郎 佐藤花子 鈴木一郎 加藤まり子 田中健也 伊藤麗子 高橋和也 渡辺次郎 加藤幸次 中村健太

このように大きな変数の中身を分割し、その中に値を格納する方法です。これ「配列」といいます。
配列は次のように表記されます。

任意の名前(分割する数値-1)

つまり、上記の場合を配列にすると


seito(9)

となります。なぜ、() かっこの数値は分割する数値になるかと言うと、配列のカウントは1からではなく、0から始まります。そのため、上の表の一番最初の「山田太郎」を格納する場所は

seito(0)

に格納されます。この配列の宣言は通常の変数と同じDimで宣言します。

Dim Seito(9) as string

上記の生徒の名前の格納を配列にした場合、次のようになります。


Dim Seito(9) as string
Seito(0) = "山田太郎”
Seito(1)  = "佐藤花子”
Seito(2)  = "鈴木一郎”
Seito(3)  = "加藤まり子”
Seito(4)  = "田中健也”
Seito(5)  = "伊藤麗子”
Seito(6)  = "高橋和也”
Seito(7)  = "渡辺次郎”
Seito(8)  = "加藤幸次”
Seito(9)  = "中村雄太”

 また、この配列を使用すると、検索などの処理をおこなう場合、非常に楽になります。上記の変数内で「渡辺次郎」さんが何番目にあるかといったプログラムを作成した場合、次のようになります。

sub meibo()
 Dim Seito(9) as string 
 Dim i as integer
 Seito(0) = "山田太郎”
 Seito(1)  = "佐藤花子”
 Seito(2)  = "鈴木一郎”
 Seito(3)  = "加藤まり子”
 Seito(4)  = "田中健也”
 Seito(5)  = "伊藤麗子”
 Seito(6)  = "高橋和也”
 Seito(7)  = "渡辺次郎”
 Seito(8)  = "加藤幸次”
 Seito(9)  = "中村雄太”
 For i = 0 To 9
     If Seito(i) = "加藤幸次” Then
        msgbox = i &" 番目に一致しました"
    End If
 Next i
 end sub

この配列は2次元にすることもできます。先ほどの名前の他に出身県を入れる場合、1次元の配列を使用する場合のプログラムは下記のようになります。


 Dim Seito(9) as string 
 Dim ken(9) as string 
 Seito(0) = "山田太郎”
    ken(0) = "東京”
 Seito(1)  = "佐藤花子”
    ken(1) = "千葉”
 Seito(2)  = "鈴木一郎”
    ken(2) = "神奈川”
 Seito(3)  = "加藤まり子”
 ken(3) = "神奈川”
 Seito(4)  = "田中健也”
 ken(4) = "東京”
 Seito(5)  = "伊藤麗子”
 ken(5) = "埼玉”
 Seito(6)  = "高橋和也”
 ken(6) = "埼玉”
 Seito(7)  = "渡辺次郎”
 ken(7) = "仙台”
 Seito(8)  = "加藤幸次”
 ken(8) = "新潟”
 Seito(9)  = "中村雄太”
 ken(9) = "千葉”


これを2次元の配列に格納する場合は次のようになります。
2次元の配列は

任意の名前(縦方向行,横方向列)で()中の数値はやはり、(分割する数値-1、分割する数値-1)となります。

seitoという2次配列を使い値を代入する場合、次のようになります。

 Dim Seito(1,9) as string 
 Seito(0,0) = "山田太郎”
 Seito(1,0) = "東京”
 Seito(0,1)  = "佐藤花子”
 Seito(1,1) = "千葉”
 Seito(0,2)   = "鈴木一郎”
 Seito(1,2)  = "神奈川”
 Seito(0,3)   = "加藤まり子”
 Seito(1,3)  = "神奈川”
 Seito(0,4)  = "田中健也”
 Seito(1,4)  = "東京”
 Seito(0,5)   = "伊藤麗子”
 Seito(1,5) = "埼玉”
 Seito(0,6)   = "高橋和也”
 Seito(1,6)  = "埼玉”
 Seito(0,7)   = "渡辺次郎”
 Seito(1,7) = "仙台”
 Seito(0,8)   = "加藤幸次”
 Seito(1,8) = "新潟”
 Seito(0,9)  = "中村雄太”
 Seito(1,9)  = "千葉”

 以上今回は配列についての説明でした。