目次
経緯
VBAを使って、キーボード操作の**「Shift + →」**(右方向へ範囲選択拡張)と同じ動作を
プログラムで再現できないかと考え、今回その方法について学びました。
解決方法:RangeとOffsetを組み合わせる
VBAでは、**Range(Selection, Selection.Offset(行, 列))
**という書き方を使うことで、
**「現在選択中のセルから、右方向に範囲を拡張する」**ことができます。
コード例(A1セルからJ1セルまで選択する場合)
Cells(1, 1).Select
Range(Selection, Selection.Offset(0, 9)).Select
コード解説
- 1行目:セル「A1」を選択します。
- 2行目:現在選択中のセル(A1)から**右方向に9列(A~Jまで)**範囲を拡張して選択します。
※注意点として、列数を指定する際は、
「最初のセルを含めた範囲」になるので、
「J列まで選びたい場合」はOffsetで9列指定します(A列から数えて9列右)。
ポイントまとめ
- **Range(Selection, Selection.Offset(行数, 列数))**を使うと範囲選択を広げられます。
- 今回の例では、**「Shift + →を9回押したのと同じ動き」**を再現しています。
- 列数(Offsetの第2引数)を変更すれば、必要なだけ範囲を拡張できます。
まとめ
VBAで「Shift + →」と同じ動作を再現したい場合は、
Range(Selection, Selection.Offset(0, 必要な列数)).Select
を使うことで、簡単に範囲選択を広げることができます。
これを使えば、セル操作の自動化や、範囲を指定して処理を行う際にとても便利になります。
ここまでお読みいただき、誠にありがとうございました。