For…Nextステートメントは、Excel VBAでループを実行するために使用される重要な構文の1つです。このステートメントを使用すると、同じ処理を繰り返し実行することができます。
以下では、For…Nextステートメントについて、その構文、使用方法、および例について詳しく説明します。
For…Nextステートメントの構文
For…Nextステートメントは、次のような構文を持っています。
1 2 3 |
For counter = start To end Step stepValue ' 処理を記述 Next counter |
- counter: ループのカウンター変数を表します。
- start: カウンター変数の初期値を表します。
- end: カウンター変数の最終値を表します。
- stepValue: カウンター変数の増分または減分を表します。省略すると、1が設定されます。
For…Nextステートメントは、ループを開始する前にカウンター変数を初期化し、その後、ループ内で処理を繰り返し、最終値に達するまでカウンター変数を増分または減分します。
この処理が完了すると、ループは終了します。
For…Nextステートメントの使用方法
For…Nextステートメントを使用すると、同じ処理を繰り返し実行できます。
以下は、For…Nextステートメントを使用して、1から10までの数値を出力する例です。
1 2 3 |
For i = 1 To 10 Debug.Print i Next i |
この例では、変数iが1から10までの数値で設定されます。ループ内の処理は、Debug.Printステートメントを使用して、変数iの値をコンソールに出力することです。
最後に、Nextステートメントが実行され、ループが終了します。
また、For…Nextステートメントは、配列の要素にアクセスする場合にも使用できます。
以下は、配列の要素を処理するためにFor…Nextステートメントを使用する例です。
1 2 3 4 5 6 7 8 9 10 |
Dim myArray(5) As Integer myArray(0) = 10 myArray(1) = 20 myArray(2) = 30 myArray(3) = 40 myArray(4) = 50 For i = 0 To 4 Debug.Print myArray(i) Next i |
この例では、配列myArrayに5つの要素が設定され、ループ内の処理は、Debug.Printステートメントを使用して、配列の各要素をコンソールに出力することです。
変数iは0から4までの数値で設定され、配列のインデックスとして使用されます。最後に、Nextステートメントが実行され、ループが終了します。
For…Nextステートメントの例
以下は、For…Nextステートメントを使用して、1から100までの数値の和を計算する例です。
1 2 3 4 5 6 7 |
Dim sum As Integer For i = 1 To 100 sum = sum + i Next i Debug.Print sum |
この例では、変数sumが0で初期化され、ループ内の処理は、sumに変数iの値を加算することです。最後に、Debug.Printステートメントが使用されて、sumの値がコンソールに出力されます。
また、For…Nextステートメントをネストすることで、2次元のループを実行することもできます。以下は、2次元の配列を処理するためにFor…Nextステートメントを使用する例です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
Dim myArray(2, 2) As Integer myArray(0, 0) = 1 myArray(0, 1) = 2 myArray(0, 2) = 3 myArray(1, 0) = 4 myArray(1, 1) = 5 myArray(1, 2) = 6 myArray(2, 0) = 7 myArray(2, 1) = 8 myArray(2, 2) = 9 For i = 0 To 2 For j = 0 To 2 Debug.Print myArray(i, j) Next j Next i |
この例では、2次元の配列myArrayに9つの要素が設定され、ループ内の処理は、Debug.Printステートメントを使用して、配列の各要素をコンソールに出力することです。変数iとjは、配列のインデックスとして使用され、For…Nextステートメントが2回ネストされています。
まとめ
For…Nextステートメントは、Excel VBAでループを実行するために使用される重要な構文の1つです。このステートメントを使用すると、同じ処理を繰り返し実行できます。
この記事では、For…Nextステートメントの構文、使用方法、および例について説明しました。For…Nextステートメントを使用することで、より複雑なプログラムを作成することができます。
サンプルコード
ファイルを連番で保存する
1 2 3 4 5 6 7 8 9 10 |
Sub SaveFileWithNumber() Dim i As Integer Dim filePath As String Dim wb As Workbook Set wb = ActiveWorkbook For i = 1 To 10 filePath = "C:\ExcelFiles\file" & i & ".xlsx" wb.SaveAs filePath Next i End Sub |
このコードでは、ActiveWorkbook変数を使用して、現在アクティブなブックを取得します。
For…Nextステートメントが使用されて、10回ループが実行され、各ループで、ファイル名に連番が付与されて、ファイルが保存されます。
保存先のフォルダは、事前に存在している必要があります。
コメント