「vba aa列取得」
という検索キーワードでアクセスがありました。
Excel VBAで、27列目であるAA列を表すRangeオブジェクトを取得するには、どのようなコードを書けばいいのかを調べていらした方による検索でしょうか。
ColumnsプロパティでAA列を取得する
Columnsプロパティを使うとシンプルなコードで済みます。
以下のSubプロシージャを実行すると、アクティブなワークシートのAA列が選択され、セル番地「AA:AA」が表示されます。
Dim rng As Range
Set rng = Columns("AA")
rng.Select
MsgBox rng.Address(False, False)
End Sub
Excel VBAのグローバルメンバーであるColumnsプロパティを使うと、アクティブなワークシートの列全体を表すRangeオブジェクトを取得できます。
上図は、オブジェクトブラウザーで非表示のメンバーを表示した状態です。
ちなみに、オブジェクトブラウザーの詳細ペインで確認できるとおり、Columnsプロパティは引数を指定できないプロパティですから、上記の、
Set rng = Columns("AA")
の部分は、実際には、
Set rng = Columns.[_Default]("AA")
のように、非表示のRange._Defaultプロパティの引数に、
文字列「AA」を指定したコードです。
CellsプロパティとEntireColumnプロパティでAA列を取得する
Cellsプロパティと、Range.EntireColumnsプロパティを組み合わせてもAA列を表すRangeオブジェクトを取得できます。
具体的には以下のようなプロシージャです。
Dim rng As Range
Set rng = Cells(1, "AA").EntireColumn
rng.Select
MsgBox rng.Address(False, False)
End Sub
実行結果は先ほどのColumnsプロパティを使ったプロシージャと同じです。
グローバルメンバーのCellsプロパティも、
実際には引数を指定できないプロパティですから、
Set rng = Cells(1, "AA").EntireColumn
の部分は、実際には、
Set rng = Cells.[_Default](1, "AA").EntireColumn
です。
Home » Excel VBA Rangeオブジェクト » 行・列を表すRange » Excel VBAでAA列を取得する