表の列範囲のみの取得

表範囲の指定列のみを選択状態にするコード

'表内のA列のセルだけを選択状態にする
Intersect(Range("A1").CurrentRegion, Range("A1").EntireColumn).Select

表の特定の列をリストとして取得したい場合に使用するコードです

入力用のコンボボックスや、リストボックスなどのリストデータであったり
複数列を参照して特定のデータと一致するものに対応するデータを取り出す、いわゆるVlookup関数のように使用することができます

この場合に便利なのが、CurrentRegionプロパティとIntersectメソッドを組み合わせて取得する方法です

コードの解説

Intersect(Range("A1").CurrentRegion, Range("A1").EntireColumn).Select

1行で指定出来るために1行ステートメントとしていますが、分かりにくければ分割して順番に選択してもいいと思います
ループで大量に使用しなければ処理速度には影響しません

まず、この1行で実行した時の動きの確認です

表の列を選択する
表内の列選択

A列の表範囲が選択されます

この時、表範囲なので最終行も同時に取得出来ています
これで、表全体ではなく特定の列のみを選択状態にする事が出来ます

次に、このコードを分割して解説していきます

Intersect(~~).Select

最初に出てくるのが、この部分です

これはIntersectメソッドです
引数内のセル範囲で重複した範囲を取得するメソッドです
これを使用することで、表範囲とA列の重複する範囲を取得することが出来ます

~(Range("A1").CurrentRegion, ~

次に出てくるのが、CurrentRegionプロパティです

このプロパティは、指定セルを含む表範囲を取得します
この時点で表全体が取得されます

~ Range("A1").EntireColumn)~

ここでは、EntireColumnプロパティを使用しています

このプロパティは、指定セルを含む列全体を取得します
これによりA列全体が取得された状態になります

なので、日本語にすると
A1セルを含む、表全体とA列全体の重複した範囲を選択する
と、いう形になります

なぜか日本語にしても分かりにくいのが不思議ですが、まあそうゆうことなんです

引数の2つ目のEntireColumnプロパティの指定セルアドレスをB1にすれば、B列を取得することが出来ます

1つ目はB1にしても、しなくてもどちらでも構いません