facebook

【2025】VBAのFor文とは?基本構文から実務で使える活用例まで解説

VBAでの業務効率化を目指す上で、繰り返し処理は避けて通れない重要な要素です。その中でも「For文」は最も基本かつ汎用性の高い構文であり、数値の操作からデータ処理まで幅広く活用されます。

本記事では、For文の基本構文から実務的な応用方法、他のループ構文との違い、実務での注意点までを体系的に解説します。VBA初心者の方でも安心して読み進められる内容です。

VBAのFor文とは何か

VBAのFor文とは何か

VBAのFor文は、指定した回数だけ処理を繰り返すための制御構文です。繰り返し処理を自動化することで、手作業では時間のかかるExcel操作を大幅に効率化できます。

例えば、特定のセルに一括で値を入力したり、数値を集計したりする場面で活躍します。For文ではカウンタ変数を使って繰り返しの回数や条件を制御できるため、単純なループから複雑な処理まで柔軟に対応できます。

VBAの基本として、まず最初に習得すべき構文です。

VBAについて詳細を知りたい方は、下記をご覧ください。

【2025】VBAでできることとは?自動化のための基本コードを紹介

VBAのFor文の基本

VBAのFor文の基本

VBAの「For文」は、決まった回数だけ処理を繰り返す際に欠かせない基本構文です。

ここでは、VBAの起動手順から、For文の書き方と実行例までを解説します。

VBAの始め方

VBAのFor文を使い始めるためには、まずExcelでVBAを立ち上げ設定する必要があります。

以下は、その手順です。

  1. Excel上部の「ファイル」→「オプション」→「リボンのユーザー設定」で「開発」タブにチェックを入れて有効にする
    Excel上部の「ファイル」→「オプション」→「リボンのユーザー設定」で「開発」タブにチェックを入れて有効にする
  2. 「Visual Basic」をクリックし、VBAエディタを起動
    「Visual Basic」をクリックし、VBAエディタを起動
  3. エディタ上で「挿入タブ」→「標準モジュール」を選択
    エディタ上で「挿入タブ」→「標準モジュール」を選択
  4. コードを記述して実行

上記に沿って設定してみましょう。

For文の基本

VBAのFor文は、決まった回数だけ同じ処理を繰り返す際に使われます。

基本構文は以下の通りです。

For カウンタ変数 = 開始値 To 終了値
‘ 繰り返し処理
Next カウンタ変数

たとえば、1から5までの数を表示する場合は次のようになります。

Dim i As Integer
For i = 1 To 5
MsgBox i
Next i

この構文では、iが1から5まで1ずつ増加しながらループ内の処理が5回繰り返されます。繰り返し処理の基本として頻繁に使われる構文です。

基本的なVBAのFor文の使い方

VBAにおけるFor文は、定型処理や大量のデータを効率よく処理するために欠かせない構文です。基本構文を理解したら、さまざまな用途に応じて応用できるようになります。

ここンでは、日常的によく使われる「単純な繰り返し」や「数値計算」への応用方法を、具体的なコード例とともに見ていきましょう。

基本①単純な繰り返し処理の例

最も基本的な使い方として、「同じ処理を指定回数だけ繰り返す」というシーンがあります。

たとえば、「こんにちは」と5回表示するような単純な繰り返しがその典型です。

例は以下の通りです。

Sub RepeatMessage()
Dim i As Integer
For i = 1 To 5
MsgBox “こんにちは”
Next i
End Sub

このコードでは、変数iが1から5まで変化し、その回数分だけMsgBoxで「こんにちは」が表示されます。単純な繰り返しを体感するには最適な例です。

基本②数値計算への応用

For文は、繰り返しのたびに値を蓄積することで、合計値などの計算にも利用できます。

たとえば1から100までの合計を求めるといった処理も簡単に実現できます。

例は以下の通りです。

Sub SumNumbers()
Dim i As Integer
Dim total As Long
total = 0
For i = 1 To 100
total = total + i
Next i
MsgBox “合計は ” & total & ” です。”
End Sub

このコードでは、iが1から100まで繰り返される中で、変数totalにiの値を逐次加算していきます。結果として、1から100までの合計である5050が表示されるのです。

応用的なVBAのFor文の使い方

応用的なVBAのFor文の使い方

基本的なFor文の使い方に慣れてきたら、次は応用的なテクニックを学びましょう。Step句を使ったカウント間隔の制御、ループのネスト、条件による中断、条件付き処理などを組み合わせることで、より柔軟で実用的な処理が可能になります。

ここでは、それぞれの代表的な活用方法を紹介します。

応用①Step句による増分・減分の制御

For文は通常1ずつ増加しますが、「Step句」を使えば増加幅や減少も指定できます。たとえば2つおきにループしたり、逆方向にカウントしたりできます。

下記コードは、1・3・5・7・9の順で出力されます。Step 2により、iは2ずつ増加します。

Sub StepExample()
Dim i As Integer
For i = 1 To 10 Step 2
Debug.Print i
Next i
End Sub

