「Cells」は単なるセル指定だけでなく、業務効率化の武器になります。ここでは、実務でよく使う10パターンをまとめました。すぐに応用できるコード例付きです。
1️⃣ データコピー(縦方向)
Sub CopyColumn()
Dim lastRow As Long, i As Long
lastRow = Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To lastRow
Cells(i, 2).Value = Cells(i, 1).Value
Next i
End Sub
VB👉 A列のデータをB列へコピー。よくある「隣列に加工結果を出す」処理。
2️⃣ データコピー(横方向)
Sub CopyRow()
Dim lastCol As Long, i As Long
lastCol = Cells(1, Columns.Count).End(xlToLeft).Column
For i = 1 To lastCol
Cells(2, i).Value = Cells(1, i).Value
Next i
End Sub
VB👉 1行目のデータを2行目へコピー。表の横方向処理に便利。
3️⃣ 連番入力
Sub FillSerialNumbers()
Dim i As Long
For i = 1 To 100
Cells(i, 1).Value = i
Next i
End Sub
VB👉 A列に1〜100までの連番を自動入力。社員番号やID付与に使える。
4️⃣ 条件付き書式(値によって色付け)
Sub HighlightOverThreshold()
Dim i As Long, lastRow As Long
lastRow = Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To lastRow
If Cells(i, 1).Value >= 50 Then
Cells(i, 1).Interior.Color = vbYellow
End If
Next i
End Sub
VB👉 50以上の値を黄色に。簡易的な「条件付き書式」をVBAで実現。
5️⃣ 平均より大きい値を強調
Sub HighlightAboveAverage()
Dim rng As Range, c As Range, avg As Double
Set rng = Range(Cells(1, 1), Cells(10, 1))
avg = WorksheetFunction.Average(rng)
For Each c In rng
If c.Value > avg Then c.Font.Bold = True
Next c
End Sub
VB👉 A1〜A10の平均より大きい値を太字に。データ分析の補助に。
6️⃣ 最終行まで合計
Sub SumColumn()
Dim lastRow As Long
lastRow = Cells(Rows.Count, 1).End(xlUp).Row
Cells(lastRow + 1, 1).Value = WorksheetFunction.Sum(Range(Cells(1, 1), Cells(lastRow, 1)))
End Sub
VB👉 A列の合計を最終行の下に出力。集計業務でよく使う。
7️⃣ 空白セルをスキップして処理
Sub SkipBlanks()
Dim i As Long, lastRow As Long
lastRow = Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To lastRow
If Cells(i, 1).Value <> "" Then
Cells(i, 2).Value = Cells(i, 1).Value * 2
End If
Next i
End Sub
VB👉 空白を無視して計算。入力漏れがあるデータでも安全に処理。
8️⃣ 二重ループで表作成(九九表)
Sub MultiplicationTable()
Dim r As Long, c As Long
For r = 1 To 9
For c = 1 To 9
Cells(r, c).Value = r * c
Next c
Next r
End Sub
VB👉 縦横に展開する処理。クロス集計やマトリクス表に応用可能。
9️⃣ 範囲をまとめて色付け
Sub ColorRange()
Dim lastRow As Long
lastRow = Cells(Rows.Count, 1).End(xlUp).Row
Range(Cells(1, 1), Cells(lastRow, 3)).Interior.Color = RGB(220, 230, 241)
End Sub
VB👉 A1〜C最終行までを水色に。報告書の整形に便利。
🔟 特定文字を含むセルを検索
Sub FindKeyword()
Dim i As Long, lastRow As Long
lastRow = Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To lastRow
If InStr(Cells(i, 1).Value, "重要") > 0 Then
Cells(i, 1).Font.Color = vbRed
End If
Next i
End Sub
VB👉 「重要」という文字を含むセルを赤字に。キーワードチェックに活用。
まとめ
- Cellsは「動的にセルを指定」できるのが強み
- Rangeと組み合わせると範囲処理が簡単
- 実務では「コピー」「集計」「色付け」「検索」が特に多い
👉 この10パターンを覚えると、日常業務のExcel作業をほぼ自動化できます。
