VBA For Next文の使い方完全ガイド|ループ処理と抜ける方法を解説

当ページのリンクには広告 (Amazonアソシエイト含む) が含まれています。
VBAのFOR文とは? アイキャッチ

「エクセルを使用していて、同じ処理を効率的に処理したい。」
このように悩んでいませんか?


・Excelで同じ処理を繰り返し行いたい!

・特定の範囲やデータに対して効率的に操作を加えたい!

その場合は、VBAの「For Next文」を
使用すると解決します!


この記事では、VBAのFor Next文を使った繰り返し処理の基礎から、応用的な使用例までを詳しく解説します。

VBAのFor Nextループは、指定した回数の繰り返し処理や、セルやフォルダ内のデータ取得を簡単に自動化できます。
特定の条件でループをスキップしたり、途中で終了することも可能です。
効率的に繰り返し処理を行い、作業時間を大幅に短縮できます。

この記事を読むだけで、あなたもすぐにVBAのFor Next文を使いこなせるようになります!
ぜひご覧ください。


【 この記事の概要 】

よく使う度
難しさ
覚えておくと安心度
目次

この記事を読むと「できるようになる」こと

この記事を読むことで、次のことができるようになります。

スポンサーリンク

VBAのFor Next文とは? | 繰り返し処理の種類をご紹介

VBAにはさまざまな繰り返し処理があり、For Next文はその中でも事前に決められた回数だけ処理を繰り返す基本的な構文です。

Excelシート上でセルや範囲に対して繰り返し処理を行う場合に特に役立ちます。

また、「条件に応じてループを途中で抜ける方法」や、「特定の条件でスキップする方法」も簡単に実装でき、柔軟な処理が可能です。

次に、VBAで使用できる繰り返し処理の種類を詳しく見ていきましょう。

VBAにおける繰り返し処理の種類

繰り返し処理の種類説明
For文指定した回数だけ繰り返し処理を行います。
範囲内で連続した処理を行うのに便利です。
For Each文配列やコレクション内の各要素に対して順次処理を行います。
全要素にアクセスする場合に便利で、シートのセル範囲や
オブジェクトのコレクションに対してよく使用されます。
Do While文指定された条件がTrueの間、処理を繰り返します。
条件に基づいてループを制御したい場合に使用され、
繰り返し回数が決まっていないケースに適しています。
Do Until文指定された条件がTrueになるまで処理を繰り返します。
Do While文とは逆の条件で動作し、条件が満たされるまで処理を続けます。
While…Wend文指定された条件がTrueである間、処理を繰り返します。
Do While文に似ていますが、よりシンプルなループ処理に使用されます。
Do Loop While文処理を少なくとも1回は実行し、その後、指定された条件がTrueで
あれば繰り返します。
最初に必ず1回処理が行われる点が特徴です。
Do Loop Until文処理を少なくとも1回実行した後、指定された条件がTrue
になるまで繰り返します。
条件が満たされるまで必ず1回は処理が行われます。

VBAのFor Next文の基本を解説

VBAのFor Next文は、指定した回数だけ繰り返し処理を行うために使われる基本構文です。

この構文を使えば、Excelでのセルの操作や特定の範囲に対する繰り返し処理を簡単に自動化できます。

For Next文の基本構文

For Next文の基本構文
構成について解説
  • カウンタ変数
    • 繰り返し回数をカウントするための変数です。
  • 開始値
    • カウンタ変数が初めに設定される値です。
  • 終了値
    • カウンタ変数が到達しループを終了する値です。
  • 増分
    • カウンタ変数の増分です。(省略すると1ずつ増加します)

この構文を使えば、同じ処理を繰り返し適用することが簡単にできます。

より詳しい情報は、Microsoft公式 – For…Next ステートメントを参照してみてください。

VBA For Next文で繰り返し処理を行う際に「よく使われる機能」一覧

VBAのFor Next文は、繰り返し処理の基本です。

ここでは、よく使われる機能とその使用方法を、具体的なコード例を交えて詳しく解説します。

⇒ 具体的なFor Next文の使用例は「VBAのFor Next文の使用例をご紹介」で紹介しています。

よく使われる機能1: 基本的なFor Next文の宣言方法

