WorkbookBase.BeforeClose イベント
ブックが閉じる前に発生します。ブックが変更されていると、ユーザーに変更を保存するよう求める前にこのイベントが発生します。
名前空間: Microsoft.Office.Tools.Excel
アセンブリ: Microsoft.Office.Tools.Excel.v4.0.Utilities (Microsoft.Office.Tools.Excel.v4.0.Utilities.dll 内)
構文
'宣言
Public Event BeforeClose As WorkbookEvents_BeforeCloseEventHandler
public event WorkbookEvents_BeforeCloseEventHandler BeforeClose
例
BeforeClose イベント用ハンドラーのコード例を次に示します。このイベント ハンドラーは、ブックが最後に保存された後に変更された場合に、変更を保存して閉じる、変更を保存せずに閉じる、または閉じる操作をキャンセルする、のうちどの操作を行うかを確認するメッセージを表示します。ユーザーが変更を保存しなかった場合、閉じる操作を継続するときに Microsoft Office Excel がブックを保存するプロンプトを表示しないよう、ブックの Saved プロパティは true に設定されます。ユーザーが閉じる操作をキャンセルした場合、Microsoft Office Excel がブックを閉じないよう、WorkbookEvents_BeforeCloseEventHandler イベント ハンドラーの Cancel パラメーターが true に設定されます。
この例は、ドキュメント レベルのカスタマイズ用に作成されています。
Sub ThisWorkbook_BeforeClose(ByRef Cancel As Boolean) _
Handles Me.BeforeClose
If Not Me.Saved Then
Dim result As DialogResult = _
MessageBox.Show("Do you want to save the " & _
"changes you made to " & Me.Name & "?", _
"Example", MessageBoxButtons.YesNoCancel)
Select Case result
Case DialogResult.Yes
Me.Save()
Case DialogResult.Cancel
Cancel = True
' The following code ensures that the default Save File
' dialog is not displayed.
Case DialogResult.No
Me.Saved = True
End Select
End If
End Sub
private void WorkbookBeforeClose()
{
this.BeforeClose +=
new Excel.WorkbookEvents_BeforeCloseEventHandler(
ThisWorkbook_BeforeClose);
}
void ThisWorkbook_BeforeClose(ref bool Cancel)
{
if (!this.Saved)
{
DialogResult result = MessageBox.Show("Do you want to save the " +
"changes you made to " + this.Name + "?", "Example",
MessageBoxButtons.YesNoCancel);
switch (result)
{
case DialogResult.Yes:
this.Save();
break;
case DialogResult.Cancel:
Cancel = true;
break;
// The following code ensures that the default Save File
// dialog is not displayed.
case DialogResult.No:
this.Saved = true;
break;
}
}
}
.NET Framework セキュリティ
- 直前の呼び出し元に対する完全な信頼。このメンバーは、部分的に信頼されているコードから使用することはできません。詳細については、「部分信頼コードからのライブラリの使用」を参照してください。