Excel 2016 で、2 回目以降の BeforeClose イベントが正しく処理されない事象について
こんにちは。Office サポート チームです。
今回はクイック実行版 および MSI 版の Excel 2016 で、RTM (製品出荷版) から発生していた 2 回目以降の BeforeClose イベントが正しく処理されない事象について説明します。
現象
Excel 2016 では、一度 Workbook_BeforeClose や App_WorkbookBeforeClose イベントを取得時に Cancel をすると、2 回目以降に BeforeClose イベント が発生しない
実装例:
以下のような実装を ThisWorkbook 内にした場合、一度ワークブックを閉じる動作を Cancel をすると、次回以降 BeforeClose イベントが正しく処理されません。
Option Explicit
Private WithEvents App As Excel.Application
Private Sub Workbook_Open()
Set App = Application
End Sub
Private Sub App_WorkbookBeforeClose(ByVal Wb As Workbook, Cancel As Boolean)
If MsgBox("App_WorkbookBeforeClose ? Cancel: " & CStr(Cancel), vbYesNo) = vbNo Then
Cancel = True
End If
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If MsgBox("Workbook_BeforeClose ? Cancel: " & CStr(Cancel), vbYesNo) = vbNo Then
Cancel = True
End If
End Sub
解決方法
Office 2016 (MSI インストール)
Excel.exe が16.0.4393.1000 以上のバージョンで修正されています。
この問題は Excel 2016 のプログラム (2016 年 6 月 7 日) で修正されています。
関連情報を参照するには、以下の「サポート技術情報」(Microsoft Knowledge Base) をクリックしてください。
3115139 June 7, 2016, update for Excel 2016 (KB3115139)
クイック実行 (C2R) 形式
[Office アカウント] - [更新オプション] - [今すぐ更新] にて 16.0.7070.2022 以上のバージョンにアップデートいただくことで、
事象を解消いただくことが可能となります。
本情報の内容 (添付文書、リンク先などを含む) は作成日時点でのものであり、予告なく変更される場合があります。