以下のコードは、セル「A1」から「A10」に「1」から「10」までの数値を順に入力するシンプルな繰り返し処理の例です。

Sub FillCellsWithForLoop()
    For i = 1 To 10
        Cells(i, 1).Value = i
    Next i
End Sub

このコードは、Excelシート上で「A1」から「A10」のセルに「1」から「10」までの数値を順に入力します。
For Next文を使用して、簡単に繰り返し処理を行う方法を学ぶ基本例です。

よく使われる機能2: Excelシートの最終行まで繰り返し処理を行う

以下のコードは、Excelシートの最終行までデータを自動的に取得し、各セルに対して繰り返し処理を行う例です。

Sub FillCellsToLastRow()
    Dim lastRow As Long
    lastRow = Cells(Rows.Count, 1).End(xlUp).Row ' 最終行を取得

    For i = 1 To lastRow
        Cells(i, 1).Value = i
    Next i
End Sub

このコードは、Excelシートにおけるデータが存在する最終行まで繰り返し処理を行う場合に非常に便利です。

たとえば、データの自動入力やデータの加工を最終行まで処理したいときに活用できます。

あわせて読みたい
VBAで最終行と最終列を簡単に取得する方法|セル番号や値の取得も完全網羅 「Excel VBAで、データの最終行や最終列を取得したいけど、どうやってやるのだろう...」そんな疑問を持っていませんか? ・もう手動で表の終わりを探したくない!・...

よく使われる機能3: For Next処理中に「ループを途中で抜ける」(Exit For)

VBAには直接の「breakステートメント」は存在しませんが、ループを途中で抜けるためには「Exit For」を使います
これは、他のプログラミング言語での「break」と同様の機能を持ちます。

以下のコードは、変数「i」が5になった時点でループを抜ける例です。

Sub ExitForExample()
    For i = 1 To 10
        If i = 5 Then
            Exit For '// iが5の時点でループを抜ける
        End If
        Cells(i, 1).Value = i
    Next i
End Sub

このコードは、Excelシート上でA1からA4までに数値を入力し、変数「i」が5に達した時点でループを抜けます。
そのため、「A5」以降のセルには何も入力されません。

「Exit For」を使うことで、特定の条件を満たしたときに繰り返し処理を途中で抜けることが可能です。
これにより、無駄な処理を避けて効率的なループを実現できます。

よく使われる機能4: For Next処理中に「ループをスキップ」する(Continueの代わりに GoToを使用)

VBAには直接の「Continueステートメント」が存在しないため、特定の条件でループの一部処理をスキップするには、「GoTo」を使用します。

以下のコードは、変数「i」が5の場合に、その処理をスキップする例です。

Sub SkipLoopExample()
    For i = 1 To 10
        If i = 5 Then GoTo SkipLoop '// iが5の場合はスキップ
        Cells(i, 1).Value = i
SkipLoop:
    Next i
End Sub

VBAには直接の「Continueステートメント」はないため、「GoTo」を使ってスキップ処理を実現します。

このコードでは、「i = 5」の時にスキップされ、セル「A1」から「A4」、「A6」から「A10」にのみ値が入力され、「A5」は空のままになります。

代替手段としてのGoToの使用

VBAには他のプログラミング言語で一般的な「Continueステートメント」(ループの中で特定の条件を満たした際に、その反復の残りの処理をスキップし、次の反復に進む命令)が存在しません。

そのため、VBAでは「GoToステートメント」を使って、特定の処理をスキップする方法がよく使われます
「GoTo」は、プログラムの実行を指定されたラベルにジャンプさせるステートメントです。

この例のように、特定の条件に基づいてGoToを使うことで、ループ内の一部処理をスキップし、次の反復に進むことができます。

よく使われる機能5: For Next処理で「繰り返しの増分を指定」(Stepを使用)

For Next文では、カウンタ変数の増加量を指定することができます。

Stepを使って、繰り返しの増分を調整します。

Sub StepExample()
    For i = 1 To 10 Step 2
        Cells(i, 1).Value = i
    Next i
End Sub