応用すれば、偶数・奇数処理やデータの間引きも可能です。

応用②ネストされたFor文(多重ループ)

For文の中にさらにFor文を書くことで、2次元的な処理が可能になります。たとえば、Excelの複数行・列に対する一括処理などに使われます。

下記のコードは、A1〜B3の範囲に「行1 列1」などの文字を自動入力します。

Sub NestedLoop()
Dim i As Integer, j As Integer
For i = 1 To 3
For j = 1 To 2
Cells(i, j).Value = “行” & i & ” 列” & j
Next j
Next i
End Sub

外側のループで行を、内側で列を処理する典型的な例です。

応用③Exit Forによる途中脱出処理

繰り返しの途中で条件を満たしたらループを中断したい場合は、Exit Forを使います。無駄な処理を避けることができます。

下記のコードでは、A列の値が空白になる行でループを終了し、それ以前の行に「入力済」とB列へ記入します。

Sub ExitForExample()
Dim i As Integer
For i = 1 To 10
If Cells(i, 1).Value = “” Then
Exit For
End If
Cells(i, 2).Value = “入力済”
Next i
End Sub

途中で終了させることで無駄なチェックを避けられます。

応用④条件分岐と組み合わせたループ制御

ループ中に特定条件だけ処理を実行したい場合、If文を併用することで柔軟な制御が可能です。よくあるパターンは、特定の値に対してのみ処理を行うものです。

下記のコードは、A列の数値が100以上であれば、B列に「合格」と表示します。

Sub ConditionalLoop()
Dim i As Integer
For i = 1 To 10
If Cells(i, 1).Value >= 100 Then
Cells(i, 2).Value = “合格”
End If
Next i
End Sub

条件付き処理を入れることで、単なる繰り返しを実用的なフィルタ処理に変えることができるでしょう。

IF文について詳細を知りたい方は、下記をご覧ください。

【2025】VBAのIFとは?使い方や覚えておきたい演算子について解説!

VBAのFor文とFor Eachの違い

VBAのFor文とFor Eachの違い

VBAでは、繰り返し処理に「For文」と「For Each文」の2種類があります。どちらもループ処理を行うための構文ですが、使い方や適した場面が異なります。

For文は「回数を指定した繰り返し」に適しており、カウンタ変数を使って明確な制御ができます。一方で、For Each文は「配列やコレクションなどのすべての要素を順番に処理する」場合に便利です。

以下の表で違いを比較してみましょう。

項目 For文の特徴 For Each文の特徴 例(サンプルコード)
ループ制御 カウンタ変数(i など)で回数を制御 要素そのものを1つずつ取得 For Each cell In Range(“A1:A5”)
処理対象 数値範囲や配列のインデックス 配列、Range、コレクションなど For i = 1 To 5
要素数の把握 明示的にカウントが必要(UBoundなど) 自動で要素数を判断 配列やRangeの全要素を自動で処理
処理の自由度 Step句で増減指定や逆順処理が可能 順方向のループ処理のみ For Each obj In Worksheets
適している用途 明確な回数で処理する数値ループや行番号指定処理 配列、セル範囲、オブジェクトの全体処理 配列要素の一括表示、Rangeの全セル処理

それぞれの構文に得意・不得意があるため、用途に応じて適切に使い分けることが重要です。VBAをより効率的に書くためにも、この違いをしっかり理解しておきましょう。

VBAのFor文とDo While文・Do Until文との比較

VBAのFor文とDo While文・Do Until文との比較

VBAでは繰り返し処理を行うために、For文の他に「Do While文」や「Do Until文」も利用されます。For文と同じくループ処理を実現しますが、繰り返し回数ではなく“条件”を基準に処理を繰り返すという点で異なります。
「回数が決まっているならFor文」、「条件が満たされるまで処理したいならDo文系」と使い分けるのが基本です。

以下の表で具体的な違いを確認しましょう。

比較項目 For文 Do While文 Do Until文 使用例
ループの基準 回数 条件が成立している間(Trueの間) 条件が成立するまで(Falseの間) 条件によって終了する処理(空白セルまで繰り返す等)
初期値の指定 必須(例:For i = 1 To 10) 任意(外で指定) 任意(外で指定) i = 1 から条件に従って増やしていく
回数の明確さ 明確(開始値と終了値で制御) 不明確(条件の結果次第で変化) 不明確(条件の結果次第で変化) データ量が変動する処理に適している
無限ループの危険性 少ない(回数指定のため) 条件が変化しなければ無限ループの可能性あり 条件が変化しなければ無限ループの可能性あり 必ずループ終了条件を確認する必要あり
主な使用場面 繰り返し回数が決まっている処理 空白セルになるまで、特定条件が続く間の処理 同上(論理的にはWhileの逆) データが続く限り処理を繰り返す、ファイル存在チェック

Do文系のループは、データ件数や状況に応じて繰り返し回数が変化する実務処理(例:表の最終行まで処理する、エラーが出るまで処理する等)で力を発揮します。処理の目的や条件に応じて、構文を正しく使い分けましょう。

