• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:(VBA)ブックを閉じるプログラム)

(VBA)ブックを閉じるプログラム

このQ&Aのポイント
  • VBAを使用してブックを閉じるプログラムを作成したいです。具体的には、「終了」というボタンを作成し、このボタンを押したときには変更を保存せずにブックを閉じるようにしたいです。また、右上のXマークを押して閉じようとした場合には、「終了ボタンで終了してください」というメッセージを表示させて、必ず終了ボタンで閉じるようにしたいです。
  • 現在、ネットで調べてプログラムを試してみましたが、完全にブックを閉じることができませんでした。また、Xボタンを押して閉じることを防ぐプログラムも見つけることができませんでした。
  • VBAを使用してブックを閉じるプログラムを作成したいのですが、うまくいきません。どうぞご教授ください。

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

  • ベストアンサー
  • cj_mover
  • ベストアンサー率76% (292/381)
回答No.1

こんにちは。 モジュール、【標準モジュール】と【ThisWorkbookモジュール】 を間違えないようにしてください。 また、2択、3択の部分は、運用面から選んでください。 (コメントブロックを付けたり外したり、それぞれ1つを選ぶということです) ' ' ============================== ' ' 【標準モジュール】   Public blnEnClose As Boolean Sub test2() '(1/2択)マクロの一覧に表示する 'Private Sub test2() '(2/2択)マクロの一覧に表示しない   blnEnClose = True   Workbooks("Book1.xls").Close SaveChanges:=False '(1/3択)ブックを名前指定で閉じる '  ThisWorkbook.Close SaveChanges:=False '(2/3択)自ブックを閉じる '  Application.Quit '(3/3択)アプリケーションごと閉じる。 End Sub ' ' ※ Private Sub にした場合の呼び出し方は、Application.Run "test2" ' ' ============================== ' ' 【ThisWorkbookモジュール】 Private Sub Workbook_BeforeClose(Cancel As Boolean)   If Not blnEnClose Then     Cancel = True     MsgBox "終了ボタンで終了して下さい", vbInformation   End If End Sub ' ' ==============================

MAX33
質問者

お礼

お礼遅くなりました。 解決しました。 有難う御座いました。

その他の回答 (1)

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

当該のブックを開く ALT+F11を押す プロジェクトエクスプローラから当該のブックのVBAProjectの中に含まれているThisWorkbookをWクリックして開く 現れたシートに下記をコピー貼り付ける private sub Workbook_BeforeClose(cancel as boolean)  if flg then exit sub  msgbox "CLICK EXIT BUTTON"  cancel = true end sub さらに挿入メニューから標準モジュールを挿入し、下記をコピー貼り付ける public flg as boolean sub macro1()  flg = true  thisworkbook.close savechanges:=false end sub ファイルメニューから終了してエクセルに戻る シート上にオートシェイプ等を使って終了ボタンを作成、右クリックしてマクロの登録でマクロ1を登録する。

MAX33
質問者

お礼

お礼遅くなりました。 解決しました。 有難う御座いました。

関連するQ&A