Rows プロパティ            

Application オブジェクトでは、アクティブ シートのすべての行を表す Range オブジェクトを返します。作業中の文書がワークシート以外の場合は、Rows プロパティは失敗します。値の取得のみ可能です。

Range オブジェクトでは、指定した範囲の行を表す Range オブジェクトを返します。値の取得のみ可能です。

Worksheet オブジェクトでは、指定したワークシートのすべての行を表す Range オブジェクトを返します。値の取得のみ可能です。

コレクションのメンバを取得する方法については、「コレクションからオブジェクトを取得する」を参照してください。

解説

このプロパティでは、オブジェクト修飾子を指定せずに、ActiveSheet.Rows と指定しても同じ動作を表します。

複数のセル範囲を含む Range オブジェクトに対して Rows プロパティを使用すると、選択範囲の中で最初に選択した領域の行だけが返されます。たとえば、Range オブジェクトに A1:B2 および C3:D4 の 2 つのセル範囲が含まれているとき、Selection.Rows.Count を実行すると、4 ではなく 2 が返されます。複数のセル範囲を選択している可能性があるときは、このプロパティを使用する前に Areas.Count を実行し、範囲が複数選択であるかどうかを確認します。複数選択の場合は、使用例の 3 番目のようにセル範囲の領域ごとにループします。

Rows プロパティの使用例

この使用例は、シート 1 の行 3 を削除します。

Worksheets("Sheet1").Rows(3).Delete

この使用例は、目的の行のセル 1 の値が前の行のセル 1 の値と同じ場合に、ワークシート 1 のアクティブ セル領域内の行を削除します。

For Each rw In Worksheets(1).Cells(1, 1).CurrentRegion.Rows
    this = rw.Cells(1, 1).Value
    If this = last Then rw.Delete
    last = this
Next

この使用例、シート 1 の行数を表示します。複数の領域が選択されている場合は、領域ごとにループします。

Worksheets("Sheet1").Activate
areaCount = Selection.Areas.Count
If areaCount <= 1 Then
    MsgBox "選択されているのは" & _
        Selection.Rows.Count & "行です。"
Else
    i = 1
    For Each a In Selection.Areas
        MsgBox "領域 " & i & " で選択されているのは " & _
            a.Rows.Count & " 行です。"
        i = i + 1
    Next a
End If