VBAのRowsプロパティ
こちらでは、エクセルVBAのRowsプロパティの解説になります。
プロパティとはオブジェクトの属性を指します。属性とは、そのオブジェクトの情報そのものです。プロパティはその値を取得したり、設定することもできます。プロパティを利用するにはオブジェクト名とプロパティ名の間に「.(ピリオド)」で結んで記述します。
オブジェクト名.プロパティ名
また、プロパティを設定する場合は以下のように「=(イコール)」を記述し設定値を代入します。
オブジェクト名.プロパティ名 = 設定値
目次
Rowsプロパティ
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 番目のようにセル範囲の領域ごとにループします
次の使用例は、シート 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
近田 伸矢, 植木 悠二, 上田 寛
IEのデータ収集&自動操作のプログラミング本はこの1冊だけ!IEの起動やポップアップウィンドウ、表示を制御する基本的なコードはもちろん、テキストボックスやラジオボタン、表、ハイパーリンクなどのHTML部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。