こんにちは、masaです。
今日は自分用のメモとしてVBAの機能の一つである配列についてまとめておこうと思います。
一言でいうと、任意の関数を自分で定義して、それを呼び出すことができる機能となっています。
例えば1,2,3,…10という数字を所定のセルに入力する場合は、以下のようなコードで実現することができます。
Sub 例()
Dim i as integer
For i = 1 to 10
Cells(i,1)=i
End sub
規則性のある数字であればCells(i,1)=iの末尾のiを関数で置き換えればいいのですが、規則性がなく、任意の数字を入力したい場合には配列を使うと便利で早くて間違いがありません。
1回目が1、2回目が3、3回目が5、4回目が1、5回目が6など指定の回数で任意の数字を記憶・出力できる機能が配列になっています。
CASE1:直接入力
下記のコードで配列を作ることができます。直接入力は若干めんどくさいですね。
Sub 直接入力()
Dim i As Integer
Dim Number(10) As Single
Number(1) = 1
Number(2) = 3
Number(3) = 5
Number(4) = 1
Number(5) = 6
Number(6) = 6
Number(7) = 7
Number(8) = 8
Number(9) = 9
Number(10) = 10
'確認用の出力コード
For i = 1 To 10
Cells(i, 1) = Number(i)
Next i
End sub
CASE2:セル参照
セルを参照した方がすっきりだし、たぶん間違いも少なくなるはず…
Sub セル参照()
Dim i As Integer
Dim Number(10) As Single
'A列の一番上から参照
For i = 1 To 10
Number(i) = Cells(i, 1)
Next i
'確認用の出力コード
For i = 1 To 10
Cells(i, 2) = Number(i)
Next i
End sub
ポイントとしては配列と定義したものの後ろに()をつけ、()内には配列として記憶する数を入力するくらいですかね。
一度配列として定義したら同じマクロ内であれば繰り返し使用ができるので、複雑な関数の構成となっている変数なんかは初期で定義して繰り返して使うのもいいと思います。