第9講 配列
第1話 1次元配列
久しぶりに「初心者のためのVisual Basic講義」を再開します。
長らくお待たせしましたことをお詫び申し上げます。
しばしば更新予定ですので、乞うご期待下さい。

さて、皆さん変数がたくさんある場合どうしますか。
一つ一つ型を宣言していちいち名前を割り振らなければならないのでしょうか。
当サイトの魔方陣プログラムの中には、
変数が1000個ぐらい出てくるプログラムもあります。
プログラムによっては10万個ぐらいの変数を必要とするものも考えられます。
例えば、作った魔方陣を保存しておくとなると、
10次魔方陣なら魔方陣1個につき10×10=100個の変数を必要としてしまいます。
ですから1000個の10次魔方陣を保存しようとすると、
10万個の変数が必要となってしまうわけです。

10万個も変数を用意するのは、
名前を考えるだけでも大変です。

でもそれを解決するための方法があります。
それが、これから学んでいく配列という方法です。
配列は、a
、a、a、a、・・・
というような添え字つき変数であると思えばいいわけです。

配列の宣言例は、
Dim a(1000) As Integer
です。これでa(0)からa(1000)までの1001個の変数が宣言され、
使えるようになるのです。
0から始まるので、
1000個ではなく1001個なのです。

それでは配列を使ったプログラム例を考えてみましょう。
配列プログラム例1
をダブルクリックしてください。
このプログラムはエクセルのシートにあるセル
B6からB16にある数値を順に
a(0)、a(1)a(2)、・・・、a(10)
と代入していって、
それらの和を求め、
結果をB17に表示させるプログラムです。
消去はすべてのデータと計算結果を削除するプログラムです。
データ作成は、データを再作成させるプログラムです。
データ作成のプログラムについて解説しておきましょう。

Private Sub CommandButton3_Click()

   Dim i As Integer

   For i = 0 To 10
       Cells(6 + i, 2) = Round(
100 * Rnd, 0)
   Next

End Sub

100 * Rnd
Rndは0以上1未満の乱数を発生させるもので、
1回ごとに異なる値が返されます。
例えば、0.25876・・・のような小数が発生します。
ですから100 * Rndは100倍の25.876・・・のような整数となります。
Round(100 * Rnd, 0)
では100 * Rndの小数部分を四捨五入して2桁の整数26にします。
100 * Rndの数値を小数
位になるように四捨五入しているからです。

では、皆さん配列プログラム例1を改良して
B6からB27までを加えて、
その結果をB28に出すようにしましょう。

解答例

第8講第3話へ 第2話へ