• ベストアンサー

EXCELのVBAでのSelectとActivateの違い

VBAの初心者です。 ExcelのVBAでメッセージを表示してシートを切換えるというのを作りたいのです。 見真似で作成したのが↓です。 Dim rtn As String rtn = MsgBox("シートを切換えますか", vbYesNo, "シートの切替") If rtn = vbYes Then Worksheets("送付先一覧").Activate Range("a1").Select Else Exit Sub End If 動作確認はできましたが、上記の「Activate」を「Select」に変更しても特に動作異常がありません。 そこで、疑問ですが、「Activate」と「Select」ってどうやって使い分けるのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんにちは。 通常は、シートもセルも Select でよいと思います。 選択して、扱えるようにするということだと思います。 #2さんも述べておりますが、Activate って、ひとつを選ぶことですね。でも、なぜか、Activate は、ほとんど使いません。 たぶん、Select は、選択した後に、その選択したものを、そのままオブジェクトとして確保して使えるので便利だから選ばれるのかもしれません。 Select → Selection として使えます。

kuwong
質問者

お礼

ありがとうございます。とても分かりやすい説明でした。<m(__)m> これからもいろいろ教えてくださいm(__)m

その他の回答 (2)

noname#79209
noname#79209
回答No.2

Selectは「選択」ですので、複数の選択もあり得ます。 Activateは「アクティブ」で一つだけです。 ご質問の内容では、一つのシートやセルを選択するので、ActivateでもSelectでも同じ結果になります。 以下が参考になるかと... http://officetanaka.net/excel/vba/speed/s2.htm

kuwong
質問者

お礼

ありがとうございます。とても分かりやすい説明でした。<m(__)m> 一つと複数なんですね。 頭を切り替えることが出来そうです。

  • wangkp
  • ベストアンサー率25% (9/35)
回答No.1

Excelが開いている場合は、ActivateとSelectの動作は一緒かもしれないけど、ある場合裏で(Excel見えない。例えば、このExcelファイルでVBAを利用して、ほかのExcelをいじる時)処理する、Activateは使えないだと思います。 Activate:指定シート見えるよに、操作できるようにする。 Select:指定シート操作できるようにする。

kuwong
質問者

お礼

ありがとうございます。とても分かりやすい説明でした。<m(__)m>

関連するQ&A