Rowsプロパティの働きと関連のメソッド

vbarowseyecatch

エクセル操作において、1つのセルではなくデータ行ごと選択し作業したい時があります。
VBA的には、Rowsプロパティからの関連メソッドなどでの処理となります。

こんにちは じゅんぱ店長 (@junpa33) です。

Excel VBAを学習しているときに、よく出てくるコードで「Rows」が必ずありますよね。

文字表記の感じからは、行の複数形なので ” 行たち、行の集まり ” というイメージですが・・・。

今回の話は、「 Rows」というプロパティについてです。

Rowsプロパティの範囲選択

vbarowsp026
Rowsの構文
  • Rows(行番号)

複数行を指定するときは (行番号) を (”行番号:行番号”) と記述します。複数行選択するときは「 “(ダブルクォーテーション)」を忘れずに付けます。

エクセルのVBAコードで、一番馴染みのあるものに「Range」というのがあると思います。

Rangeはセルを選択(参照)します。またさらに、複数のセルを参照したり、シート全体も参照することが出来ます。

「Rows」もRange同様にセルの行を選択(参照)することが出来ます。

性格的にはRangeと同類だと考えてもらってOKです。

Rowsの特徴は、

  • セルの横並びの行レベルでの範囲参照となります。
  • 複数の行を同時に選択し参照することが出来ます。
  • 複数の行でも離れた複数の行を選択参照することは出来ません。
  • Rangeプロパティと同様に下位の豊富なプロパティやメソッドを利用することが出来ます。

また、行の選択参照と言っても

指定行の最初のセルから最終のセル『XFD列の16,384列目』までの全部を選択してしまう訳ではなく、

エクセルシート上のセルの範囲を指定した中での ” ある行にあるセル全部 ” という使い方をすることが出来ます。

もちろん、XDF列まで全部ということも出来ます。

範囲選択の具体的サンプル

基本形

3行目を選択参照します。

VBA
Sub Rows範囲指定1()
    Rows(3).Select
End Sub
vbarowsp001

3行目から5行目を選択参照します。

VBA
Sub Rows範囲指定2()
    Rows("3:5").Select
End Sub
vbarowsp002

セル範囲内での行指定参照

セル範囲(B3からE9)での3行目を選択。指定の範囲が分かりやすいようにセルに着色をしています。

注意すること
  • 設定したセル範囲の中でRowsで行指定する場合は、Rowsで指定する行番号はセル範囲内での相対位置での番号となります。

絶対位置では、5行目が選択されています。

VBA
Sub Rows範囲指定3()
        Range("B3:E9").Rows(3).Select
End Sub
vbarowsp003

絶対位置では5行目から7行目が選択されています。

VBA
Sub Rows範囲指定4()
        Range("B3:E9").Rows("3:5").Select
End Sub
vbarowsp004

セル範囲内で離れた複数の行の指定参照

Rowsでは、離れた複数の行の同時指定参照は出来ません。

と、言っても、

離れた複数の行を指定したい時はあります。

vbarowsp005

こんなのはどうすればいいか?

「Rowsプロパティ+Unionメソッド」の合わせ技でOKです。

VBA
Sub Rows範囲指定5()
    With Range("B3:E9")
            Union(.Rows(3), .Rows("5:7")).Select
    End With
End Sub
vbaunioneyecatch UnionとRangeの一括選択の働きを比較

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

Rowsに続くメソッドとしての代表的なものとしては次のようなものがあります。

メソッド内容
AutoFitセルの内容に合わせて行高さ列幅を自動調整をする。
Clear指定範囲の行内のデータをクリアします。
Copy指定範囲の行内のデータをコピーします。
Delete指定範囲の行を削除します。
Insert指定した行位置に新しく行を挿入します。
Select指定範囲の行を選択します。

Rowsに続くプロパティとしての代表的なものとしては次のようなものがあります。

プロパティ内容
Addressセル範囲の参照範囲を取得します。
Count範囲内のオブジェクトの数を数えます。
Heightセル範囲の高さを示します。
Hidden非表示を調べる。(Trueは非表示,Falseは表示)
NumberFormatLocal表示形式を示す文字列を設定します。
Offsetセル範囲から指定の移動量で範囲を移動させます。
Resizeセルの範囲を指定量だけ変更させます。
Valueセルの値を取得します。

頻度の高いメソッド

AutoFitメソッド

VBA
Sub Rowsメソッド1()
    Rows(3).AutoFit
End Sub
vbarowsp006
vbarowsp007

Clearメソッド

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

Copyメソッド

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

Deleteメソッド

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

Insertメソッド

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

Selectメソッド

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

頻度の高いプロパティ

Addressプロパティ

VBA
Sub Rowsプロパティ1()
    Dim a As String
        a = Rows("3:5").Address(False, False)
        MsgBox a
End Sub
vbarowsp008
vbarowsp014

Countプロパティ

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

Heightプロパティ

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

Hiddenプロパティ

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

NumberFormatLocalプロパティ

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

Offsetプロパティ

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

Resizeプロパティ

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

Valueプロパティ

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

Rowsプロパティのまとめ

vbarowsp023

エクセルVBAで行の操作をするときには欠かせないRowsプロパティです。

色々な操作の出来るプロパティを利用することが来ます。使い方も簡単ですのでどんどん使っていきましょう。

エクセルVBAを独習するのに参考書は欠かせません。 参考書選びは自分に合った「相棒」にできるものを選んでいきたいです。

vbastudyeyecatch2 エクセルVBAの独習でおすすめ参考書を7冊選ぶ。良書との出会いは大切です

今回の記事はここまでです。   最後までご覧いただき有難うございました。

エクセルVBA最速理解で必要な知識を集めよう!

エクセルVBA業務ツールで日常の業務改善を行いましょう。

VBAコードの記述記事においては、その記述には細心の注意をしたつもりですが、掲載のVBAコードは動作を保証するものではりません。 あくまでVBAの情報の一例として掲載しています。 掲載のVBAコードのご使用は、自己責任でご判断ください。 万一データ破損等の損害が発生しても当方では責任は負いません。

アンケートでポイ活しよう!!

アンケートに答えれば答えるほど ”使える” ポイントがたまります。

NTTコム サーチ

af_banner01

Dstyle web

dstyleweb_logo
dstyle_320x50-min