はじめに
ある配列の要素ごとに巡回処理させたい場合は、For Each In を使うと便利です。
使用例を見てみましょう。
Array要素を巡回
For Each In でArrayの要素を巡回させる例です。取り出す変数にはバリアント型を指定するのが基本です。
Sub TestArrayLoop()
Dim myDay
For Each myDay In Array("月", "火", "水", "木", "金", "土", "日")
Debug.Print myDay
Next myDay
End Sub
Split関数の出力を巡回
Split関数は、指定した区切り文字で文字列を分解して配列にしてくれますが、これをそのまま要素ごとの巡回に使用する例です。
Sub TestArrayLoop2()
Dim v
Dim str
str = "月,火,水,木,金,土,日"
For Each v In Split(str, ",")
Debug.Print v
Next v
End Sub
複数セルを巡回
Rangeオブジェクトを指定しても上手く行くようです。
呼び出すときは、ValueやTextなどのプロパティを指定する必要があるかもしれません。
省略した場合はデフォルトのValueになります。
Sub TestArrayLoop3()
Dim v
Dim rng As Range
Set rng = Range("A1:A7")
For Each v In rng
Debug.Print v.Text
Next v
End Sub
まとめ
For Each In は配列として扱えるオブジェクトの巡回に便利です。
ArrayやSplit関数、Rangeオブジェクトも利用可能なようです。
要素を取り出す変数はバリアント型を指定するようにします。










コメント