• ベストアンサー

VBA 保存方法を教えて下さい

Private Sub Workbook_BeforeClose(Cancel As Boolean) If MsgBox("×ボタンは使用できません。" & vbCr & _ "よろしいですか?", vbInformation + vbOKOnly) = vbOK Then Cancel = True End If End Sub 上記の様にEXCELワークブックに記述しましたが、 別に設置した「保存終了ボタン」で終了できなくなってしまいました。 Workbook_BeforeClose が邪魔しているようです。 どうすれば解決できるでしょうか? 「保存終了ボタン」に記述しているコードは下記です。 Sub 保存終了() ActiveWorkbook.Save CommandBars("Worksheet Menu Bar").Enabled = True Application.CommandBars("Standard").Visible = True Application.CommandBars("Formatting").Visible = True Application.CommandBars("Drawing").Visible = True With Application .DisplayFormulaBar = True .ShowWindowsInTaskbar = True End With Application.WindowState = xlMaximized Application.Quit MsgBox "終了します" End Sub 宜しくお願いします。

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

> Workbook_BeforeClose が邪魔しているようです。 だから、イベントを発生させなければいいわけです。 Sub 保存終了() ActiveWorkbook.Save With Application .CommandBars("Worksheet Menu Bar").Enabled = True .CommandBars("Standard").Visible = True .CommandBars("Formatting").Visible = True .CommandBars("Drawing").Visible = True .DisplayFormulaBar = True .ShowWindowsInTaskbar = True .WindowState = xlMaximized .EnableEvents = False .Quit End With MsgBox "終了します" End Sub

sumi3377
質問者

お礼

ありがとうございました。 単純に無効にすればよかったのですね。 今後も宜しくお願いします。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • masa_019
  • ベストアンサー率61% (121/197)
回答No.2

こんにちは。 Sub 保存終了()からは終了できて、×ボタンでの終了はできないようにしたいのでしょうか? だとしたら、Application.EnableEvents = False を保存終了のマクロに追加すれば良いと思います。 Sub 保存終了() Application.EnableEvents = False  'イベントを無効 ActiveWorkbook.Save CommandBars("Worksheet Menu Bar").Enabled = True Application.CommandBars("Standard").Visible = True Application.CommandBars("Formatting").Visible = True Application.CommandBars("Drawing").Visible = True With Application .DisplayFormulaBar = True .ShowWindowsInTaskbar = True End With Application.WindowState = xlMaximized Application.Quit Application.EnableEvents = False 'イベントを有効 MsgBox "終了します" End Sub

すると、全ての回答が全文表示されます。

関連するQ&A

専門家に質問してみよう