目次
単一の列全体を取得する
Rangeプロパティで1列全体を取得する
Range("A:A")
次のコードはA列全体を赤色で塗りつぶします。
Sub sample()
Dim entire As Range
Set entire = ActiveSheet.Range("A:A")
entire.Interior.Color = RGB(255, 0, 0)
End Sub
行番号や列番号を取得する
RangeオブジェクトのRowプロパティは、指定したRangeオブジェクトの最小の行番号、Columnプロパティは最小列番号をLong型の数値で返します。
Rangeオブジェクト.Row
Rangeオブジェクト.Column
それぞれ最小の行番号、列番号を返すので、次のコードはそれぞれ2と1を返します。つまり、セル範囲の左上セルの行番号、列番号を返します。
Range("A2:D5").Row ' 2
Range("A2:D5").Column ' 1
セル範囲の右下セルの行番号と列番号を取得する
セル範囲の右下のセルは、セル範囲のセルの数をCellsプロパティに指定することで取得できます。してがって次のコードはセル範囲の右下セル(D5)の行番号と列番号を表示します。
Sub sample()
Dim aRange As Range, lastCell As Range
Set aRange = Range("A2:D5")
Set lastCell = aRange.Cells(aRange.Count)
MsgBox lastCell.Row ' 5
MsgBox lastCell.Column ' 4
End Sub
行または列を参照するには ― Rowsプロパティ
すべての行を取得する
WorksheetオブジェクトとRangeオブジェクのRowsプロパティは、指定したオブジェクトすべての行を表すRangeオブジェクトを返します。
Worksheetオブジェクト.Rows
Rangeオブジェクト.Rows
オブジェクトを省略するのは、ActiveSheet.Rowsの使用と同じです。
次の使用例はワークシート1のすべての行を削除します。この行のセル1の値は、前の行のセル1の値と同じです。
Sub sample()
For Each rw In Worksheets(1).Rows
this = rw.Cells(1, 1).Value
If this = last Then rw.Delete
last = this
Next
End Sub
特定の行を取得する
Rowsプロパティに括弧で囲ってインデックス番号を指定すると、特定の行を取得することが出来ます。
はじめに1つの行を取得する方法から始めましょう。
WorkSheets("Sheet1").Rows(3).Delete
WorkSheetsオブジェクトを指定した場合は、インデックス番号は行番号と一致します。
連続した行を取得する場合は、A1表記のように文字列でインデックスの範囲をコロン(:)で区切って指定します。