オブジェクトRange プロパティ Rows / Columns

Range

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該当セルを含むワークシート上の列全体
活用場面書式変更、データ抽出、非表示、削除など

タイトルとURLをコピーしました