Excel VBA 質問スレッド №2077 (未解決)

№2075に追加で質問です(bookの保存について)

投稿者 : SAYS     投稿日時 : 2025/02/05(Wed) 11:15:21     OS : Windows 10     EXCEL : Office 365
№2075にてご教授頂きました件で追加で質問させてください。

A3が空欄・空欄では無いに関係なく、保存せずに終了するパターンが出てきました。
№2075でご教授いただいた処理に加えて、そういったことは可能でしょうか?
再度ご教授お願いいたします。

スポンサーリンク
[返信 1] Re : №2075に追加で質問です(bookの保存について)
投稿者 : てらてら     投稿日時 : 2025/02/05(Wed) 19:11:28
>A3が空欄・空欄では無いに関係なく、保存せずに終了するパターンが出てきました。

どんなパターンか知りませんが(タスクマネージャーとかですかね?)
保存せずに終了という事はデフォルトの状態がキープされるだけですからプログラムは必要ないと思います。

[返信 2] Re : №2075に追加で質問です(bookの保存について)
投稿者 : SAYS     投稿日時 : 2025/02/06(Thu) 11:41:12
ご教授頂いたコードを記入し実行すると、A3に入力がある場合はExcelでブックを閉じるときに
"変更を保存しますか?" というメッセージが表示されるので、そこから保存せずに終了できるのですが
A3が空欄の場合「A3が空欄のまま終了出来ません」となってしまうのです。

それを回避する方法があればと思い、質問させていただきました。
言葉足らずで申し訳ありません。

[返信 3] Re : №2075に追加で質問です(bookの保存について)
投稿者 : てらてら     投稿日時 : 2025/02/06(Thu) 19:19:31
確かに!
そのようなケースがありましたか、、、

BeforeCloseプロシージャを以下のように変更してみてください。

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    If IsSave = False Then
        MsgBox "A3が空欄のまま終了出来ません。" & vbLf & _
                    "処理を中止します。", vbCritical, "警告"
        Cancel = True
    Else
        '変更を保存しますか?のメッセージを表示させない
        ThisWorkbook.Saved = True
        Application.Quit
    End If
    
End Sub

[返信 4] Re : №2075に追加で質問です(bookの保存について)
投稿者 : SAYS     投稿日時 : 2025/02/07(Fri) 09:13:02
ありがとうございます。

'変更を保存しますか?のメッセージを表示させない
ThisWorkbook.Saved = True
Application.Quit

を既に試していたのですが(お伝えするべきでした。申し訳ありません)、"変更を保存しますか?" というメッセージが
表示されないようになるものの、強制的に上書き保存せずに終了されるような状態になってしまいます。


A3が空欄→上書き保存は不可・上書き保存せずに終了は可
A3に文字が入力→上書き保存・上書き保存せずに終了両方可

と、したいのです。


自分だけが使うのであれば、上書き保存をしないということは起こらないのですが
共通ファイルの為、他の人が上書き保存せずに終了する場合があると言われてご相談させて頂いた次第なのです。

何度も申し訳ありませんが、よろしくお願い致します。

[返信 5] Re : №2075に追加で質問です(bookの保存について)
投稿者 : てらてら     投稿日時 : 2025/02/07(Fri) 21:09:58
グローバル変数でフラグを設けて、BeforeCloseでA3が空文字の時にフラグをTrueにします。
BeforeSaveが呼ばれるので、ここでフラグがTrueの時に Exit Sub で抜ければ、A3が空欄の時に上書きされずに終了します。

当掲示板について
  • Excel VBA に関する掲示板です。Excel VBA に関する質問や疑問、それに対する解決方法など気軽に投稿してください。
  • 記事内ではHTMLのタグは使用できません。
  • 記事は一度投稿すると修正できません。内容を訂正したい場合は返信で対応してください。
  • Sub〜End Sub、Function〜End Function は自動的にプログラムコードとみなし、枠で囲って見やすくします。
  • Excel VBA とは関係ないことや、他人が不快に思うようなことなど、管理人が適当でないと判断した記事は削除する場合があります。
スポンサーリンク
返信入力フォーム
お 名 前  :
内  容   :

ステータス  :

認証コード  : キャプチャ画像 




( 処理日時 : 2025-02-07 22:37:02 )
タイトルとURLをコピーしました