For Each…Next ステートメントの使い方
【構文】
For Each element In group
[ statements ]
Next [ element ]
【項目の説明】
- element ・・・ コレクションや配列のすべてのメンバ・要素を受け取るための変数。コレクションの場合、引数 element には総称オブジェクト型変数、または任意の固有オブジェクト型のオブジェクトの変数を指定できます。配列の場合は、バリアント型変数のみとなります。
- group ・・・ コレクション名または配列名(ユーザー定義型を除く)。
- statements ・・・ 引数 group の各メンバ・要素に対して実行するステートメント(省略可)。
For Each…Next ステートメント から抜け出す方法に、Exit For ステートメント を指定することができます。また、For Each…Next ステートメント はネスト (入れ子) 構造にすることができ、その場合に Exit For が実行された場合は、その Exit For を囲んでいる 1 番内側のループから抜け出します。
For Each…Next ステートメント は、コレクションや配列のすべてのメンバ・要素に対して処理を行いますが、それらを取り出す順序にルールはありません。もしその順番が重要な意味をもつ場合には、For…Next ステートメント 等を利用する方がよいでしょう。
もし無限ループの状態に陥ってしまった場合は、[ECS] キーを押し続けるか、それで戻らない場合は、[Ctrl] + [Alt] + [Delete] を押して Windows のタスクマネージャーを表示して、Excel を強制終了してください。
For Each…Next ステートメントの使用例
VBAソース例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
Sub sample_foreach_next() Dim Sht As Object Dim ShtNames As String For Each Sht In Worksheets ShtNames = ShtNames & Sht.Name & Chr(13) Next MsgBox ShtNames End Sub |