Excel VBAエキスパート資格・ベーシック試験対策の問題集に出題している「ステートメントFor Next」の解説ページです。
For Nextステートメントの使い方
Excel VBAの「For Nextステートメント」は、指定した回数だけコードを繰り返し実行するための命令です。
同じまたは類似の処理を繰り返し実行することで、効率的にタスクを自動化したり、特定の条件下での計算や操作を行ったりします。
Dim i As Integer
For i = 1 To 5 ' 1から5までの範囲で繰り返す例
' ここに繰り返し処理したいコードを記述する
Debug.Print "Iteration " & i
Next i
For i = 1 To 5 の行で i 変数を1から5までの範囲で5回繰り返し、それぞれの繰り返しで Debug.Print "Iteration " & i が実行されます。ここでは、イミディエイトウィンドウに1から5までの数字が順番に出力されます。
For Nextステートメントは特定の回数だけループを実行する際に使用され、例えば配列内の要素を順番に処理する、特定の処理を一定回数繰り返すなど、様々な用途で活用されます
For 変数名 = 初期値 To 終了値
処理
Next 変数名
Dim i As Integer
For i = 1 To 10
Cells(i, 1).Value = i * 10
Next i
1から10の範囲で i を増やしながら、それぞれの行( i に対応する行)のA列に、 i に10をかけた値をセットしています。
Dim i As Integer
For i = 1 To 10 Step 2
Cells(i, 1).Value = i * 10
Next i
列Aの1行目、3行目、5行目、7行目、9行目のセルに対して、 i を10倍した値を設定します。Forループ内の Step 2 の部分は、 i を1回のループで2ずつ増加させます。
For 変数名 = 初期値 To 終了値 Step 増減値
処理
Next 変数名
Dim lastRow As Long
Dim i As Long
Dim total As Double
' 列Aの最終行を取得
lastRow = Cells(Rows.Count, 1).End(xlUp).Row
total = 0
' 列Aのセルのデータが空でない限りループ
For i = 1 To lastRow
' セルの値が数値であれば合計に加算
If IsNumeric(Cells(i, 1).Value) Then
total = total + Cells(i, 1).Value
End If
Next i
' 合計を最終の空行に代入
Cells(lastRow + 1, 1).Value = total
Dim lastRow As Long
Dim i As Long
Dim total As Double
' 列Aの最終行を取得
lastRow = Cells(1, 1).End(xlDown).Row
total = 0
' 列Aのセルのデータが空でない限りループ
For i = 1 To lastRow
' セルの値が数値であれば合計に加算
If IsNumeric(Cells(i, 1).Value) Then
total = total + Cells(i, 1).Value
End If
Next i
' 合計を最終の空行に代入
Cells(lastRow + 1, 1).Value = total
列Aの最終行を取得し、データが数値であれば合計を計算し、最終の空行に合計を代入するコード例です。End(xlDown)とEnd(xlUp)の違いを示しています。
Dim i As Integer, j As Integer
Dim numRows As Integer, numCols As Integer
numRows = 5 ' 行数
numCols = 3 ' 列数
' 行のループ
For i = 1 To numRows
' 列のループ
For j = 1 To numCols
' 行番号と列番号を出力
Debug.Print "Row: " & i & ", Column: " & j
Next j
Next i
外側のループが行を、内側のループが列を処理しています。これにより、行と列の組み合わせを網羅的に処理できます。ネストを使うことで、複雑なデータ構造に対する処理がより柔軟に行えます。
ステートメントFor Next|記憶定着問題集
操作方法:1.●●●をクリック(スマホはタップ)で答え表示。2.答えをクリック(スマホはタップ)で●●●表示。1⇔2を繰り返すことで、記憶を定着できます。
「For Nextステートメント」は、指定した回数だけコードを繰り返し実行するための命令
For Nextステートメントは特定の回数だけ●●●を実行する際に使用され、例えば配列内の要素を順番に処理する、特定の処理を一定回数繰り返すなど、様々な用途で活用されます
For ●●● = ●●● To ●●●
処理
Next ●●●
以下、1から10の範囲で i を増やしながら、それぞれの行( i に対応する行)のA列に、 i に10をかけた値をセットしています。
Dim i As Integer
●●● i = 1 ●●● 10
Cells(i, 1).Value = i * 10
●●● i
For 変数名 = 初期値 ●●● 終了値 ●●● 増減値
処理
Next 変数名
以下、列Aの1行目、3行目、5行目、7行目、9行目のセルに対して、 i を10倍した値を設定します。Forループ内の Step 2 の部分は、 i を1回のループで2ずつ増加させます。
Dim i As Integer
●●● i = 1 ●●● 10 ●●● 2
Cells(i, 1).Value = i * 10
●●● i
Excel VBAのスキルを身につけて、仕事の効率化に貢献しませんか?
当サイトでは、Excel VBAエキスパート認定資格取得に向けた情報を提供しています。興味がある方は、ぜひ以下の問題集からチャレンジしてみてください。
ExcelVBAエキスパートベーシックは、業務効率をあげるためにExcelVBAを利用する人が対象の問題集です。