ActiveCellのある行の指定列のセルを指定するコード。IntersectメソッドとRangeオブジェクトによる指定方法
'アクティブセルのある行のB~D列を選択
Intersect(ActiveCell.EntireRow, Range("B:D")).Select
'アクティブセルのある行のA列を選択
Range("A" & ActiveCell.Row).Select
ActiveCellや指定のセルの行にある列を指定するには、2通りの方法があります
1つ目はIntersectメソッドを使用して、行全体と指定列を重複させて取得する方法です
2つ目はRangeオブジェクトの引数に列文字列を指定して、指定セルの行数数値を取得して指定する方法です
使い分けとしては、複数列を指定する場合はIntersectメソッド
単一セルを指定する場合はRangeオブジェクトを使用する方法を使います
とはいえ、どちらでもどちらの指定方法は可能です
ただ、Rangeオブジェクトの方で複数列を指定する場合は少しコードが煩雑になるので、Intersectメソッドの方が簡潔に記載できます
コード解説
画像の様に、ActiveCellがどの列にあってもその行の指定列を指定することが出来ます
Intersect(ActiveCell.EntireRow, Range("B:D")).Select
こちらでは複数列の範囲指定を行う際に便利な方法です
この例ではB~D列のセルを範囲選択しています
Intersectメソッドを使用しているので、行全体と列全体を引数に指定することで重複する範囲を取得しています
表にデータを追加したときなどに、罫線などの書式設定を一括で行う際によく使用します
Range("A" & ActiveCell.Row).Select
こちらは単体のセルを指定するのに便利な方法です
アクティブ行の指定列の単体セルを簡単に指定できるので、値の入力を行う際に使用します
Range("B" & ActiveCell.Row & ":D" & ActiveCell.Row).Select
なお、Rangeオブジェクトで複数列範囲のセルを指定するには以上のようなコードになります
やはり、煩雑なコードになるのでIntersectメソッドの方が見やすいですね
この2つを駆使すれば、表にデータを追加して書式設定も整えていく処理が相対的に行えるので、使用頻度が結構高いコードです