« Excel VBAから他のExcelインスタンスを捕捉する。 | トップページ | そのExcelファイルが開かれているか?をVBAから調べる。 »

2008年4月 6日 (日)

そのExcelファイルが開かれているか?をスクリプトから調べる。

Excel.Applicationが動いているか?は、GetObject(,"Excel.Application")で分かります。
しかし、Excelファイルが開かれているか?は、GetObject("Excelファイル")では分かりません。

あるExcel.Applicationで、そのExcelファイルが開かれているか?は、Application.Workbooksで分かります。
しかし、GetObject(,"Excel.Application")では、Excel.Applicationを列挙することができません。

Path="Excelファイルのフルパス"
On Error Resume Next
Set Application=GetObject(,"Excel.Application")
On Error GoTo 0
If IsEmpty(Application) Then
  MsgBox "No App"
Else
  Count=Application.Workbooks.Count
  Set Book1=GetObject(Path)
  If Count<>Application.Workbooks.Count Then
    MsgBox "Not Open"
  ElseIf Book1.Application Is Application Then
    MsgBox "Open here"
  Else
    MsgBox "Open elsewhere"
  End If
End If

« Excel VBAから他のExcelインスタンスを捕捉する。 | トップページ | そのExcelファイルが開かれているか?をVBAから調べる。 »