PRIMG0001
 毎週金曜日、プログラミングのちょっとした講座を記しています。
 ここでは、小学校から「プログラミング」が必須項目になってしまったため、お父さん・お母さん・おじいちゃん・おねえちゃんが子供に「プログラミング」教えることができるように、ここでこっそりと勉強してしまおうという企画です。
 今週は配列その2です。
前回の講座で配列のインデックスは0から始まると言いましたが、プログラムを作成している時に、変数の規則性を持たせるためにお、インデックスを0からではなく、別の番号から指定したい場合があります。そのような場合はDim文で宣言することができます。

例えば、前回の生徒の名前の格納を配列にしたのを参考にして説明します。


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)  = "中村雄太”

この場合、インデックスは0から始まっています。しかし、実際の生徒番号は100番から始まっている場合、インデックスを100から指定した方が管理がしやすくなります。その場合、配列の変数の宣言を次のようにします。




Dim Seito(100 to 109) as string 

と指定します。



Dim 変数名(最小値 To 最大値) As データ型

これによってインデックスは100番から使用することができます。生徒番号をインデックスに指定した場合、下記となります。




Dim Seito(100 to 109) as string
Seito(100) = "山田太郎”
Seito(101)  = "佐藤花子”
Seito(102)  = "鈴木一郎”
Seito(103)  = "加藤まり子”
Seito(104)  = "田中健也”
Seito(105)  = "伊藤麗子”
Seito(106)  = "高橋和也”
Seito(107)  = "渡辺次郎”
Seito(108)  = "加藤幸次”
Seito(109)  = "中村雄太”

この場合、インデックスを間違って99や1など範囲指定以外のインデックス番号を使用した場合はエラーになります。


次に配列に一度に値を格納する方法をご紹介します。配列に一度に値を格納する場合は「Array関数」を使用します。上記のプログラムは配列に1個づつ値を格納しています。これを一気に格納する場合、次のようになります。



Dim 配列大枠 As Variant
配列大枠 = Array(値0, 値1, 値2)

Dim文で配列の大枠を指定(上記の場合、Seitoという変数)する場合、必ずVariant(バリアント)で指定します。「Variant」は以前の変数で説明したように「なんでも良い」といった変数ですが、この場合、Variantを指定する訳は、バリアント型の値を格納する配列ではなく、配列を値として持つ変数であるため、変数に「配列」がないため、バリアント型、つまりなんでも良いといった宣言になります。

一番最初のプログラムをArray関数で格納する場合、次のようになります。




Dim Seito As Variant
Seito = Array("山田太郎”,"佐藤花子”,"鈴木一郎”,"加藤まり子”,"田中健也”,"伊藤麗子”,"高橋和也”,"渡辺次郎”,"加藤幸次”,"中村雄太”)

配列の中身を取り出す場合は通常の配列方法と同じ、Seito(0) 、Seito(1) と指定して値を取り出します。ただし、配列のインデックスは必ず0から始まり、Arrayで値を代入した場合、インデックスの変更はできません。

以上今回は配列について前回の続きとなりました。それではまた来週