このコードは、「A1」、「A3」、「A5」… と奇数行に対して「1」「3」「5」と2ずつ増加する値を入力する例です。
特定のステップ(増分)で処理を進めたい場合に役立ちます。
例えば、奇数または偶数の行だけにデータを入力するケースで便利です。

よく使われる機能6: For Next処理で「逆方向にループを行う」(Stepにマイナスの値を使用)

Stepにマイナスの値を指定することで、ループを逆方向に実行することができます。

以下のコードは、「A10」から「A1」に向かって逆順に数値を入力する例です。

Sub ReverseLoopExample()
    For i = 10 To 1 Step -1
        Cells(i, 1).Value = i
    Next i
End Sub

このコードでは、セルの「A10」から「A1」までに向かって逆順に数値を入力します。
Stepにマイナスの値を指定することで、カウントダウンのように逆方向にループを実行でき、特定のシナリオ(データの逆順処理など)で役立ちます。

VBAのFor Next文を使う際の注意ポイント

VBAのFor文は非常に便利ですが、正しく使わないとエラーや無限ループが発生することがあります。

ここでは、For文を使用する際の重要な注意点を解説します。

カウンタの範囲に注意 (無限ループ)

VBAのFor Next文では、カウンタ変数の「開始値」と「終了値」を正しく設定することが重要です。

範囲が正しく設定されていないと、無限ループが発生し、プログラムが意図通りに動作しません。

無限ループの例

Sub InfiniteLoopExample()
    '// 無限ループの例
    For i = 1 To -1 '// 終了値が到達できないため無限ループ
        Cells(i, 1).Value = i
    Next i
End Sub

無限ループが起きたらどうしたらいい?

無限ループが発生すると、Excelがフリーズする可能性があるため、実行時には注意が必要です。

無限ループを途中で止めるには、「Escキー」を押して、強制的に中断するか、タスクマネージャーでExcelを終了させる必要があります。

配列やセル範囲のインデックス外アクセスに注意

VBAで配列やセル範囲を操作する際、インデックスが範囲外に設定されているとエラーが発生します。

例えば、行や列の指定が存在しない範囲にアクセスすると、VBAの実行時に「範囲外エラー」が発生します。
このようなエラーを防ぐためには、常に範囲を正確に設定することが重要です。

範囲外エラーの例

Sub IndexOutOfRangeExample()
    '// 範囲外エラーの例
    For i = 1 To 20
        Cells(i, 100).Value = i '// 100列目が存在しない場合、エラー発生
    Next i
End Sub

範囲外エラーの対策

範囲外アクセスを防ぐために、以下の対策を講じることが推奨されます。

範囲外アクセスを防ぐための対策
  • 列数や行数を動的に取得して、適切な範囲内で操作することが重要です。
  • CellsやRangeオブジェクトを使用する際に、常にアクセス範囲が有効な範囲内に収まっているかを確認しましょう。
スポンサーリンク

VBAのFor Next文の使用例をご紹介

ここからは、VBAのFor文の具体的な使用例を紹介します。

以下に紹介する使用例は、すべてコピペしてすぐに実行できるコードです。
気になる例は、ぜひご覧いただき、実際に実行してみてください。

VBAの基礎から応用までを効率よくしっかり学習したい方には、UdemyのVBA講座もおすすめです。

特に自己学習で進める場合、ビデオや実践例があると理解が進みやすくなります。

多彩な講座から自分に合った講座を探そう!
UdemyでVBAを検索
UdemyでVBAを検索 画像出典:Udemy

\  自分のペースで学べるVBA講座はこちら  /

使用例1: 順番にセルに値を入力する

セル範囲「A1」から「A10」に、「1」から「10」までの数値を順に入力する方法を紹介します。

主な使用用途: セルに数値を順に入力する場合や、配列にデータを格納する際に使用します。

コード例

Sub InputValues()
    Dim i As Long

    For i = 1 To 10
        Cells(i, 1).Value = i
    Next i

End Sub

処理結果

使用例1: 順番にセルに値を入力するの処理結果

コードの動作概要

STEP
変数「i」を宣言

変数「i」を Long型で宣言し、ループのカウントに使用します。

STEP
Forループを開始

変数「i」の値を「1」から「10」まで繰り返し、ループを開始します。

