• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel VBA ブックが本当に閉じられた時だけ別のブックを閉じたい)

Excel VBA ブックが閉じられた時に別のブックを閉じたい

このQ&Aのポイント
  • Excel VBAを使用して、A.xlsを閉じると同時にB.xlsも閉じたい場合、以下のマクロを使用することができます。しかし、A.xlsが保存されていない場合に保存メッセージが表示され、キャンセルを選択した場合でもB.xlsが閉じられてしまう問題があります。
  • A.xlsが保存されていない場合に表示される保存メッセージの問題を解決する方法は、VBAコードを修正することです。具体的には、BeforeCloseイベントを使用して確認を行い、保存せずにブックを閉じることができます。
  • このような方法を使用すると、A.xlsが本当に閉じられた時だけB.xlsを閉じることができます。ただし、保存せずに閉じる場合は注意が必要です。

質問者が選んだベストアンサー

  • ベストアンサー
  • nda23
  • ベストアンサー率54% (777/1415)
回答No.1

イベントが無いので難しいと思います。 代替案として、自力で保存を問い合わせてみては? Private Sub Workbook_BeforeClose(Cancel As Boolean) Dim 文書, 応答 If Not ThisWorkbook.Saved Then     '変更があった場合のみ問い合わせる     文書 = "'" & ThisWorkbook.Name & "'への変更を保存しますか?"     応答 = MsgBox(文章, vbExclamation + vbYesNoCancel)     If 応答 = vbCancel Then         '閉じないようにして終了         Cancel = True         Exit Sub     End If     If 応答 = vbYes Then         '自力で保存する         ThisWorkbook.Save     Else         '保存したことにしてしまう         ThisWorkbook.Saved = True     End If End If ★ここでB.xlsを閉じる End Sub 面倒なので省略しましたが、読み取り専用のブックだと、Saveメソッドで エラーが発生します。エラーハンドリングして回避してください。

ytqyh081
質問者

お礼

ありがとうございます。 ご提示いただいた内容でバッチリでした。 読み取り専用ブックだった場合は 「読み取り専用です。別名で保存してください。」 のメッセージを表示させて Cancel = True Exit Sub で終わるようにしました。

関連するQ&A