配列要素の巡回処理

プログラミング

はじめに

 ある配列の要素ごとに巡回処理させたい場合は、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オブジェクトも利用可能なようです。
 
 要素を取り出す変数はバリアント型を指定するようにします。

コメント

タイトルとURLをコピーしました