STEP
セルに値を入力

ループごとに、セルの「A列」1行目から10行目に対して、ループするカウント「i」を値として入力します。

STEP
ループ終了

10回のループが完了し、すべての値が入力された時点でループが終了します。

このコードで使用している機能

1行ずつコードを解説

クリック」してコードの詳細解説を見る
  1. Sub InputValues()
    • この行では、「Subステートメント」を使用して新しいプロシージャ(サブルーチン)を定義しています。
      プロシージャ名は「InputValues」で、このサブルーチンが実行されると指定された一連の操作が実行されます。
  2. Dim i As Long
    • ここでは、変数「i」を Long 型として宣言しています。
      この変数は、後に For ループで使用され、繰り返し処理のカウンタとして働きます。
      Long 型は、より大きな整数値を扱うためのデータ型です。
  3. For i = 1 To 10
    • この行では、「Forループ」が開始されます。
      変数「i」が「1」から「10」まで増加する範囲でループが繰り返されます。
      ループは10回実行され、それぞれのループごとに i の値が「1」ずつ増加します。
  4. Cells(i, 1).Value = i
    • この行では、Cells(i, 1) を使用して、シート上の「i」行目の1列目(A列)のセルを指定しています。
      そして、そのセルに変数「i」の値を代入しています。
      例えば、1回目のループでは「A1」に「1」が入力され、2回目のループでは「A2」に「2」が入力されるように順番に処理されます。
  5. Next i
    • この行でサブルーチンが終了します。
      ループの処理が完了し、プログラムが次に実行する手順に移行します。
  6. End Sub
    • この行は、サブルーチン「InputValues」の終わりを示します。

このコードは、セル「A1」から「A10」までに、「1」から「10」までの数値を順に入力する処理を行います。
For ループを使用して、変数「i」の値を各セルに代入しています。

使用例2: ループで「Step」を使い、数値を飛ばして加算する

セル範囲「A1」から「A10」に、2ずつ増加する数値を入力する方法を紹介します。

主な使用用途: 数値やデータを特定の増加幅で入力したい場合に便利です。例えば、偶数や奇数を扱う処理に適しています。

コード例

Sub StepValues()
    Dim i As Long

    For i = 1 To 10 Step 2
        Cells(i, 1).Value = i
    Next i

End Sub

処理結果

使用例2: ループで「Step」を使い、数値を飛ばして加算するの処理結果

コードの動作概要

STEP
変数「i」を宣言

変数「i」を Long型で宣言し、ループのカウントに使用します。

STEP
Forループを開始

変数「i」を「1」から「10」まで、「2」ずつ増加させながらループを実行します。(Step 2 により1, 3, 5, 7, 9と進行します)

STEP
セルに値を入力

ループごとに、セルの「A列」の奇数行(A1, A3, A5, A7, A9)に、その行番号に対応する数値を入力します。

STEP
ループ終了

変数「i」が「10」を超えた時点で、ループが終了し、値の入力が完了します。

このコードで使用している機能

1行ずつコードを解説

クリック」してコードの詳細解説を見る
  1. Sub StepValues()
    • この行は、新しいサブルーチン「StepValues」を定義しています。
      Subステートメントは、VBAで一連の操作をグループ化し、名前を付けて実行可能な処理を作成します。
  2. Dim i As Long
    • ここでは、変数「i」を Long 型として宣言しています。
      この変数は、後に For ループで使用され、繰り返し処理のカウンタとして働きます。
      Long 型は、より大きな整数値を扱うためのデータ型です。
  3. For i = 1 To 10
    • この行では、「Forループ」を定義しています。
      変数「i」の初期値を「1」、終了値を「10」とし、「Step 2」によって、「i」が「2」ずつ増加するように指定しています。
      ループは、「i」が「10」を超えるまで繰り返されます。

      最初のループでは i =1
      次のループでは i = 3
      以降、i = 5, 7, 9 というように進行します。
  4. Cells(i, 1).Value = i
    • この行では、Cells(i, 1) を使用して、シート上の「i」行目の1列目(A列)のセルを指定しています。
      そして、そのセルに変数「i」の値を代入しています。
      例えば、最初のループではセル「A1」に「1」、次のループではセル「A3」に「3」、「A5」に「5」と順に代入されます。
  5. Next i
    • この行でサブルーチンが終了します。
      ループの処理が完了し、プログラムが次に実行する手順に移行します。
  6. End Sub
    • この行は、サブルーチン「StepValues」の終わりを示します。

