dポイントプレゼントキャンペーン実施中!

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」ってどうやって使い分けるのでしょうか?

A 回答 (3件)

こんにちは。



通常は、シートもセルも Select でよいと思います。
選択して、扱えるようにするということだと思います。

#2さんも述べておりますが、Activate って、ひとつを選ぶことですね。でも、なぜか、Activate は、ほとんど使いません。

たぶん、Select は、選択した後に、その選択したものを、そのままオブジェクトとして確保して使えるので便利だから選ばれるのかもしれません。

Select → Selection
として使えます。
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/12/11 15:01

Selectは「選択」ですので、複数の選択もあり得ます。


Activateは「アクティブ」で一つだけです。

ご質問の内容では、一つのシートやセルを選択するので、ActivateでもSelectでも同じ結果になります。

以下が参考になるかと...
http://officetanaka.net/excel/vba/speed/s2.htm
    • good
    • 2
この回答へのお礼

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

お礼日時:2007/12/11 14:59

Excelが開いている場合は、ActivateとSelectの動作は一緒かもしれないけど、ある場合裏で(Excel見えない。

例えば、このExcelファイルでVBAを利用して、ほかのExcelをいじる時)処理する、Activateは使えないだと思います。

Activate:指定シート見えるよに、操作できるようにする。
Select:指定シート操作できるようにする。
    • good
    • 2
この回答へのお礼

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

お礼日時:2007/12/11 14:58

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!