CoCoのYDブログ

心に思い浮かんだことを少し掘り下げ発信します

【VBA】For Eachって何?

こんにちは

今日はFor Eachについて学んでいきます。

IE?まだ勉強中でして、しばらくお待ちを。

 

For Each ってなに?

私も結構調べててよく出てくるんですよね。

でも実際にどんな動作をするのか分からないため、今回調べた次第であります。

どうやら配列やコレクションの数だけForと同様に処理を繰り返すみたいですね。

 

Sub test1()
    Dim 配列()
    配列 = Array(1, 2, 3, 4, 5)

    For Each i In 配列
        MsgBox i
    Next i
End Sub

 

今回はこんな感じで

配列にArray関数で文字を5個入力して

For Each ~In で5回繰り返しています。

各配列の中身はVariant型の変数iが配列の中身を返している感じです。

 

Sub test2()
    Dim 配列()
    配列 = Array(1, 2, 3, 4, 5)

    For i = 0 To UBound(配列)
        MsgBox 配列(i)
    Next i
End Sub

 似たような感じでUBoundがありますね。

これは配列の最大の要素数数を数字に変換しています。

最小はLBoundですね。

 

Sub test3()

    For Each i In Worksheets
        MsgBox i.Name
    Next i

End Sub

 配列以外にもワークシートでも代用できるようですね。

これは便利ですね。If i.Name="Sheets1" Then というように特定のシートに対して処理を行うこともできます。

 

今回はこの辺で失礼します。