#18エクセルVBA入門-For Each Nextで配列をLoopする

Excel VBA

For Each ステートメントとは

配列に対して繰り返し処理を行えます。

ここでは扱いませんが、配列以外にコレクションなどグループに対して繰り返し処理を行えます。

#16で For Next ステートメントがありましたが、こちらは配列やコレクションに限らず用いられます。

For Each の使い方

以下のような使い方です。

Dim グループ名 As Variant
Dim 要素を受け取る変数名 As Variant ’省略可能です。

For Each 要素を受け取る変数名 In 配列やコレクションなどのグループ名
    処理
Next 要素を受け取る変数名

ではやっていきます。

Eachを使うので、EachTestというプロ―シージャ名にします。

Sub EachTest()

Sub EachTest()
           
End Sub

西郷・一橋・勝・坂本 の四人を配列の要素として準備します。

配列の変数名は namesにします。

Dim names as Variant  ‘変数namesをVariant型で宣言します。

Sub EachTest()
    Dim names As Variant
End Sub

names = Array(“西郷”, “一橋”, “勝”, “坂本”)  ’namesにArrayで四人の名前を設定します。

Sub EachTest()
    Dim names As Variant
    names = Array("西郷", "一橋", "勝", "坂本")
End Sub

要素を受け取る変数名を単数形の name にします。

Dim name as Variant ‘変数 name をVariant型で宣言します。

Sub EachTest()
    Dim names As Variant
    names = Array("西郷", "一橋", "勝", "坂本")
    Dim name As Variant
End Sub

 

For Each name in names ‘全ての配列の要素に対し何らかの処理をする場合はこう書きます。。

Sub EachTest()
    Dim names As Variant
    names = Array("西郷", "一橋", "勝", "坂本")
    Dim name As Variant
    
    For Each name In names
        
End Sub

Debug.Print name ‘個々の名前をイミディエイトウィンドウに表示します。

Sub EachTest()
    Dim names As Variant
    names = Array("西郷", "一橋", "勝", "坂本")
    Dim name As Variant
    
    For Each name In names
        Debug.Print name

End Sub

Next name ‘次の名前に移ります。

Sub EachTest()
    Dim names As Variant
    names = Array("西郷", "一橋", "勝", "坂本")
    Dim name As Variant
    
    For Each name In names
        Debug.Print name
    Next name
        
End Sub

 

*Next の後の nameは省略可能です。

コメント