- ベストアンサー
(VBA)ブックを閉じるプログラム
- VBAを使用してブックを閉じるプログラムを作成したいです。具体的には、「終了」というボタンを作成し、このボタンを押したときには変更を保存せずにブックを閉じるようにしたいです。また、右上のXマークを押して閉じようとした場合には、「終了ボタンで終了してください」というメッセージを表示させて、必ず終了ボタンで閉じるようにしたいです。
- 現在、ネットで調べてプログラムを試してみましたが、完全にブックを閉じることができませんでした。また、Xボタンを押して閉じることを防ぐプログラムも見つけることができませんでした。
- VBAを使用してブックを閉じるプログラムを作成したいのですが、うまくいきません。どうぞご教授ください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 モジュール、【標準モジュール】と【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 ' ' ==============================
その他の回答 (1)
- keithin
- ベストアンサー率66% (5278/7941)
当該のブックを開く 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を登録する。
お礼
お礼遅くなりました。 解決しました。 有難う御座いました。
お礼
お礼遅くなりました。 解決しました。 有難う御座いました。