'処理前の選択範囲の取得 Application.Goto Selection ’取得したセル範囲を選択 Application.Goto
処理を実行する時にどうしてもセル選択を行う必要があり、しかも処理実行後にはもともと選択していたセル範囲に選択を戻しておきたい
そんな場面があります、そんな時に使用するのがこのコードです
コード解説
Application.Goto Selection Range("A100:A103").Select Range("B100:B103").Select Range("C100:C103").Select Application.Goto
記事コードを上記の様に変更しました
選択範囲を変更して処理実行前の選択範囲に戻します
Application.Goto Selection
Application.Gotoメソッドを使用して、最初にもともとのセル範囲を再指定します
ここは正直、引数にSelectionを指定する必要はありません
このSelectionはコードでいうRange(“A100:A103”)を指定しても構いません
コードの可読性の為にしているだけですね
SelectionでもRange指定であっても、このコードが実行された時点で、もともと選択されていたセル範囲がApplication.Gotoメソッドに保持されます
Range("A100:A103").Select Range("B100:B103").Select Range("C100:C103").Select
そのあとで、適当に処理を実行してセル選択を別の範囲にします
この時、選択範囲の変更は何度行っても問題ありません
Application.Goto
処理を実行して、またもともとの選択範囲に戻したい場合はApplication.Gotoメソッドの引数Referenceを省略して指定することで、もともとの選択範囲が指定されます
2つ目の引数ScrollをTrueに指定すれば、もともとの選択範囲を表示内の左上に表示させます
また、このメソッドは直前に保持した分のみしか保持できませんので
処理の中でApplication.Gotoメソッドを使用したい場合は利用できません
その場合はもともとの選択範囲をRange型のObject変数に代入して保持しておく方法で行います
あまりないとは思いますが・・・
関連の記事