1. はじめに
Excel VBAにおける Range
オブジェクトは、セルやセル範囲を操作するための基本的かつ強力なオブジェクトです。その中でも Rows
および Columns
プロパティは、セル範囲内の「行」または「列」単位でアクセスや処理を行うために非常に便利です。
このプロパティを使うことで、セル範囲の中の特定の行や列に対して直接処理を実行することができます。ループ処理や範囲の分割、書式変更、条件付き処理など、さまざまな場面で利用されます。
2. 構文
RangeObject.Rows(行番号)
RangeObject.Columns(列番号)
RangeObject
は、対象となるセル範囲行番号
/列番号
は、範囲内の相対インデックス(1から始まる)
3. Rows プロパティの詳細
3.1 概要
Rows
プロパティは、指定した範囲内の行を表す Range
オブジェクトを返します。
3.2 例:行の特定行にアクセス
Range("A1:C5").Rows(2).Interior.Color = RGB(255, 200, 200)
このコードでは、「A1:C5」範囲内の 2行目(=A2:C2) の背景色をピンクに設定します。
3.3 範囲全体の行数を取得
Dim totalRows As Long
totalRows = Range("B2:E10").Rows.Count ' → 9
4. Columns プロパティの詳細
4.1 概要
Columns
プロパティは、指定した範囲内の列を表す Range
オブジェクトを返します。
4.2 例:特定列に書式を適用
Range("A1:D5").Columns(3).Font.Bold = True
このコードは、範囲「A1:D5」の3列目(列C)のフォントを太字にします。
4.3 範囲全体の列数を取得
Dim totalCols As Long
totalCols = Range("A1:H3").Columns.Count ' → 8
5. ループ処理での活用
5.1 行単位でループ処理
Dim rw As Range
For Each rw In Range("A1:C5").Rows
rw.Interior.Color = RGB(240, 240, 240)
Next
このコードでは、「A1:C5」の各行に対して薄いグレーの塗りつぶしを適用します。
5.2 列単位でループ処理
Dim col As Range
For Each col In Range("A1:D10").Columns
col.Font.Name = "Meiryo"
Next
すべての列に対してフォントをメイリオに変更します。
6. 特定セル範囲の行・列操作例
6.1 行を非表示にする
Range("B2:B10").EntireRow.Hidden = True
6.2 列を削除する
Range("C1").EntireColumn.Delete
7. Rows/ColumnsとEntireRow/EntireColumnの違い
機能 | 説明 |
---|---|
.Rows(n) | 指定範囲内のn番目の行のみ |
.EntireRow | 指定セルを含む シート全体の行 |
.Columns(n) | 指定範囲内のn番目の列 |
.EntireColumn | 指定セルを含む シート全体の列 |
例:
Range("B3").EntireRow.Font.Bold = True ' 3行目全体が太字になる
Range("B3:D5").Rows(1).Font.Italic = True ' 範囲の1行目(B3:D3)のみ斜体
8. 実用的な応用例
8.1 条件付き行書式
Dim r As Range
For Each r In Range("A2:A10").Rows
If r.Cells(1, 1).Value = "完了" Then
r.EntireRow.Interior.Color = RGB(200, 255, 200)
End If
Next
8.2 最終列の取得と処理
Dim lastCol As Long
lastCol = Cells(1, Columns.Count).End(xlToLeft).Column
Range(Cells(1, lastCol), Cells(10, lastCol)).Interior.Color = vbYellow
9. 組み合わせ例:特定行の特定列だけ操作
Range("A1:D10").Rows(3).Columns(2).Value = "指定セル"
これは、範囲「A1:D10」内の**3行目・2列目(=セルB3)**に値を設定します。
10. Tips:簡単な行・列の操作
操作内容 | コード例 |
---|---|
行を挿入 | Rows(5).Insert |
列を挿入 | Columns("C").Insert |
行を削除 | Rows(2).Delete |
列を非表示 | Columns("E").Hidden = True |
最終行の行番号取得 | Cells(Rows.Count, 1).End(xlUp).Row |
11. よくあるエラーと注意点
.Rows(n)
や.Columns(n)
は、1から始まる相対番号であることに注意(0ではない)- 範囲外の番号を指定するとエラーになります
.EntireRow
/.EntireColumn
との混同に注意
12. まとめ
プロパティ | 説明 |
---|---|
Rows(n) | セル範囲内のn行目を指定 |
Columns(n) | セル範囲内のn列目を指定 |
.Count | 範囲内の行数/列数を取得 |
.EntireRow | 該当セルを含むワークシート上の行全体 |
.EntireColumn | 該当セルを含むワークシート上の列全体 |
活用場面 | 書式変更、データ抽出、非表示、削除など |