- ベストアンサー
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」ってどうやって使い分けるのでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 通常は、シートもセルも Select でよいと思います。 選択して、扱えるようにするということだと思います。 #2さんも述べておりますが、Activate って、ひとつを選ぶことですね。でも、なぜか、Activate は、ほとんど使いません。 たぶん、Select は、選択した後に、その選択したものを、そのままオブジェクトとして確保して使えるので便利だから選ばれるのかもしれません。 Select → Selection として使えます。
その他の回答 (2)
Selectは「選択」ですので、複数の選択もあり得ます。 Activateは「アクティブ」で一つだけです。 ご質問の内容では、一つのシートやセルを選択するので、ActivateでもSelectでも同じ結果になります。 以下が参考になるかと... http://officetanaka.net/excel/vba/speed/s2.htm
お礼
ありがとうございます。とても分かりやすい説明でした。<m(__)m> 一つと複数なんですね。 頭を切り替えることが出来そうです。
- wangkp
- ベストアンサー率25% (9/35)
Excelが開いている場合は、ActivateとSelectの動作は一緒かもしれないけど、ある場合裏で(Excel見えない。例えば、このExcelファイルでVBAを利用して、ほかのExcelをいじる時)処理する、Activateは使えないだと思います。 Activate:指定シート見えるよに、操作できるようにする。 Select:指定シート操作できるようにする。
お礼
ありがとうございます。とても分かりやすい説明でした。<m(__)m>
お礼
ありがとうございます。とても分かりやすい説明でした。<m(__)m> これからもいろいろ教えてくださいm(__)m