次の方法で共有

VBからExcel 2016を起動した場合のBeforeCloseイベントについて

Anonymous
2016-06-27T07:38:47+00:00

VBからExcel 2016を起動しユーザー操作によるEXCEL終了を管理(キャンセル)しようとしています。

EXCELメニューバーから「ファイル」→「閉じる」を選択した場合は何度でもイベントを捉えられますが、

EXCELのウィンドウ右上のバツマークからの場合、初回操作による終了はVBでイベントをとらえられ

キャンセルできますが、2回目のユーザー操作による終了をVBで捉えることができず終了してしまいます。

EXCEL2013ではどちらの操作でもイベントを捉えることができます。

OSはWindows7 64bit VBは2015communityです。

2回目以降もイベントを捕らえる方法があればご教授お願いします。

Imports Microsoft.Office.Interop

Public Class Form1

    Public XlApp As Excel.Application

    Public WithEvents xlBook As Excel.Workbook

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load

        XlApp = CreateObject("Excel.Application")

        XlApp.Visible = True

        Try

            XlApp.Workbooks.Open(Filename:="XXXXXX.xlsx",

                     IgnoreReadOnlyRecommended:=True)

            xlBook = XlApp.Workbooks(1)

        Catch

            Call MsgBox("指定申請書類は他のユーザーが使用している可能性があります。" &

                         vbNewLine & "しばらくして、もう一度実行してください。", vbExclamation, "共有チェック")

            XlApp.Quit

            XlApp = Nothing

            Exit Sub

        End Try

    End Sub

    Private Sub xlBook_BeforeClose(ByRef Cancel As Boolean) Handles xlBook.BeforeClose

        Cancel = True

    End Sub

End Class

開発者テクノロジ | Visual Basic for Applications

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

1 件の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2016-06-28T03:39:24+00:00

    健司糟谷 さん、こんにちは。

    マイクロソフト コミュニティへの投稿ありがとうございます。

    Excel を右上の×で閉じる操作だと、初回しか BeforeClose イベントをとらえることができないのですね。

    マイクロソフト コミュニティは一般ユーザー向けのフォーラムなので、あまり情報が集まりにくいかと思います。

    せっかくこちらに投稿いただいたところ申しわけないのですが、この話題については Visual Basic や VBA のトピックがある「MSDN フォーラム」の方に投稿をしてみてはいかがでしょう。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません