実務でよく使う For…Next 文サンプル
「実務で役立つ Excel VBA の For…Next 文サンプル」を紹介します。初心者でもすぐ応用できるように、業務でよくあるシーンを例に挙げます。
1. 売上データの合計を求める
シーン: B列に売上金額が並んでいて、合計をC1に出したい。
Sub SumSales()
Dim i As Long
Dim total As Double
total = 0
' B2~B101までの売上を合計
For i = 2 To 101
total = total + Cells(i, 2).Value
Next i
Range("C1").Value = total
End Sub
VB2. 空欄セルに「未入力」と書き込む
シーン: A列に名前リストがあり、空欄を見つけたら「未入力」と補完する。
Sub FillBlanks()
Dim i As Long
For i = 2 To 50
If Cells(i, 1).Value = "" Then
Cells(i, 1).Value = "未入力"
End If
Next i
End Sub
VB3. 条件付きで色を付ける
シーン: 売上が 100,000 円以上なら緑、未満なら赤にする。
Sub HighlightSales()
Dim i As Long
For i = 2 To 101
If Cells(i, 2).Value >= 100000 Then
Cells(i, 2).Interior.Color = vbGreen
Else
Cells(i, 2).Interior.Color = vbRed
End If
Next i
End Sub
VB4. 月次シートをまとめて処理
シーン: 「1月」「2月」…「12月」シートのA1セルに「チェック済」と書き込む。
Sub MarkSheets()
Dim i As Integer
For i = 1 To 12
Sheets(i).Range("A1").Value = "チェック済"
Next i
End Sub
VB5. 複数ファイルを一括処理(応用)
シーン: フォルダ内の Excel ファイルを順番に開いて、A1セルを読み取る。
Sub ProcessFiles()
Dim i As Long
Dim FileList As Variant
' ファイル一覧を配列に格納(例として3ファイル)
FileList = Array("C:\Data\file1.xlsx", "C:\Data\file2.xlsx", "C:\Data\file3.xlsx")
For i = LBound(FileList) To UBound(FileList)
Workbooks.Open FileList(i)
Debug.Print ActiveWorkbook.Name & " の A1 = " & ActiveSheet.Range("A1").Value
ActiveWorkbook.Close SaveChanges:=False
Next i
End Sub
VBポイント
- 業務では「表の行を順番に処理する」ケースが多い
- 条件分岐 (If) と組み合わせると一気に実用的になる
- シートやファイルを順番に処理するのも For…Next の得意技