このコードは、セル「A1」から「A9」の奇数行に対して、「1」から「9」までの数値を「2ずつ増加」させながら順に入力する処理を行っています。

使用例3: 逆方向にループを行う

セル範囲「A10」から「A1」に、逆順で数値を入力する方法を紹介します。

主な使用用途: データを逆方向に処理したい場合や、逆順にデータを削除する処理などに使用します。

コード例

Sub ReverseInputValues()
    Dim i As Long

    For i = 10 To 1 Step -1
        Cells(i, 1).Value = 11 - i
    Next i

End Sub

処理結果

使用例3: 逆方向にループを行うの処理結果

コードの動作概要

STEP
変数「i」を宣言

変数「i」を Long型で宣言し、ループのカウントに使用します。

STEP
Forループを開始

変数「i」を「10」から「1」まで、「1」ずつ減少させながらループを実行します(Step -1 により逆順に進行)。

STEP
セルに値を入力

ループごとに、セルの「A列」10行目から1行目に対して、ループするカウント「i」を値として入力します。

STEP
ループ終了

変数「i」 が「1」を下回った時点で、ループが終了し、値の入力が完了します。

このコードで使用している機能

1行ずつコードを解説

クリック」してコードの詳細解説を見る
  1. Sub ReverseInputValues()
    • この行では、新しいサブルーチン「ReverseInputValues」を定義しています。
      Sub ステートメントを使用して、処理をまとめて命名し、後で実行可能なブロックを作成します。
  2. Dim i As Long
    • ここでは、変数「i」を Long 型として宣言しています。
      この変数は、後に For ループで使用され、繰り返し処理のカウンタとして働きます。
      Long 型は、より大きな整数値を扱うためのデータ型です。
  3. For i = 10 To 1 Step -1
    • この行では、Forループを定義しています。
      このループでは、変数「i」の初期値を「10」、終了値を「1」とし、「Step -1」により「i」が「1」ずつ減少するように設定されています。
      ループは変数「i」が 1 になるまで繰り返されます。

      ループの開始時点で「i = 10」から始まり、次の反復で変数「i」は「9」になります。
      以降、変数「i」の値は毎回「1」ずつ減少します。
  4. Cells(i, 1).Value = 11 – i
    • この行では、Excelのセルに値を入力しています。
      Cells(i, 1) を使って、i 行目の A 列(1列目)のセルを指定しています。
      セルには 11 – i の計算結果が入力されます。

      例えば、「i = 10」の場合、11 – 10 = 1 なので、セル「A10」に「1」が入力されます。
      次に「i = 9」の場合、11 – 9 = 2 なので、セル「A9」に「2」が入力されます。
      これを繰り返し、「A1」には「10」が入力されます。
  5. Next i
    • この行では、Forループが次の反復に進むように指示します。
      変数「i」が「Step -1」によって「1」ずつ減少しながら繰り返され、i = 1 になるまで実行されます。
      変数「i」が「1」になった後、ループが終了します。
  6. End Sub
    • この行は、サブルーチン「StepValues」の終わりを示します。

このコードは、セル「A10」から「A1」に向かって、「1」から「10」までの数値を逆順に入力する処理を行っています。
セル「A10」には「1」、セル「A1」には「10」が入力され、10行に渡って値が逆順に設定されます。

使用例4: ループを強制終了する方法

特定の条件を満たした場合、ループを強制終了する方法を紹介します。

主な使用用途: 特定の条件に達したら処理を中断したい場合に使用します。

コード例

Sub BreakLoop()
    Dim i As Long

    For i = 1 To 10
        If i = 5 Then
             Exit For
        Else
            Cells(i, 1).Value = i
        End If
    Next i

End Sub

処理結果

使用例4: ループを強制終了する方法の処理結果

コードの動作概要

STEP
変数「i」を宣言

変数「i」を Long型で宣言し、ループのカウントに使用します。

