アクセスログを眺めていて、
「Application.Dialogs(xlDialogSaveAs キャンセル」
という検索キーワードに気付きました。
Excel VBAのステートメント「Application.Dialogs(xlDialogSaveAs).Show」を実行すると、[名前を付けて保存]ダイアログボックスが表示されます。
この[名前を付けて保存]ダイアログで、[キャンセル]ボタンを押した場合の処理を、どう書けばいいのか探していらしたのでしょうか。
名前を付けて保存ダイアログで条件分岐するサンプルマクロ
以下のSubプロシージャが参考になるはずです。Dim done As Boolean
done = Application.Dialogs(xlDialogSaveAs).Show
If done = False Then
MsgBox "キャンセルされました。"
End If
End Sub
上記のSubプロシージャを実行して、[名前を付けて保存]ダイアログで[キャンセル]ボタンがクリックされると、
「キャンセルされました。」
とメッセージボックスが表示されます。
保存時にもメッセージ表示するなら、
If done = True Then
MsgBox "保存されました。"
Else
MsgBox "キャンセルされました。"
End If
です。
Dialog.ShowメソッドはTrue/Falseを返す
オブジェクトブラウザーの詳細ペインに「As Boolean」と表示されているとおり、
DialogオブジェクトのShowメソッドは、論理値(TrueまたはFalse)を返します。
よって上記のような条件分岐でOKです。
If文と論理値に慣れてきたら
If文と論理値に慣れないうちは上述の、
If done = False Then
や、
If done = True Then
といった「= False」「= True」を書くほうが理解しやすいはずです。
If文と論理値に慣れてきたら、
If Not done Then
MsgBox "キャンセルされました。"
End If
あるいは、
If done Then
MsgBox "保存されました。"
Else
MsgBox "キャンセルされました。"
End If
といった「= False」「= True」を書かない書き方も試してみましょう。
Home » エクセルマクロ・Excel VBAの使い方 » Dialogオブジェクト » 名前を付けて保存ダイアログ・Dialogs(xlDialogSaveAs).Showのキャンセル