複数の行範囲を指定・取得するVBA(Visual Basic for Applications)のコードを複数ご紹介しました。
複数の列範囲を取得するオブジェクト式もご紹介しておきます。
列全体を取得するオブジェクト式の、複数列版です。
Rangeプロパティで列範囲を取得するサンプルマクロ
一番理解しやすいのは、やはりRangeプロパティを使ったオブジェクト式でしょう。Range("A:C").Select
End Sub
「Range("A:A")」というオブジェクト式で、A列全体を表すRangeオブジェクトを取得できました。
その複数列バージョンです。
Range・EntireRowプロパティで列範囲を取得するサンプルマクロ
RangeオブジェクトのEntireColumnプロパティを組み合わせる方法もあります。Range("A1", "C1").EntireColumn.Select
End Sub
Rangeプロパティに引数を2つ指定した「Range("A1", "C1")」というオブジェクト式で、A1:C1セルを表すRangeオブジェクトを取得できます。
その取得したRangeオブジェクトの、EntireColumnプロパティを利用したコードです。
Range・Cells・EntireRowプロパティで列範囲を取得するサンプルマクロ
Rangeプロパティの2つの引数に、Cellsプロパティを指定する方法も考えられます。Range(Cells(1, 1), Cells(1, 3)).EntireColumn.Select
End Sub
Cellsプロパティを使っているので、コード内で列番号を取得してから列範囲を指定したいという場合に有効な方法です。
Columnsプロパティで列範囲を取得するサンプルマクロ
列全体を表すRangeオブジェクトを取得するColumnsプロパティの引数に、文字列を指定することで列範囲を取得することもできます。Columns("A:C").Select
End Sub
「Rows("1:3")」というオブジェクト式で1行目から3行目を表すRangeオブジェクトを取得できました。その列バージョンです。
RangeプロパティとColumnsプロパティで列範囲を取得するサンプルマクロ
RangeプロパティとColumnsプロパティを組み合わせて、列範囲を表すRangeオブジェクトを取得することも可能ですRange(Columns(1), Columns(3)).Select
End Sub
Rangeプロパティの2つの引数に、列全体を表すRangeオブジェクトを返す、Columnssプロパティを使ったオブジェクト式を指定した、オブジェクト式です。
引数が数値ですから、コード内で列番号を取得してから列範囲を指定する場合に便利な記述です。
先にご紹介した、Range・Cells・EntireRowを組み合わせたオブジェクト式「Range(Cells(1, 1), Cells(1, 3)).EntireColumns」と考え方は似ていますが、引数を1つしか指定しないColumnsプロパティを使うほうが、スッキリしたコードになっておすすめです。
Home » Excel VBA Rangeオブジェクト » 行・列を表すRange » 列範囲を指定・取得する-Range・EntireColumn・Columns