エクセル操作において、1つのセルではなくデータ行ごと選択し作業したい時があります。
VBA的には、Rowsプロパティからの関連メソッドなどでの処理となります。
こんにちは じゅんぱ店長 (@junpa33) です。
Excel VBAを学習しているときに、よく出てくるコードで「Rows」が必ずありますよね。
文字表記の感じからは、行の複数形なので ” 行たち、行の集まり ” というイメージですが・・・。
今回の話は、「 Rows」というプロパティについてです。
- セルの範囲選択
- Range VS Cells !VBAで使えるのはどっち
- セルの範囲選択と設定は14のツールで対応する
- Rowsプロパティの働きと関連のメソッド
- Columnsプロパティでセルの列を指定する
- EntireRowとRowプロパティの違い
- EntireColumnとColumnの使い方
- Offsetプロパティは指定範囲を移動させる
- Resizeプロパティでセル範囲をサイズ変更
- CurrentRegionは連続データをまとめて掴む
- UnionとRangeの一括選択の働きを比較
- SpecialCellsメソッドはセル検索し選択する
- UsedRangeプロパティの使い方のコツ
- Endプロパティで上下左右の最終セルを取得
- データ入力済セルの最終行番号を取得する
コンテンツ
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に続くメソッドとしての代表的なものとしては次のようなものがあります。
Rowsに続くプロパティとしての代表的なものとしては次のようなものがあります。
頻度の高いメソッド
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の独習でおすすめ参考書を7冊選ぶ。良書との出会いは大切です今回の記事はここまでです。 最後までご覧いただき有難うございました。
<記事内容についての告知>
VBAコードの記述記事においては、その記述には細心の注意をしたつもりですが、掲載のVBAコードは動作を保証するものではりません。 あくまでVBAの情報の一例として掲載しています。 掲載のVBAコードのご使用は、自己責任でご判断ください。 万一データ破損等の損害が発生しても当方では責任は負いません。
アンケートでポイ活しよう!!
アンケートに答えれば答えるほど ”使える” ポイントがたまります。