Excel VBAエキスパート資格・ベーシック解説|ステートメントFor Next

 

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)の違いを示しています。

For Nextステートメントのネスト
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を利用する人が対象の問題集です。