エクセルを使った業務改善を目指すための実践ガイド

Excel業務の効率化やDXに取り組む方におすすめなのが、「エクセル業務を効率化するための実践ガイド」資料です。

この資料では、Excelを活用した業務改善の具体例や、自動化・標準化のための基本ノウハウが丁寧にまとめられており、関数や操作の応用方法も実務に即した形で紹介されています。

特に、複数の部署で同じデータを扱う必要がある場合や、月次業務の繰り返し作業を見直したい場合などに効果的です。内容は図解や例を交えてわかりやすく構成されており、初心者でも理解しやすいのが特徴です。

メールアドレスを登録するだけで無料でダウンロードできるため、Excelの業務活用をさらに深めたい方は、ぜひチェックしてみてください。

VBAのFor文の実務での活用方法

VBAのFor文の実務での活用方法

VBAのFor文は、日々のExcel業務において非常に多くの場面で活用されています。しかし、便利な反面、使い方によっては逆に作業を複雑化させたり、トラブルの原因となる場合もあります。

ここでは、実務での代表的な活用例と、注意しておきたいポイントについて見ていきましょう。

Excel操作自動化へ応用できる

For文は、Excelの定型業務や繰り返し処理を効率化するために非常に有効です。毎回同じ作業を手動で行うのではなく、自動化によって作業時間を大幅に短縮できます。

具体的には、以下の通りです。

  • 複数行への一括データ入力
  • 複数ファイルの一括処理
  • 条件に応じたセルの色分けや数値集計
  • ピボットテーブルやグラフの自動生成
  • 行ごとに異なる処理を自動で実行

たとえば、100行にわたるデータ入力や、各行ごとに異なる条件での判定処理なども、For文を活用すれば数秒で完了します。手作業による人的ミスを防ぎながら、業務の正確性とスピードを同時に高めることが可能です。

MsgBox多用によりループトラブルを回避する

VBAの学習初期には、処理内容を確認する目的でMsgBoxを使うことが多いですが、For文の中で多用すると動作が極端に遅くなったり、操作を妨げる原因になります。

具体的には、以下の通りです。

  • ループ回数が多いと毎回ポップアップが表示されて手作業が止まる
  • ユーザーが都度閉じないと次の処理に進めない
  • デバッグのつもりが逆に無限ループのように感じられる
  • 業務中の自動処理で画面操作を妨げてしまう

そのため、デバッグにはDebug.Printを使い、必要最低限の確認に留めるようにしましょう。大量のループでは、非表示で処理を進め、結果のみを一度に表示するような工夫が重要です。

可読性・保守性を意識してFor文を書く

VBAコードは一度書いたら終わりではなく、後から修正・保守するケースが多くあります。For文も可読性を高めることで、将来的なメンテナンス性が向上するでしょう。

具体的には、以下の通りです。

  • 意味のある変数名を使う(例:i → rowIndex)
  • インデントを整えて構造を視覚的に分かりやすくする
  • コメントを適切に記述する
  • ネストが深くなる場合は処理をサブルーチンに分割する
  • ループの終了条件や意図を明確にしておく

こうした工夫をすることで、他人だけでなく自分が後から見たときにも理解しやすくなります。特に実務では「読めるコード」「直せるコード」が重視されるため、正確性と同じくらい見やすさにも意識を向けることが大切です。

実務で使えるおすすめのExcelマクロ・VBAセミナー

Excelマクロ・VBAセミナー VBAの基礎から実務で使えるスキルまでを短期間で習得したい方には、「Excelマクロ・VBAセミナー」の受講がおすすめです。

講座はで、マクロの記録や編集から始まり、ファイル操作、データ整形、帳票作成、グラフ作成、ユーザーフォームの構築など、現場で役立つ内容が実践形式で学べます。講師は現場経験豊富で、初心者でも安心して学べるサポート体制が整っている点も魅力です。

特にFor文を活用した繰り返し処理や条件付きの自動化処理など、本記事で学んだ内容を実際に手を動かしながら定着させる絶好の機会です。

セミナー名Excelマクロ・VBAセミナー
運営元GETT Proskill(ゲット プロスキル)
価格(税込)27,500円〜
開催期間2日間
受講形式対面(東京・名古屋・大阪)・ライブウェビナー・eラーニング

VBAのFor文のまとめ

VBAのFor文は、業務効率化に直結する機能であり、基本から応用までを理解することで、Excel作業の幅が大きく広がります

本記事で紹介した内容をもとに、まずは簡単な繰り返し処理から実践を重ね、自分の業務にどう活かせるかを考えてみてください。また、より実践的にスキルを習得したい方は、プロの指導と実務例を通じて学べるセミナーの活用も効果的です。

着実にVBAスキルを高め、日々の業務をよりスマートにこなしていきましょう。

VBAのFor文とは?基本構文から実務で使える活用例まで解説
最新情報をチェックしよう!