1. はじめに
Excel VBAにおけるRows
とColumns
は、ワークシートや範囲内の「行」と「列」を操作するための重要なオブジェクトです。
これらを利用することで、特定の行や列の操作、挿入・削除、書式設定、値の取得・設定など、多彩なセル範囲操作が可能になります。
2. Rowsオブジェクトとは?
- Excelのワークシートまたは特定の範囲内の「行」を表すオブジェクト。
- 単一行や複数行、または全行を指定可能。
- 例えば
Rows(1)
は1行目全体を表し、Rows("3:5")
は3行目から5行目までの複数行を表す。
- 行番号は1から始まります。
基本例
Sub Rows基本例()
' 1行目全体の背景色を黄色に
Rows(1).Interior.Color = RGB(255, 255, 0)
' 3行目から5行目のフォントを太字に
Rows("3:5").Font.Bold = True
End Sub
3. Columnsオブジェクトとは?
- Excelのワークシートまたは範囲内の「列」を表すオブジェクト。
- 単一列や複数列、全列を指定可能。
- 例えば
Columns(1)
はA列全体を表し、Columns("B:D")
はB列からD列までを表す。
- 列番号は1から始まります。
基本例
Sub Columns基本例()
' A列全体の幅を15に設定
Columns(1).ColumnWidth = 15
' B列からD列までを非表示に
Columns("B:D").Hidden = True
End Sub
4. RowsとColumnsの使い分けと共通点
項目 | Rows | Columns |
---|
何を表すか | 行(横方向のセルの集まり) | 列(縦方向のセルの集まり) |
指定方法 | 行番号(例:Rows(3) ) | 列番号または列名(例:Columns(2) 、Columns("B") ) |
複数範囲指定 | 文字列形式で行範囲指定可能(例:Rows("3:5") ) | 文字列形式で列範囲指定可能(例:Columns("B:D") ) |
操作例 | 書式変更、挿入、削除、選択等 | 同上 |
5. Rows、Columnsの詳細操作例
5-1. 行・列の挿入
Sub 行列挿入()
' 2行目に新しい行を挿入(既存の2行目以降が下にずれる)
Rows(2).Insert Shift:=xlDown
' B列に新しい列を挿入(既存のB列以降が右にずれる)
Columns("B").Insert Shift:=xlToRight
End Sub
5-2. 行・列の削除
Sub 行列削除()
' 5行目を削除
Rows(5).Delete Shift:=xlUp
' D列を削除
Columns("D").Delete Shift:=xlToLeft
End Sub
6. 範囲の指定と併用
6-1. Rangeと組み合わせた指定
Sub 範囲内の行・列操作()
Dim rng As Range
Set rng = Worksheets("Sheet1").Range("B2:D10")
' 範囲内の3行目(B4:D4)を赤くする
rng.Rows(3).Interior.Color = RGB(255, 0, 0)
' 範囲内の2列目(C2:C10)の幅を20にする
rng.Columns(2).ColumnWidth = 20
End Sub
Rows
やColumns
はワークシート全体だけでなく、指定した範囲オブジェクトに対しても使えます。
- 範囲内の相対的な行・列を指定します。
7. ループ処理での活用
7-1. 全行に対してループ処理
Sub 全行ループ()
Dim i As Long
For i = 1 To 10
Rows(i).Interior.Color = RGB(240, 240, 240)
Next i
End Sub
7-2. 複数列に対してループ処理
Sub 複数列ループ()
Dim i As Long
For i = 1 To 5
Columns(i).ColumnWidth = 12
Next i
End Sub
8. 表示・非表示の操作
- 行や列を非表示にするには
Hidden
プロパティを使用。
Sub 行列非表示()
Rows("4:6").Hidden = True ' 4~6行目を非表示
Columns("E:G").Hidden = True ' E~G列を非表示
End Sub
Rows("4:6").Hidden = False
Columns("E:G").Hidden = False
9. 行・列の選択やコピー
9-1. 行・列の選択
Sub 行列選択()
Rows(3).Select ' 3行目選択
Columns("C").Select ' C列選択
End Sub
9-2. コピー・貼り付け
Sub 行列コピー()
Rows(2).Copy Destination:=Rows(5)
Columns("B").Copy Destination:=Columns("D")
End Sub
10. サイズ・書式の設定
10-1. 行の高さ調整
Sub 行高さ調整()
Rows(2).RowHeight = 25
Rows("4:6").RowHeight = 30
End Sub
10-2. 列幅調整
Sub 列幅調整()
Columns(1).ColumnWidth = 15
Columns("C:E").ColumnWidth = 20
End Sub
11. RowsとColumnsの応用的な使い方
11-1. 複数行・複数列を範囲で操作
Sub 複数行列操作()
Rows("2:4").Interior.Color = RGB(200, 200, 255)
Columns("B:D").Font.Bold = True
End Sub
11-2. UsedRangeと組み合わせる
Sub UsedRange行列操作()
Dim ws As Worksheet
Set ws = Worksheets("Sheet1")
' 使用中の範囲の行全体の高さを変更
ws.UsedRange.Rows.RowHeight = 18
' 使用中の範囲の列全体の幅を変更
ws.UsedRange.Columns.ColumnWidth = 12
End Sub
12. 注意点とポイント
Rows
やColumns
で指定する行・列番号は1から開始。
- 範囲指定は文字列(”2:4″, “B:D”)か数値(2, 4)で可能。
- 範囲外の行や列を指定するとエラーになることがあるので注意。
Rows
やColumns
はワークシート全体だけでなく、範囲オブジェクトに対しても使用できるため、範囲内の相対行列操作が可能。
- 挿入・削除をすると行・列番号が変わるので連続処理時は気をつける。
13. まとめ
オブジェクト | 役割 | 主なプロパティ・メソッド | 主な使い方例 |
---|
Rows | 行全体または行範囲の操作 | .Insert , .Delete , .Hidden , .RowHeight , .Interior.Color など | 行の挿入・削除、色付け、非表示 |
Columns | 列全体または列範囲の操作 | .Insert , .Delete , .Hidden , .ColumnWidth , .Font.Bold など | 列の挿入・削除、幅調整、書式設定 |