エクセル操作において、1つのセルではなくデータ行ごと選択し作業したい時があります。
VBA的には、Rowsプロパティからの関連メソッドなどでの処理となります。
こんにちは じゅんぱ店長 (@junpa33) です。
Excel VBAを学習しているときに、よく出てくるコードで「Rows」が必ずありますよね。
文字表記の感じからは、行の複数形なので ” 行たち、行の集まり ” というイメージですが・・・。
今回の話は、「 Rows」というプロパティについてです。














コンテンツ
Rowsプロパティの範囲選択
Rowsの構文
- Rows(行番号)
複数行を指定するときは (行番号) を (”行番号:行番号”) と記述します。複数行選択するときは「 “(ダブルクォーテーション)」を忘れずに付けます。
エクセルのVBAコードで、一番馴染みのあるものに「Range」というのがあると思います。
Rangeはセルを選択(参照)します。またさらに、複数のセルを参照したり、シート全体も参照することが出来ます。
「Rows」もRange同様にセルの行を選択(参照)することが出来ます。
性格的にはRangeと同類だと考えてもらってOKです。
Rowsの特徴は、
- セルの横並びの行レベルでの範囲参照となります。
- 複数の行を同時に選択し参照することが出来ます。
- 複数の行でも離れた複数の行を選択参照することは出来ません。
- Rangeプロパティと同様に下位の豊富なプロパティやメソッドを利用することが出来ます。
また、行の選択参照と言っても
指定行の最初のセルから最終のセル『XFD列の16,384列目』までの全部を選択してしまう訳ではなく、
エクセルシート上のセルの範囲を指定した中での ” ある行にあるセル全部 ” という使い方をすることが出来ます。
もちろん、XDF列まで全部ということも出来ます。
範囲選択の具体的サンプル

基本形
3行目を選択参照します。
Sub Rows範囲指定1()
Rows(3).Select
End Sub

3行目から5行目を選択参照します。
Sub Rows範囲指定2()
Rows("3:5").Select
End Sub

セル範囲内での行指定参照
セル範囲(B3からE9)での3行目を選択。指定の範囲が分かりやすいようにセルに着色をしています。
注意すること
- 設定したセル範囲の中でRowsで行指定する場合は、Rowsで指定する行番号はセル範囲内での相対位置での番号となります。
絶対位置では、5行目が選択されています。
Sub Rows範囲指定3()
Range("B3:E9").Rows(3).Select
End Sub

絶対位置では5行目から7行目が選択されています。
Sub Rows範囲指定4()
Range("B3:E9").Rows("3:5").Select
End Sub

セル範囲内で離れた複数の行の指定参照
Rowsでは、離れた複数の行の同時指定参照は出来ません。
と、言っても、
離れた複数の行を指定したい時はあります。

こんなのはどうすればいいか?
「Rowsプロパティ+Unionメソッド」の合わせ技でOKです。
Sub Rows範囲指定5()
With Range("B3:E9")
Union(.Rows(3), .Rows("5:7")).Select
End With
End Sub

Rowsでよく使う関連のメソッドとプロパティ

Rowsに続くメソッドとしての代表的なものとしては次のようなものがあります。
メソッド | 内容 |
---|---|
AutoFit | セルの内容に合わせて行高さ列幅を自動調整をする。 |
Clear | 指定範囲の行内のデータをクリアします。 |
Copy | 指定範囲の行内のデータをコピーします。 |
Delete | 指定範囲の行を削除します。 |
Insert | 指定した行位置に新しく行を挿入します。 |
Select | 指定範囲の行を選択します。 |
Rowsに続くプロパティとしての代表的なものとしては次のようなものがあります。
プロパティ | 内容 |
---|---|
Address | セル範囲の参照範囲を取得します。 |
Count | 範囲内のオブジェクトの数を数えます。 |
Height | セル範囲の高さを示します。 |
Hidden | 非表示を調べる。(Trueは非表示,Falseは表示) |
NumberFormatLocal | 表示形式を示す文字列を設定します。 |
Offset | セル範囲から指定の移動量で範囲を移動させます。 |
Resize | セルの範囲を指定量だけ変更させます。 |
Value | セルの値を取得します。 |
頻度の高いメソッド
AutoFitメソッド
Sub Rowsメソッド1()
Rows(3).AutoFit
End Sub


Clearメソッド
Sub Rowsメソッド2()
Rows(3).Clear
End Sub


Copyメソッド
Sub Rowsメソッド3()
Rows(3).Copy Rows(5)
End Sub


Deleteメソッド
Sub Rowsメソッド4()
Rows(3).Delete
End Sub


Insertメソッド
Sub Rowsメソッド5()
Rows(3).Insert
End Sub


Selectメソッド
Sub Rowsメソッド6()
Rows(3).Select
End Sub


頻度の高いプロパティ
Addressプロパティ
Sub Rowsプロパティ1()
Dim a As String
a = Rows("3:5").Address(False, False)
MsgBox a
End Sub


Countプロパティ
Sub Rowsプロパティ2()
Dim b As Long
b = Rows("3:5").Count
MsgBox b
End Sub


Heightプロパティ
Sub Rowsプロパティ3()
Dim b As Long
b = Rows("3:5").Height
MsgBox b
End Sub


Hiddenプロパティ
Sub Rowsプロパティ4()
Rows(3).Hidden = True
End Sub


NumberFormatLocalプロパティ
Sub Rowsプロパティ5()
Rows(3).NumberFormatLocal = "yyyy/mm/dd"
End Sub


Offsetプロパティ
Sub Rowsプロパティ6()
Rows("3:5").Offset(3).Select
End Sub


Resizeプロパティ
Sub Rowsプロパティ7()
Rows(3).Resize(7).Select
End Sub


Valueプロパティ
Sub Rowsプロパティ7()
Rows(3).Value = 55
End Sub


Rowsプロパティのまとめ

エクセルVBAで行の操作をするときには欠かせないRowsプロパティです。
色々な操作の出来るプロパティを利用することが来ます。使い方も簡単ですのでどんどん使っていきましょう。
エクセルVBAの独習には動画学習という方法もあります。 目と耳両方を使って学習することでさらに勉強効率を上げることもできます。
エクセルVBAを独習するのに参考書は欠かせません。 参考書選びは自分に合った「相棒」にできるものを選んでいきたいです。
今回の記事はここまでです。 最後までご覧いただき有難うございました。



