STEP
Forループを開始

変数「i」が「1」から「10」まで増加するようにループを実行します。

STEP
ループの途中で条件をチェック

変数「i」が「5」になった時点で、Exit For文によりループを強制終了します。

STEP
セルに値を入力

変数「i」が「5」未満の場合、セルの値に変数「i」の値を入力します。

STEP
ループ終了

変数「i」が「5」になった時点でループが終了し、それまでに入力された値が確定します。

このコードで使用している機能

1行ずつコードを解説

クリック」してコードの詳細解説を見る
  1. Sub BreakLoop()
    • この行では、「BreakLoop」という新しいサブルーチンを定義しています。
      このサブルーチン内での処理は、特定の条件が満たされた場合にループを途中で終了させるために使用されます。
  2. Dim i As Long
    • ここでは、変数「i」を Long 型として宣言しています。
      この変数は、後に For ループで使用され、繰り返し処理のカウンタとして働きます。
      Long 型は、より大きな整数値を扱うためのデータ型です。
  3. For i = 1 To 10
    • この行では、「Forループ」が定義されています。
      変数「i」 の初期値を「1」、終了値を「10」と設定して、変数「i」 が「1」から「10」まで「1」ずつ増加する間、ループが繰り返されます。
  4. If i = 5 Then
    • この行では、条件分岐が行われています。
      変数「i」が「5」と等しい場合、Then に続く処理が実行されます。
  5. Exit For
    • この行では、If 文が True になった場合に Exit For ステートメントが実行されます。
      Exit For は、現在の For ループを途中で強制終了するためのコマンドです。
      ここでは、変数「i」が「5」に達した時点でループが終了
      します。
  6. Else
    • この行では、If 文の条件が False の場合に実行される処理を示します。
      つまり、「i」が「5」ではない場合は、Else に続くコードが実行されます。
  7. Cells(i, 1).Value = i
    • この行では、i 行目の A 列(1列目)のセルに変数「i」の値を入力します。
      例えば、i = 1 の場合はセル「A1」に「1」が、i = 2 の場合はセル「A2」に「2」が入力されます。
      ただし、i = 5 の場合は Exit For によってループが強制終了されるため、それ以降のセルには値が入力されません。
  8. End If
    • この行は、If 文の終了を示します。
      ここで If…Else 構文が終了します。
  9. Next i
    • この行では、For ループの次の反復に進みます。
      変数「i」が「1」ずつ増加し、次の値で再びループが実行されます。
      変数「i」が「5」になると Exit For によりループが終了します。
  10. End Sub
    • この行は、サブルーチン「BreakLoop」の終了を示します。
      サブルーチン内の処理がすべて完了します。

このコードは、「1」から「10」までの数字をA列に入力する処理を行いますが、途中で「i」が「5」に達した時点でループを強制終了します。
そのため、A列のセル「A1」からセル「A4」には「1」から「4」までの値が入力され、「A5」以降のセルには何も入力されません。

使用例5: 特定の条件になったら、ループを「スキップ」する方法

特定の条件を満たした場合、ループ内の一部の処理をスキップする方法を紹介します。

主な使用用途: 条件に応じて一部の処理を飛ばしたい場合や、特定のデータを除外する処理に便利です。

コード例

Sub SkipLoop()
    Dim i As Long

    For i = 1 To 10
        If i = 5 Then
            GoTo Continue
        Else
            Cells(i, 1).Value = i
        End If
Continue:
    Next i
End Sub

処理結果

使用例5: 特定の条件になったら、ループを「スキップ」する方法の処理結果

コードの動作概要

STEP
変数「i」を宣言

変数「i」を Long型で宣言し、ループのカウントに使用します。

STEP
Forループを開始

変数「i」が「1」から「10」まで増加するようにループを実行します。

STEP
ループの途中で条件をチェック

変数「i」が「5」になった時点で「GoTo Continue」により、Cells(i, 1).Value = i の処理をスキップして次のループへ進みます。

STEP
セルに値を入力

変数「i」が「5」以外の場合、該当するセルにその値が入力されます。

STEP
ループ終了

変数「i」が「10」になった時点でループが終了し、セルに入力された値が確定します。

