
ExcelVBA 同じ処理を何度も繰り返すことがよくあります。繰り返し処理(ループ構文)を使うことで、大量のデータを効率的に処理できます。使い方や注意点など、サンプルコードをもとに具体的に解説します。
2025年の目標は繰り返し作業に悩まされない年にしませんか? Excel VBAを活用した効率化がその第一歩
本サイト参考:Excel VBAで自動化するコードのベースを習得したい方におすすめの記事
目次
Excel VBA 繰り返し構文|シーン
以下のシーンで利用します。
1.データの一括処理(100行分のデータを1行ずつ処理)
2.空白セルを検索し、自動で色をつける。
3.一定の条件を満たすまでループ処理を実行する。
Excel VBA 繰り返し構文|サンプルコード
Excel VBAで効率化の準備をしてみませんか?2025年をよりスムーズに過ごすための資格
基本的な文法やVBAの実践的な応用までを網羅的に学習できる方法は、ExcelVBAエキスパート資格の取得を目指すこと。学習を通して、より効率的に、着実に基礎を身につけることが可能です。資格取得すれば、スキルの証明にもなり、職場での評価アップにも繋がるため、勉強を進めるモチベーションにもなります。
本サイト参考:マクロ知識がないから「何から学べば良いのかわからない」という人におすすめの記事
指定回数の繰り返し(For Next)
標準モジュール(数値を使って指定回数ループする )
Option Explicit
Sub ForNextサンプル()
Dim i As Integer
For i = 1 To 10
Cells(i, 1).Value = "行 " & i ' A列に行番号を入力
Next i
MsgBox "処理完了!", vbInformation
End Sub
1行目~10行目のA列に「行 1」「行 2」...と入力する。
Next i で i を1ずつ増やして繰り返す。
範囲内のセルを処理(For Each Next)
標準モジュール(セル範囲のデータを1つずつ処理)
Option Explicit
Sub ForEachサンプル()
Dim rng As Range
For Each rng In Range("A1:A10") ' A1:A10を順番に処理
rng.Value = rng.Row ' 行番号を入力
Next rng
MsgBox "処理完了!", vbInformation
End Sub
For Each はセル範囲を対象に処理するのに便利です。
条件を満たす間繰り返す(Do While)
標準モジュール(条件が満たされている間ループ)
Option Explicit
Sub DoWhileサンプル()
Dim i As Integer
i = 1
Do While Cells(i, 1).Value <> "" ' A列が空白でない間繰り返す
Cells(i, 2).Value = "OK"
i = i + 1 ' 次の行へ
Loop
MsgBox "処理完了!", vbInformation
End Sub
A列のデータがある間、B列に "OK" を入力する。
i = i + 1 を忘れると 無限ループ になる。
条件を満たすまで繰り返す(Do Until)
標準モジュール(条件が満たされるまでループ)
Option Explicit
Sub DoUntilサンプル()
Dim i As Integer
i = 1
Do Until Cells(i, 1).Value = "" ' A列が空白になるまで繰り返す
Cells(i, 2).Value = "OK"
i = i + 1
Loop
MsgBox "処理完了!", vbInformation
End Sub
A列のデータがなくなるまで繰り返す。
Do Until は 条件が偽の間 繰り返すので Do While と逆の動作。
無限ループに注意
標準モジュール(ループの終了条件を適切に設定しないと、無限ループ になりExcelがフリーズすることがあります)
Option Explicit
Sub 無限ループ()
Dim i As Integer
i = 1
Do While i > 0 ' iが常に正のため、無限ループ!
Cells(i, 1).Value = "ループ"
Loop
End Sub
i = i + 1 のように カウンタを増やす
Do While i < 1000 などの 上限を設定する
Excel VBA 繰り返し構文|まとめ
構文 | 特徴 | 用途 |
For Next | 回数が決まっているループ | 1~100行目を順番に処理 |
For Each Next | セル範囲などを1つずつ処理 | 指定範囲のセルにデータ入力 |
Do While | 条件が 真の間 繰り返す | データがある間、処理を続ける |
Do Until | 条件が 偽の間 繰り返す | データが空白になるまで繰り返す |
Excel VBAで自動化するコードのベースを習得したい方におすすめ!
VBAエキスパート資格は、日常業務でExcelを多用し、手動作業を減らしたいと考えている方には価値あるものです。
ExcelVBAエキスパートベーシック
仕事の効率をあげるためにExcelVBAを利用する人が対象の問題集です。
ExcelVBAエキスパートスタンダード
ExcelVBAの開発を仕事にする人が対象の問題集です。
Excel VBA エキスパート資格について知りたい方は、下記「Excel VBAスキルアップを目指すなら知っておきたいVBAエキスパート」をご確認ください。