Excel VBAでは、行の操作を効率よく行うために「Rows」プロパティがよく使われます。たとえば、特定の行の削除や書式変更、データの抽出など、日常の業務に役立つ処理をシンプルに記述することができます。しかし、「Rows(2).Delete」や「Rows(“3:5”).Select」などの記述に戸惑ったことがある方も多いのではないでしょうか。この記事では、初心者にもわかりやすく「Rows」の基本的な使い方から応用例まで、実際のコードとともに詳しく解説します。この記事を読み終える頃には、VBAでの行操作が自信を持って行えるようになるはずです。
Rowsの基本的な使い方とは?
VBAにおけるRows
とは、Excelのシート上の「行」をオブジェクトとして参照・操作するためのプロパティです。
Rows(1).Select
このコードは、1行目を選択するという処理です。Rows
はコレクションであり、1つの行を指定したり、範囲として複数行を選択することも可能です。
Rows(3)
→ 3行目を対象Rows("2:4")
→ 2行目から4行目までを対象
また、Worksheets("Sheet1").Rows(1)
のように、シートを明示的に指定することで、別のシートの行も操作できます。
Rowsを使ったよくある処理①:行の選択
Sub SelectRow()
Rows(5).Select
End Sub
このコードは、5行目を選択する処理です。複数行を選択したい場合は、次のように記述します。
Sub SelectMultipleRows()
Rows("2:4").Select
End Sub
このように、範囲を文字列で指定することで、複数行を簡単に操作できます。
Rowsを使ったよくある処理②:行の削除
行の削除は業務で頻出する処理のひとつです。
Sub DeleteRow()
Rows(3).Delete
End Sub
上記は3行目を削除します。複数行削除する場合はこちら。
Sub DeleteMultipleRows()
Rows("5:7").Delete
End Sub
注意点として、削除処理を行うと下の行が上に詰められるため、ループ中に行削除をする場合は逆順で処理するのが基本です。
Rowsを使ったよくある処理③:行の非表示と再表示
表示・非表示もVBAでは簡単に行えます。
Sub HideRow()
Rows(4).EntireRow.Hidden = True
End Sub
Sub UnhideRow()
Rows(4).EntireRow.Hidden = False
End Sub
EntireRow
を使うことで、行全体を対象とした操作になります。
Rowsを使ったよくある処理④:書式設定
特定の行に対して書式設定を行う場合もRows
が便利です。
Sub FormatRow()
Rows(2).Font.Bold = True
Rows(2).Interior.Color = RGB(255, 255, 0)
End Sub
このコードでは、2行目の文字を太字にし、背景色を黄色に設定しています。
Rowsを使ったよくある処理⑤:値の取得と設定
行全体に対して値を読み書きする場合もRows
が使えます。
Sub ReadRowValues()
Dim values As Variant
values = Rows(2).Value
MsgBox values(1, 1) ' 2行目1列の値を表示
End Sub
Sub WriteRowValues()
Dim data As Variant
data = Array("A", "B", "C", "D")
Range("2:2").Cells(1, 1).Resize(1, 4).Value = data
End Sub
ただし、Rows.Value
で取得した値は2次元配列になりますので、扱いには少し注意が必要です。
RowsとRangeの違いに注意
Rows
とRange("A2")
などは似たような記述に見えますが、実際には操作対象の範囲や使えるプロパティに違いがあります。
たとえば、Rows(1)
は1行全体(A列からZ列など)を対象にしていますが、Range("A1")
はA1セルのみを指します。
書式設定や行削除などを行うときは、どちらが適切かを意識して使い分けましょう。
Rowsを使ったループ処理の例
複数行を順番に処理したいときは、For文との組み合わせがよく使われます。
Sub LoopRows()
Dim i As Integer
For i = 1 To 10
If Cells(i, 1).Value = "" Then
Rows(i).Interior.Color = RGB(255, 200, 200)
End If
Next i
End Sub
このコードは、1列目が空白の行を赤っぽい色でハイライトします。
Worksheets(“Sheet名”).Rows を活用して他シートも操作
現在アクティブでないシートを対象に操作したいときには、次のように書きます。
Sub DeleteRowInOtherSheet()
Worksheets("DataSheet").Rows(2).Delete
End Sub
Worksheets("シート名")
を使えば、どのシートでもRows
を使った操作が可能になります。
Rowsの使用上の注意点
Rows
は省略するとアクティブシートが対象になるため、シートの指定ミスに注意。- 行番号と実際のデータの行にズレがないかチェック。
- 削除や非表示などの操作をループで行う場合は、下から上へ処理しないと正しく動作しないケースがある。
まとめ
VBAにおけるRows
の使い方を理解することで、Excel上の行に関する操作が非常に効率よく行えるようになります。基本的な選択や削除、非表示から書式設定、データ操作まで、多くの業務で役立つ技術です。特に複数行を一括で処理したい場合や、データ量が多いシートでの自動化には欠かせない存在です。
まずは簡単なコードから始めて、徐々に応用範囲を広げていきましょう。慣れてくると、手作業では時間がかかっていた処理を一瞬で終わらせることができるようになります。