2003でvba作成中の初心者です。
保存先とファイル名を指定して保存ができるというbvaを作りました。
--------------------------------------
Sub BookCancel()
MsgBox "ファイルを保存します", vbInformation
ファイル名 = "トレーニング"
Application.EnableEvents = False
Application.Dialogs(xlDialogSaveAs).Show arg1:=ファイル名
Application.EnableEvents = True
MsgBox "保存されました。 "
-------------------------------------------
上記を実行した際、「保存」か「キャンセル」の選択ができるフォームが表示されますが、
「キャンセル」した場合の処理を指定するにはどのように入力すればいいのでしょうか?
キャンセルを押すとやりたい処理は、
1.メッセージが表示される「はじめからやりなおしてください」
2.保存をせずにブックを閉じる (「保存しますか?」などのメッセージも何も表示されることなく、
強制終了)
です。
保存の場合は保存し、「保存されました」と通知されるという希望通りになってるので大丈夫です。
お分かりになる方、どうぞ助けてください。
よろしくお願いします。
No.3ベストアンサー
- 回答日時:
なんとなく、考えてみました。
Sub BookCancel()
MsgBox "ファイルを保存します", vbInformation
ファイル名 = "トレーニング"
Application.EnableEvents = False
BC1:
If Application.Dialogs(xlDialogSaveAs).Show(arg1:=ファイル名) = True Then
MsgBox "保存されました。 "
Else
If MsgBox("最初からやり直しますか?", vbYesNo) = vbYes Then
GoTo BC1
Else
MsgBox "処理を中断しました。", vbOKOnly
End If
End If
Application.EnableEvents = True
End Sub
1)まず、メッセージ「保存します」
2)保存ダイアログ「初期ファイル名:トレーニング」
・「保存」を押したら・・・保存してメッセージ「保存しました」で終了
・「キャンセル」したら以下の分岐
3)意思確認メッセージ「最初から?」(ボタンは「はい/いいえ」)
・「はい」を押したら・・・ダイアログ表示からやり直し
・「いいえ」を押したら・・・メッセージ「中止しました」で終了
こんな感じの流れです。
> 2.保存をせずにブックを閉じる
これを追加するなら、
MsgBox "処理を中断しました。", vbOKOnly
この直後に
ActiveWorkbook.Close SaveChanges:= False
エクセルも閉じるなら、
Application.Quit
ActiveWorkbook.Close SaveChanges:= False
それぞれ追加してくださいませ。
1つ1つ丁寧にご回答くださり、ありがとうございます。
おかげさまで、希望通りのVBAが完成いたしました。
他にも回答をくださった皆さまへも感謝いたします。
ありがとうございました!
No.2
- 回答日時:
DialogのShowメソッドは戻り値を持つ関数です。
ファイルを正常に処理できた場合、True を返し、ユーザーがダイアログ ボックスをキャンセルした場合は、False を返します。
If Application.Dialogs(xlDialogSaveAs).Show(arg1:=ファイル名) Then
' 保存したときの処理
Else
' キャンセルしたときの処理
End If
No.1
- 回答日時:
こんにちは!
こういうコトですかね?
If MsgBox("ファイルを保存しますか?", vbYesNo) = vbYes Then
ファイル名 = "トレーニング"
Application.EnableEvents = False
Application.Dialogs(xlDialogSaveAs).Show arg1:=ファイル名
Application.EnableEvents = True
MsgBox "保存されました。 "
Else
MsgBox "はじめからやりなおしてください。", vbOKOnly
Exit Sub
End If
ご希望通りでなかったらごめんなさいね。m(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- PowerPoint(パワーポイント) エクセルのマクロについて教えてください。 1 2022/03/25 17:03
- Excel(エクセル) Excelのマクロコードについて教えてください。 1 2022/03/27 10:47
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/03/07 14:05
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2022/03/31 12:46
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/05/23 15:54
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/02/21 11:19
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
microsoft print to pdf 保存先
-
iPadのWordで作成したものを画...
-
gif形式の動く画像の保存方法
-
「名前を付けて画像を保存」先...
-
エクセル 表を作って、保存する...
-
「実行」または「保存」どちら...
-
右クリックで保存できない
-
エクセルをCVSに変更したい...
-
特定日の検索履歴の保存は可能...
-
エクセルが読みとり専用で保存...
-
GOMプレイヤーで画面のキャプチ...
-
jpgで保存できない
-
無修正を見るだけで違法なので...
-
あなたの環境からの投稿はでき...
-
JPEG PNG サポートされていない...
-
請求書のpdfってギガファイル便...
-
google driveでプレビューでき...
-
Microsoft Edge での インポー...
-
本気で困ってます、PDFファイル...
-
HDDの寿命でしょうか
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
microsoft print to pdf 保存先
-
iPadのWordで作成したものを画...
-
gif形式の動く画像の保存方法
-
googleフォトからPCへ保存
-
「名前を付けて画像を保存」先...
-
右クリックで保存できない
-
保存していないメモ帳のありか
-
キャンセル処理の方法が分かり...
-
デフラグが遅い
-
ネットの画面をPDFで保存したい
-
壁紙フォルダが表示されない
-
Facebook Messengerで、相手が...
-
Snipping Toolの保存名自動変更...
-
「名前を付けて保存」のファイ...
-
ログイン名・パスワードを保存...
-
デスクトップにおいているメモ...
-
COOKIEが自動的に削除さ...
-
ダイレクトにデスクトップに落...
-
シスコのスイッチやルータのcon...
-
GOMプレイヤーで画面のキャプチ...
おすすめ情報