目次:
- マクロの仕組み
- このマクロを実装するには、そのマクロをコピーしてWorkbook_BeforeCloseイベントコードウィンドウに貼り付ける必要があります。マクロを配置すると、ブックを閉じるときにマクロが実行されます。
ビデオ: 【Excelの使い方】保存方法について・保存前に復元する技も! 2024
ここに示したマクロは、保存する前にユーザーが誤ってファイルを閉じるのを防ぐ優れた方法です。このマクロを実装すると、Excelがブックを閉じる前に自動的に保存されます。
通常、Excelは、保存されていないブックを閉じようとしているユーザーに、終了前に保存するオプションを与えるよう警告します。しかし、多くのユーザーが警告を吹き飛ばし、間違って「いいえ」をクリックして、Excelに保存せずに閉じるよう指示します。このマクロでは、閉じる前に自動的に保存することでこれを防ぎます。
<! - 1 - >マクロの仕組み
コードはワークブックのBeforeCloseイベントによってトリガされます。ブックを閉じようとすると、このイベントが発生し、コードが実行されます。コードの要点は簡単です。ユーザーにブックを閉じるかどうかを尋ねます。マクロは、ユーザーが[OK]または[キャンセル]をクリックしたかどうかを評価します。
<! - 2 - >ブックを閉じるときに表示されるメッセージ。評価はSelect Case文で行います。 Select Caseステートメントは、If-Then-Elseステートメントの代わりに使用され、マクロで条件チェックを実行できます。 Select Caseステートメントの基本的な構成は簡単です。
Select Case Case = Case Is = Case Is = End Select
Select Caseステートメントを使用すると、多くの条件付きチェックを実行できます。この場合、単にOKかCancelをチェックしているだけです。コードを見て:
<! (「保存して閉じる」、vbOKCancel) 'ステップ2:キャンセルボタンが押された場合は、「はい」をクリックして、ので、閉じるケースIs = vbCancelキャンセル= True '手順3:[OK]ボタンが押されたので、ブックを保存し、Case Is = vbOK ActiveWorkbookを閉じます。 Save 'Step 4:Select Caseステートメントを終了End Select End Subステップ1では、Select Caseステートメントの条件チェックとしてメッセージボックスをアクティブにします。 vbOKCancel引数を使用して、OKボタンとCancelボタンが選択肢として表示されるようにします。
手順2で、ユーザーがメッセージボックスで[キャンセル]をクリックすると、マクロはExcelにCancel BooleanにTrueを渡してWorkbook_Closeイベントをキャンセルするよう指示します。
メッセージボックスのOKボタンをクリックすると、ステップ3が有効になります。ここでは、ブックにブックを保存するように指示します。また、Cancel BooleanをTrueに設定しなかったため、Excelは終了します。
ステップ4では、Select Caseステートメントを閉じるだけです。 Select Caseをインスタンス化するたびに、対応するEnd Selectを使用してSelect Caseを閉じる必要があります。
マクロの使用方法
このマクロを実装するには、そのマクロをコピーしてWorkbook_BeforeCloseイベントコードウィンドウに貼り付ける必要があります。マクロを配置すると、ブックを閉じるときにマクロが実行されます。
Alt + F11キーを押してVisual Basic Editorをアクティブにします。
-
プロジェクトウィンドウで、プロジェクト/ワークブックの名前を探し、その横のプラス記号をクリックしてすべてのシートを表示します。
-
ThisWorkbookをクリックします。
-
イベントドロップダウンリストでBeforeCloseイベントを選択します。
-
新しく作成したモジュールにコードを入力するか貼り付けます。
-
Workbook BeforeCloseイベントにコードを入力します。