Categories: excel

VBAのRowsの使い方を徹底解説!行操作を自在に操る基本と応用

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の違いに注意

RowsRange("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上の行に関する操作が非常に効率よく行えるようになります。基本的な選択や削除、非表示から書式設定、データ操作まで、多くの業務で役立つ技術です。特に複数行を一括で処理したい場合や、データ量が多いシートでの自動化には欠かせない存在です。

まずは簡単なコードから始めて、徐々に応用範囲を広げていきましょう。慣れてくると、手作業では時間がかかっていた処理を一瞬で終わらせることができるようになります。

upandup

Web制作の記事を中心に、暮らし、ビジネスに役立つ情報を発信します。 アフィリエイトにも参加しています。よろしくお願いいたします。