動的配列の再定義記述文 ReDim [Preserve] 配列名(添数末尾値)
添数開始値を0(Option Base 0)とした場合、
「配列要素数=添数末尾値+1」となる。
この再定義記述文で指定する小括弧内の数値は添数末尾値であって、
配列要素数でない。
参考書やWeb pageの説明を見ても、"Option Base 1"としている場合が多く
て、わかりにくかった。
以下、配列要素数10個の動的配列に要素数を1つづつ増やしながら、其々に
数値を代入していくマクロ。
Option Base 0
Sub sample01()
Dim iC As Integer
Dim arrA() As Integer
ReDim arrA(0) '動的配列定義初期値(要素数0)の状態で関数UBound()
arrA(0) = 0 'を使うとエラーとなるので、For 文の前に設定する
For iC = 1 To 9
ReDim Preserve arrA(UBound(arrA) + 1)
arrA(UBound(arrA)) = iC
Next iC
End Sub
active worksheetのセルを順にアクセスして何かを行う処理。
例えば、以下の文字列"AAAA"を検索するマクロ。
値が"AAAA"であるセルが無い場合、プログラムが固まってしまう。
Sub sample01()
Dim rgA As Range
For Each rgA In ActiveSheet.Cells '正 ActiveSheet.UsedRange
If rgA.value="AAAA" Then
MsgBox "It is found."
Exit Sub
End If
Next rgA
MsgBox "It isn't found."
End Sub