
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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【関数】=EXACT(a1,b1) a1とb1...
-
【マクロ】excelファイルを開く...
-
エクセルのリストについて
-
【マクロ】【相談】Excelブック...
-
エクセルの関数について
-
【マクロ】数式を入力したい。...
-
【マクロ】元データと同じお客...
-
【マクロ】実行時エラー '424':...
-
他のシートの検索
-
【マクロ】左のブックと右のブ...
-
【画像あり】オートフィルター...
-
Office2021のエクセルで米国株...
-
LibreOffice Clalc(またはエク...
-
vba テキストボックスとリフト...
-
エクセルのVBAで集計をしたい
-
【マクロ】【配列】3つのシー...
-
エクセルシートの見出しの文字...
-
【マクロ】【画像あり】ファイ...
-
【マクロ】【画像あり】❶ブック...
-
【マクロ画像あり】❶1つの条件...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
microsoft print to pdf 保存先
-
gif形式の動く画像の保存方法
-
iPadのWordで作成したものを画...
-
保存フォルダが指定できません...
-
Snipping Toolの保存名自動変更...
-
「名前を付けて画像を保存」先...
-
デフラグが遅い
-
壁紙フォルダが表示されない
-
ホームページの保存で
-
PC初心者です
-
BIOSの設定画面を抜ける際に変...
-
基本なんですが、テキストファ...
-
◎自分で作った名刺の原稿を探し...
-
googleフォトからPCへ保存
-
ホームページの保存ができません。
-
エクセルのを、保存しないで間...
-
youtubeの動画を。。
-
ファイルの保存が出来ません
-
ファイルの保存
-
MT4 日本時間表示のインジケータ
おすすめ情報