プチIT化 PR

【VBA】Selectで選んだ選択範囲Selectionの解除方法はある?

記事内に商品プロモーションを含む場合があります。
当サイトは、アフィリエイト広告を利用しています。

こんばんは!今回の記事は、Excel VBAマクロのSelectメソッドを利用して選択範囲を指定したあと解除できるのか?という疑問を持ち、調べた記事になります。

とある日、Selectで範囲指定した際に選択状態で終わってしまい…

気になる人
気になる人
選択状態がそのままだとスッキリしないな…!

と思いました。Selectした後、その選択範囲Selectionを解除できるメソッドがあれば使いたい。ですが、unselectやselect.clearのような明示的な範囲解除方法は無いようでした。ですので、今回は以下の代替案を紹介します。

  • どこかのセルを指定して選択
  • 直前の選択したセルの位置を記憶して再選択

それでは、いってみましょう!

どこかのセルを指定して選択

シートの特定のセルを選択することで、Selectで範囲選択した範囲が解除され、とある1つのセルが選択される状態になるサンプルマクロです。今回はA1セルを選択します。

' シート左上のA1セルを選択する
ActiveSheet.Range("A1").Select

これで、マクロ実行後にA1のセルが選択されます。

悩める人
悩める人
そうじゃなくて、直前の状態に戻るには?

とSelectする前の状態に戻りたい場合もあるかもしれません。次章で紹介しますね。

直前の選択したセルの位置を記憶して再選択

もう一つの方法として、Selectで選択された選択範囲Selectionが選択される直前のセルを記憶して、そこに選択範囲を戻すサンプルマクロを紹介します。

' 直前で選択しているセルのアドレスを取得する
selectAddr = Selection.Address

' A1,B2,C3のセルを選択してみる ※ただのSelect処理再現
ActiveSheet.Range("A1,B2,C3").Select

' 直前で取得していたアドレスを再度選択する(処理前のセル選択位置に戻る)
Range(selectAddr).Select

これで、Select処理の直前、元に戻ったような状態になります。

さいごに

いかがだったでしょうか!同じような疑問を持たれた方の参考になれば幸いです。

「selectAddr = Selection.Address」の部分ですが、「=」が「-」となっておりました。ご連絡いただきまして、ありがとうございました。

それではまた。次の記事にて!