VBA Rowsプロパティの範囲選択と関連のメソッド

vbarowseyecatch

エクセル操作において、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
vbarowsp001

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

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

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

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

注意すること

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

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

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

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

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

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

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

と、言っても、

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

vbarowsp005

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

「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
vbarowsp006
vbarowsp007

Clearメソッド

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

Copyメソッド

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

Deleteメソッド

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

Insertメソッド

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

Selectメソッド

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

頻度の高いプロパティ

Addressプロパティ

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

Countプロパティ

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

Heightプロパティ

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

Hiddenプロパティ

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

NumberFormatLocalプロパティ

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

Offsetプロパティ

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

Resizeプロパティ

コード
Sub Rowsプロパティ7()
        Rows(3).Resize(7).Select
End Sub
vbarowsp010

Valueプロパティ

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

Rowsプロパティのまとめ

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

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

エクセルVBAの独習には動画学習という方法もあります。 目と耳両方を使って学習することでさらに勉強効率を上げることもできます。
Udemy1eyecatch エクセルVBA初級者がUdemyで動画学習する講座おすすめ5選と無料講座の上手な使い方。

エクセルVBAを独習するのに参考書は欠かせません。 参考書選びは自分に合った「相棒」にできるものを選んでいきたいです。
vbastudyeyecatch002 エクセルVBAを独学で習得する!ために大切な7つのポイントを解説します

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

vbaborder1eyecatchVBAでセルに罫線を設定する 位置・線種・太さ・色vbarowseyecatchVBA Rowsプロパティの範囲選択と関連のメソッドvbadeleteeyecatchVBA DeleteとClearの使い分け 削除とクリアの違いを最速理解vbacurrentregioneyecatchCurrentRegionは範囲取得プロパティ 連続データをまとめて掴むSpecialCellseyecatchSpecialCellsメソッドは特定のセルを選択する多機能ツールVBAFunctioneyecatchFunctionプロシージャーの働きと使い方 ユーザー定義関数もここ知れOK!vbacalleyecatchCallステートメントはプロシージャーの部品化に必須項目 エクセルVBA最速理解vbacharactereyecatchaCharactersプロパティで文字列中の一部の文字の書式設定や加工をするvbafontsyseyecatcha文字の書式の設定方法 Fontプロパティで装飾操作ができるVBAFormateyecatchFormat関数を書式設定のテッパン関数にする!実務での書式と重要5例vbaintfixeyecatch数値の整数部分を完全分離 Int・Fix・Abs・Sign関数で出来る使い方vbarndeyecatchRnd関数で乱数を取得。使えない戻り値を加工して利用度を上げるVBAコードvbaroundupdowneyecatchRoundUpとRoundDown関数の使い方。数値の切り方に注意が必要ですvbaroundeyecatchRound関数の毒針。VBAで数値を四捨五入する時の注意点vbamaxminaveeyecatchMax・Min・Averageワークシート関数で最大値・最小値・平均を求めるvbainsteeyecatchInstr関数・InstrRev関数は文字列を検索する。ファイルパス取得に威力vbareplaceeyecatchReplace関数は文字列を置換・削除する利用度の高い関数vbaselectcaseeyecatchSelect Case 条件分岐の使い方。ステートメントの基本はコレ。VBAValeyecatchVal関数の使い方はデータ型不一致の解決策。値を文字列型から数値型へVBAStringeyecatchString関数の使い方は文字を指定した数だけ並べることが出来る
<記事内容についての告知>VBAコードの記述記事においては、その記述には細心の注意をしたつもりですが、掲載のVBAコードは動作を保証するものではりません。 あくまでVBAの情報の一例として掲載しています。 掲載のVBAコードのご使用は、自己責任でご判断ください。 万一データ破損等の損害が発生しても当方では責任は負いません。