配列とは
ひとつの変数に複数の値を同時に格納できるような変数を配列という。
配列はアパートのような集合住宅のイメージである。ひとつの建物に
複数の世帯が同時に入居できる。
配列では、各部屋のことを要素、各部屋を識別する部屋番号をインデックス番号と呼ぶ。
Sub Sample()
Dim Member(3) As String
Member(1) = “佐藤”
Member(2) = “山田”
Member(3) = “菊池”
MsgBox Member(1) & “と” & Member(2) & “と” & Member(3)
End Sub
配列の宣言
Dim <配列変数名> (要素の下限(最小値) To 要素の上限(最大値))
「要素の下限」は省略することも可能である。
要素の下限を省略した場合は要素の下限に「0」を指定したことになる。
要素数を正確に指定したい場合は、要素の下限を明示的に指定する。
動的配列
配列の宣言時に、「いくつの値を格納するかわからない」場合にどうするか?
要素数を指定しないで配列を宣言し、マクロの中で必要に応じて要素数を指定できる。
宣言時に要素数を指定しない配列を動的配列と呼ぶ。
動的配列の宣言
Dim Member() As String
マクロの中で要素数を指定するときは「ReDim」という命令を使う。
※動的配列ではない、要素数を指定して宣言した配列はReDimで要素数を変更できない。
ReDimで要素数を変更すると、それまで格納されていた値が消えてしまう。
既存の値を消さないで要素数を変更するにはReDim命令にPreserveというキーワードをつける。
Sub Sample()
Dim Member() As String
ReDim Member(3)
Member(1) = “佐藤”
Member(2) = “山田”
Member(3) = “菊池”
ReDim Preserve Member(4)
MsgBox Member(3)
End Sub
静的変数
プロシージャの中で宣言した変数は、プロシージャが終了すると消えてしまう。
プロシージャが終了しても格納している値が消えない変数を静的変数と呼ぶ。
静的変数を宣言するときは、Dimではなく、Staticという命令を使う。
Sub Sample2()
Static Number As Long
Number = Number + 1
MsgBox Number
End Sub