INDEX
Forの概要
指定した回数だけ処理を繰り返すループを作成する VBAの予約語 | ||
For 概要 For ステートメントは、VBAで繰り返し処理を行うためのループ構文です。指定した回数だけコードを実行するために使用され、 わかりやすく説明 指定した回数だけ処理を繰り返すための命令。 |
||
|
For Nextを使った基本的なループ
以下の例では、For Next を使って 1 から 5 までの数値を表示します。
Sub TestForLoop()
Dim i As Integer
For i = 1 To 5
MsgBox "現在の値: " & i
Next i
End Sub
解説:
- 変数
i
を 1 から 5 までインクリメントしながらループ。 - 各ループごとに MsgBox で現在の値を表示。
Stepを使った増分の指定
以下の例では、Step を使って 2 ずつ増加させます。
Sub TestForStep()
Dim i As Integer
For i = 1 To 10 Step 2
Debug.Print i
Next i
End Sub
解説:
Step 2
により、i
の値は 1 → 3 → 5 → 7 → 9 となる。- 通常の For ループより間隔を開けてループを回せる。
For Eachを使ったコレクションのループ
For Each を使うと、配列やコレクションの要素を簡単に処理できます。
Sub TestForEach()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Sheets
MsgBox "シート名: " & ws.Name
Next ws
End Sub
解説:
- For Each を使うと、コレクションのすべての要素を自動で取得できる。
- 上記の例では、ブック内のすべてのシートの名前を表示する。
Excel VBAでのForの活用
以下の例では、For を使ってセルの値を設定します。
Sub FillCells()
Dim i As Integer
For i = 1 To 10
Range("A" & i).Value = i
Next i
End Sub
解説:
- セル A1 から A10 に 1 から 10 までの値を入力する。
Forの注意事項
- 無限ループに注意: ループの終了条件を誤ると無限ループになる可能性がある。
- For Each は要素の削除に適していない: ループ内で要素を削除するとエラーが発生する可能性がある。
- カウンタの変更は推奨されない: ループ内でカウンタ変数の値を変更すると、予期しない動作になることがある。
よくある質問
- Q: For ループのカウンタ変数を変更するとどうなりますか?
- A: 予期しない動作になる可能性があるため、変更しないほうが良いです。
- Q: ループを途中で抜けるにはどうすればいいですか?
- A:
Exit For
を使うとループを抜けることができます。 - Q: 配列を処理する場合、For Next と For Each のどちらを使うべきですか?
- A: 配列のインデックスが必要なら For Next、単純に要素を順番に処理するなら For Each が便利です。
まとめ
- For ループは指定回数だけ処理を繰り返すために使用する。
- Step を使うとカウンタの増分を変更できる。
- For Each を使うと配列やコレクションの要素を簡単に処理できる。
- Excel VBAでのセル操作やデータ処理に活用できる。