このコードで使用している機能

1行ずつコードを解説

クリック」してコードの詳細解説を見る
  1. Sub SkipLoop()
    • この行では、「SkipLoop」という新しいサブルーチンを定義しています。
      このサブルーチン内では、特定の条件が満たされた場合に、ループの一部の処理をスキップするためのロジックが実行されます。
  2. Dim i As Long
    • ここでは、変数「i」を Long 型として宣言しています。
      この変数は、後に For ループで使用され、繰り返し処理のカウンタとして働きます。
      Long 型は、より大きな整数値を扱うためのデータ型です。
  3. For i = 1 To 10
    • この行では、「Forループ」が定義されています。
      変数「i」 の初期値を「1」、終了値を「10」と設定して、変数「i」 が「1」から「10」まで「1」ずつ増加する間、ループが繰り返されます。
  4. If i = 5 Then
    • この行では、条件分岐が行われています。
      変数「i」が「5」と等しい場合、Then に続く処理が実行されます。
  5. GoTo Continue
    • この行では、「GoToステートメント」が使用されています。
      変数「i」 が「5」の場合、「GoTo」によってラベル「Continue」まで処理をジャンプし、Cells(i, 1).Value = i の処理をスキップします。
      このため、i = 5 のときにはセルに値が入力されません。
  6. Else
    • この行では、If 文の条件が False の場合に実行される処理を示します。
      つまり変数「i」が「5」でない場合に実行される処理を示しています。
  7. Cells(i, 1).Value = i
    • この行では、i 行目の A 列(1列目)のセルに変数「i」の値を入力します。
      例えば、i = 1 の場合はセル「A1」に「1」が、i = 2 の場合はセル「A2」に「2」が入力されます。
      i = 5 の場合は「GoTo Continue」によってスキップされるため、セル「A5」には値が入力されません。
  8. End If
    • この行は、If 文の終了を示します。
      ここで If…Else 構文が終了します。
  9. Continue:
    • この行はラベルです。
      「GoToステートメント」によってジャンプする先の位置を示します。
      i = 5 の場合、このラベルにジャンプし、以降の処理を続行します。
      これにより、セル「A5」への値の入力がスキップされます。
  10. Next i
    • この行では、「Forループ」の次の反復に進みます。
      変数「i」が「1」ずつ増加し、次の値で再びループが実行されます。
  11. End Sub
    • この行は、サブルーチン「SkipLoop」の終了を示します。

このコードは、「1」から「10」までの数字をA列に入力する処理を行いますが、「i」 が「5」 のときだけは処理をスキップし、「A5」には値が入力されません。
「A1」から「A4」には「1」から「4」までの値が、「A6」から「A10」には「6」から「10」までの値が入力されますが、「A5」は空のままになります。

スポンサーリンク

この記事のまとめ

VBAのFor文は、Excelの繰り返し処理を効率化するために欠かせないツールです。

この記事を通じて、基本的な使い方から応用的な操作までを理解し、実務で活用できるスキルが身につきます。

ポイントのおさらい

  • VBAのFor Next文を使った繰り返し処理を理解する
  • VBAのFor Next文では、以下のような便利な機能がよく使われます
  • 繰り返し処理の際の注意点を確認する
  • セルにデータを入力する様々な方法を学ぶ
    • 順番にデータを入力する逆順に処理を行う、または特定の値ごとに飛ばしながらデータを入力するなど、さまざまな場面でFor文を活用する方法を具体的に学びました。
      また、特定の条件を満たしたときにループを強制終了する「Exit For」や、特定の条件をスキップする方法も学びました。
      これにより、柔軟なループ処理の制御が可能になります。

      ⇒ 「VBAのFor Next文の使用例をご紹介」もう一度見る。

この記事の使用例を実践していくことで、VBAの繰り返し処理ができるようになります。

最初はコードをコピペして実行し、少しずつ自分で書けるようにしていきましょう。

あわせて読みたい
サイトマップ このページは、本サイトの記事を分かりやすくまとめました。ぜひご覧ください。 目次 「VBA」を見る 「Officeスクリプト」を見る 「ワークシート関数」を見る 「JavaScr...
スポンサーリンク
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次