[リストへもどる]
一括表示

投稿時間:2003/10/30(Thu) 12:43
投稿者名:まさお
URL :
タイトル:
VBで起動中のExcelのイベントをひろう
VBで起動中のExcelが終了したかを拾いたいのですが、それは可能でしょうか?
できそうな関数や方法がみつからないのでどなたか指導お願いします。

タイマーを使って、1秒間隔でExcelが終了しているか確かめるということも考えたの
ですが、他に何か方法があるかと思ったのでたずねてみようと思いました。

よろしくお願いします。

投稿時間:2003/11/05(Wed) 09:15
投稿者名:大久保
URL :
タイトル:
Re: VBで起動中のExcelのイベントをひろう
> VBで起動中のExcelが終了したかを拾いたいのですが、それは可能でしょうか?
> できそうな関数や方法がみつからないのでどなたか指導お願いします。
>
> タイマーを使って、1秒間隔でExcelが終了しているか確かめるということも考えたの
> ですが、他に何か方法があるかと思ったのでたずねてみようと思いました。
>
> よろしくお願いします。

はじめまして、ちゃんと開放してないかもしれませんが
Option Explicit
Private WithEvents xlApp    As Excel.Application

Private Sub Command1_Click()
    Dim xlBook As Excel.Workbook
    Dim xlSheet As Excel.Worksheet
      Set xlApp = CreateObject("Excel.Application")
      Set xlBook = xlApp.Workbooks.Add
      Set xlSheet = xlBook.Worksheets(1)

    xlApp.Visible = True
End Sub

Private Sub xlApp_WorkbookBeforeClose(ByVal Wb As Excel.Workbook, Cancel As Boolean)

    Debug.Print "イベント受けた"

    Set Wb = Nothing
    xlApp.Quit
    Set xlApp = Nothing
  
End Sub

イミデントウィンドウで確認して下さい。詳しくはWithEventsを調べてみて下さい。

投稿時間:2003/11/05(Wed) 09:17
投稿者名:大久保
URL :
タイトル:
Re^2: VBで起動中のExcelのイベントをひろう
> > VBで起動中のExcelが終了したかを拾いたいのですが、それは可能でしょうか?
> > できそうな関数や方法がみつからないのでどなたか指導お願いします。
> >
> > タイマーを使って、1秒間隔でExcelが終了しているか確かめるということも考えたの
> > ですが、他に何か方法があるかと思ったのでたずねてみようと思いました。
> >
> > よろしくお願いします。
>
> はじめまして、ちゃんと開放してないかもしれませんが
> Option Explicit
> Private WithEvents xlApp    As Excel.Application
>
> Private Sub Command1_Click()
>     Dim xlBook As Excel.Workbook
>     Dim xlSheet As Excel.Worksheet
>       Set xlApp = CreateObject("Excel.Application")
>       Set xlBook = xlApp.Workbooks.Add
>       Set xlSheet = xlBook.Worksheets(1)
>
>     xlApp.Visible = True
> End Sub
>
> Private Sub xlApp_WorkbookBeforeClose(ByVal Wb As Excel.Workbook, Cancel As Boolean)
>
>     Debug.Print "イベント受けた"
>
>     Set Wb = Nothing
>     xlApp.Quit
>     Set xlApp = Nothing
>  
> End Sub
>
> イミデントウィンドウで確認して下さい。詳しくはWithEventsを調べてみて下さい。
イミディエイトウィンドウでした。すみません。