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 以上のバージョンにアップデートいただくことで、
事象を解消いただくことが可能となります。

 

本情報の内容 (添付文書、リンク先などを含む) は作成日時点でのものであり、予告なく変更される場合があります。

Skip to main content