Home » ExcelVBA Rangeオブジェクト » 行・列を表すRange » 行範囲を指定・取得する-Range・EntireRow・Rows

行範囲を指定・取得する-Range・EntireRow・Rows

対象:Excel2007, Excel2010, Excel2013, Windows版Excel2016

「excel マクロ 行範囲指定」
「エクセル マクロ 行範囲 取得 マクロ」
といった検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。

Excelマクロ・VBA(Visual Basic for Applications)で、行範囲の指定を行うには、行範囲を表すRangeオブジェクトを取得するには、どのようなオブジェクト式を書けばいいのかを探している方による検索です。

行全体を表すRangeオブジェクトを取得するオブジェクト式の、複数行版を探していた検索キーワードです。

[スポンサードリンク]

Rangeプロパティで行範囲を取得するサンプルマクロ

もっとも理解しやすいのは、お馴染みのRangeプロパティを使うオブジェクト式でしょう。


Sub 行範囲を選択する_Range()
 Range("1:3").Select
End Sub

「Range("1:1")」というオブジェクト式で、1行目全体を表すRangeオブジェクトを取得できます。その複数行版です。

Range・EntireRowプロパティで行範囲を取得するサンプルマクロ

行全体を表すRangeオブジェクトを返す、Range.EntireRowプロパティを組み合わせた、以下のようなオブジェクト式でも行範囲を取得できます。


Sub 行範囲を選択する_RangeとEntireRow()
 Range("A1", "A3").EntireRow.Select
End Sub

Rangeプロパティの引数を2つとも指定した場合、そのセル範囲を表すRangeオブジェクトを取得できます。上記マクロの場合は「Range("A1", "A3")」というオブジェクト式で、A1:A3セルを表すRangeオブジェクトが取得できるわけです。

オブジェクト式「Range("A1", "A3")」で取得したA1:A3セルを表すRangeオブジェクトの、行全体を表すEntireRowプロパティを使えば、行範囲を取得できます。

Range・Cells・EntireRowプロパティで行範囲を取得するサンプルマクロ

「vba cellプロパティで行範囲設定」
という検索キーワードでも、このサイト・インストラクターのネタ帳へのアクセスがあります。

「cellプロパティ」と表現されているのが、Excel VBAでよく使われるCellsプロパティの、単なるタイプミスなのか判断に迷う部分ですが、Cellsプロパティを使って行範囲を取得する方法を探す方は、いらっしゃるはずです。

先の「Range("A1", "A3").EntireRow」というオブジェクト式の、Rangeプロパティの引数を、Cellsプロパティを使ったオブジェクト式にすれば、Cellsプロパティで行範囲を取得できます。


Sub 行範囲を選択する_RangeとCellsとEntireRow()
 Range(Cells(1, "A"), Cells(3, "A")).EntireRow.Select
End Sub

先の「Range("A1", "A3").EntireRow」というオブジェクト式は、Rangeプロパティの引数に「A1」「A3」という文字列を指定していました。

この2つの引数に、文字列ではなくRangeオブジェクトを返す「(Cells(1, "A")」と「Cells(3, "A")」を指定しているのが、「Range(Cells(1, "A"), Cells(3, "A")).EntireRow」というオブジェクト式です。

Rowsプロパティで行範囲を取得するサンプルマクロ

「Rows(1)」というオブジェクト式で、1行目全体を表すRangeオブジェクトを取得できます。このRowsプロパティを使っても行範囲を取得できます。


Sub 行範囲を選択する_Rows()
 Rows("1:3").Select
End Sub

Rowsプロパティの引数には、上記マクロのように文字列も指定することができるのです。

RangeプロパティとRowsプロパティで行範囲を取得するサンプルマクロ

Rowsプロパティと、Rangeプロパティを組み合わせて行範囲を指定することも可能です。


Sub 行範囲を選択する_RangeとRows()
 Range(Rows(1), Rows(3)).Select
End Sub

Rangeプロパティの2つの引数に、行全体を表すRangeオブジェクトを返す、Rowsプロパティを使ったオブジェクト式を指定した、オブジェクト式です。

先にご紹介した、Range・Cells・EntireRowを組み合わせたオブジェクト式「Range(Cells(1, "A"), Cells(3, "A")).EntireRow」が理解できるのなら、こちらのほうがスッキリして良さそうに感じます。

Findメソッドで行範囲を指定するには

「エクセル vba 検索 find 行範囲」
といった検索キーワードでも、このサイト・インストラクターのネタ帳へのアクセスがあります。

Range.Findメソッドで、検索する行範囲を指定する方法を探している方による検索です。

検索範囲の指定は「.Find」の前の、Rangeオブジェクトを取得するオブジェクト式部分で行うわけですから、この記事でご紹介してきた、
  Range("1:3")
  Range(Rows(1), Rows(3))
などのオブジェクト式を「.Find」の前に書いてあげれば、行範囲を指定して検索することができます。

[スポンサードリンク]

Home » ExcelVBA Rangeオブジェクト » 行・列を表すRange » 行範囲を指定・取得する-Range・EntireRow・Rows

TrackBack:2

TrackBack URL
列範囲を指定・取得する-Range・EntireColumn・Columns from インストラクターのネタ帳
Excel(エクセル)の、列範囲を取得するVBA(Visual Basic for Applications)のオブジェクト式を複数ご紹介しています。
VBAで行挿入を行う from インストラクターのネタ帳
対象:Excel2007, Excel2010, Excel2013, Win...

Home » ExcelVBA Rangeオブジェクト » 行・列を表すRange » 行範囲を指定・取得する-Range・EntireRow・Rows

「行・列を表すRange」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.