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

列範囲を指定・取得する-Range・EntireColumn・Columns

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

複数の行範囲を指定・取得するVBA(Visual Basic for Applications)のコードを複数ご紹介しました。

複数の列範囲を取得するオブジェクト式もご紹介しておきます。

列全体を取得するオブジェクト式の、複数列版です。

[スポンサードリンク]

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

一番理解しやすいのは、やはりRangeプロパティを使ったオブジェクト式でしょう。
Sub 列範囲を選択_Range()
 Range("A:C").Select
End Sub

「Range("A:A")」というオブジェクト式で、A列全体を表すRangeオブジェクトを取得できました。

その複数列バージョンです。

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

RangeオブジェクトのEntireColumnプロパティを組み合わせる方法もあります。
Sub 列範囲を選択_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プロパティを指定する方法も考えられます。
Sub 列範囲を選択_RangeとCellsとEntireColumn()
 Range(Cells(1, 1), Cells(1, 3)).EntireColumn.Select
End Sub

Cellsプロパティを使っているので、コード内で列番号を取得してから列範囲を指定したいという場合に有効な方法です。

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

列全体を表すRangeオブジェクトを取得するColumnsプロパティの引数に、文字列を指定することで列範囲を取得することもできます。
Sub 列範囲を選択_Columns()
 Columns("A:C").Select
End Sub

「Rows("1:3")」というオブジェクト式で1行目から3行目を表すRangeオブジェクトを取得できました。その列バージョンです。

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

RangeプロパティとColumnsプロパティを組み合わせて、列範囲を表すRangeオブジェクトを取得することも可能です
Sub 列範囲を選択_RangeとColumns()
 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 » ExcelVBA Rangeオブジェクト » 行・列を表すRange » 列範囲を指定・取得する-Range・EntireColumn・Columns

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

検索


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

.