Home » ExcelVBA Rangeオブジェクト » 行・列を表すRange » 列全体を取得・選択する-Columns・EntireColumn

列全体を取得・選択する-Columns・EntireColumn

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

「vba range 列全体」
「excel vba 基本 コーディング 列全体」
「excel2010 列全体を選択するマクロ」
といった検索で、このサイト・インストラクターのネタ帳へのアクセスが、時折あることに気づきました。

列全体を取得したり選択したりする、Excel VBA(Visual Basic for Applications)のコードを探している方による検索です。

[スポンサードリンク]

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

列全体を表すRangeオブジェクトを取得するオブジェクト式はいろいろ考えられますが、一番理解しやすいのは以下のようなコードでしょうか。


Sub 列全体を選択_Range()
 Range("A:A").Select
End Sub

Rangeプロパティに「A:A」のような列全体を表す文字列を指定すると、列全体を取得することができます。

上記のマクロでは「Range("A:A")」でA列全体を表すRangeオブジェクトを取得して、RangeオブジェクトのSelectメソッドで選択を行っています。

RangeプロパティとEntireColumnプロパティで列全体を取得するサンプルマクロ

以下のコードでもA列全体を選択できます。


Sub 列全体を選択_RangeとEntireColumn()
 Range("A1").EntireColumn.Select
End Sub

Rangeオブジェクトには、EntireColumnという列全体を表すRangeオブジェクトを返すプロパティが用意されています。列全体が選択されているのかどうかを判定するマクロで使っているプロパティです。

VBAで列全体を取得・選択する

Rangeプロパティの引数に文字列「A1」を指定することでA1セルを表すRangeオブジェクトを取得して、RangeオブジェクトのEntireCclumnプロパティで列全体を表すRangeオブジェクトを取得して、RangeオブジェクトのSelectメソッドで選択しているのが上記のマクロです。

CellsプロパティとEntireColumnプロパティで列全体を取得するサンプルマクロ

「cells 列全体 選択 vba」
「エクセル マクロ "cells" 列全体」
といった検索キーワードでも、アクセスがあります。

Cellsプロパティを使って、列全体を取得・選択するコードを探している方による検索キーワードです。

CellsプロパティとEntireColumnプロパティを組み合わせた、以下のようなコードでもA列全体を選択することができます。


Sub 列全体を選択_CellsとEntireColumn()
 Cells(1, 1).EntireColumn.Select
End Sub

EntireColumnプロパティは、Rangeオブジェクトのプロパティですから、「.EntireColumn」の前はRangeオブジェクトを取得するオブジェクト式やオブジェクト変数であれば、何でもいいわけです。

ここでは1行目・1列目のRangeオブジェクトをCellsプロパティで取得して、RangeオブジェクトのEntireColumnメソッドで列全体を表すRangeオブジェクトを取得して、Selectメソッドで選択を行っています。

ActiveCellプロパティとEntireColumnプロパティで列全体を取得するサンプルマクロ

アクティブなセルを表すRangeオブジェクトを返すActiveCellプロパティと、EntireColumnプロパティを組み合わせて以下のようなコードにすれば、アクティブなセルを含む、列全体を選択できます。


Sub 列全体を選択_ActiveCellとEntireColumn()
 ActiveCell.EntireColumn.Select
End Sub

ActiveCellプロパティでアクティブなセルを表すRangeオブジェクトを取得して、EntireColumnプロパティで列全体を表すRangeオブジェクトを取得して、Selectメソッドで選択を行っています。

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

「cells 列全体 選択 vba」
「エクセル マクロ "cells" 列全体」
といった検索をした方は、何列目なのかを数値で指定して、列全体を取得したり選択したりしたかったのではないかと推測しています。

であれば、CellsプロパティとEntireColumnプロパティを組み合わせるのもいいですが、以下のようなコードはいかがでしょう。


Sub 列全体を選択_Columns()
 Columns(1).Select
End Sub

Columnsプロパティの引数に、何列目かを表す数字を指定すると、指定された列全体を表すRangeオブジェクトを取得できるのです。

この動きはオブジェクトブラウザーからは読み取れないのが残念なところですが、Columnsプロパティで返されたRangeオブジェクトの_Defaultプロパティが、Columnsプロパティから呼ばれたときには列全体を表すRangeオブジェクトを返すように作られているのでしょう。

オブジェクトブラウザーで確認するとわかるとおりColumnsプロパティはグローバルなメンバーですから、

VBAで列全体を取得・選択する

アクティブなワークシートの列全体を取得するのであれば、上位のオブジェクト式を書かずに、いきなり「Columns」と書き始めることができます。

[スポンサードリンク]

Home » ExcelVBA Rangeオブジェクト » 行・列を表すRange » 列全体を取得・選択する-Columns・EntireColumn

TrackBack:10

TrackBack URL
Findで検索したRangeの列番号を取得する from インストラクターのネタ帳
Range.FindメソッドでみつかったRangeオブジェクトの列番号を取得する簡単なマクロをご紹介しています。
WorksheetFunction.Sumで列全体の合計を計算する from インストラクターのネタ帳
WorksheetFunctionオブジェクトのSumメソッドを使って、列全体の合計を計算するExcel(エクセル)VBAマクロをご紹介しています。
列範囲を指定・取得する-Range・EntireColumn・Columns from インストラクターのネタ帳
Excel(エクセル)の、列範囲を取得するVBA(Visual Basic for Applications)のオブジェクト式を複数ご紹介しています。
Unionメソッドの使い方 from インストラクターのネタ帳
コレクションとしてのRangeオブジェクトを返す、ApplicationオブジェクトのUnionメソッドを使ったExcel(エクセル)マクロをご紹介しています。
VBAで選択セルの列全体・行全体を選択する from インストラクターのネタ帳
Range.EntireColumnプロパティを使うと選択セルの列全体を、Range.EntireRowプロパティを使うと選択セルの行全体を選択できます。
Excel VBAで最大値・最小値を求める from インストラクターのネタ帳
Excel VBAでは、WorksheetFunction.Maxで最大値、Worksheet Function .Minで最小値を取得することができます。
印刷タイトルを設定するExcelマクロ from インストラクターのネタ帳
印刷時のタイトル行・タイトル列を設定するExcel(エクセル)マクロをご紹介しています。
RangeクラスのHiddenプロパティを設定できません。とは? from インストラクターのネタ帳
「RangeクラスのHiddenプロパティを設定できません。」エラーの発生する原因について解説しています。
Columns(1).NumberFormatLocal = "@"の意味 from インストラクターのネタ帳
Excel VBAの、Columns(1).NumberFormatLocal = "@"というオブジェクト式の意味を解説しています。
VBAでテーブルの列を非表示にしたい from インストラクターのネタ帳
Excel VBAでテーブル機能の列を非表示にするには「.Range.EntireColumn.Hidden = True」というオブジェクト式で列全体を...

Home » ExcelVBA Rangeオブジェクト » 行・列を表すRange » 列全体を取得・選択する-Columns・EntireColumn

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

検索


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

.