電子書籍の厳選無料作品が豊富!

エクセルのファイルが複数個開いている状態だとします。
この状態で、例えばファイル名aaa.xlsが開いている場合は次の処理に進む。もしこのファイルが開いていない場合は、このファイルを開いてから次の処理に進むようにするにはどのように記述したらよいでしょうか。
要は、ある特定のファイルが開いているかどうかを調べたいのですが、記述方法が分かりません。

よろしくお願いします。

A 回答 (3件)

こんにちは。

maruru01です。

べたな方法だとこんな感じ


Dim wb As Workbook
Dim flg As Boolean

flg = False
For Each wb In Workbooks
  If wb.Name = "aaa.xls" Then
    flg = True
    Exit For
  End If
Next wb

If flg Then
  MsgBox "aaa.xlsは開いています"
Else
  MsgBox "aaa.xlsは開いていません"
End If
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございました。
maruru01さんの方法で問題なくできました。
ありがとうございました。

お礼日時:2005/04/01 15:44

・・・・・


パス = "c:\"
ファイル名 = "aaa.xls"
・・・・・
On Error Resume Next
ダミー = Workbooks(ファイル名).Name
If Err Then 'bookは開いていない
 '処理 book を開く
Workbooks.Open Filename:=パス + ファイル名
End If
On Error GoTo 0 'Err = 0
'bookは開いている

・・・・
    • good
    • 0
この回答へのお礼

回答ありがとうございました。

お礼日時:2005/04/01 15:47

Private Function existBook(book As String) As Boolean


Dim x As Workbook
For Each x In Workbooks
If UCase(x.Name) = UCase(book) Then existBook = True: Exit Function
Next
existBook = False
End Function

Public Sub sample()
If Not existBook("aaa.xls") Then
Workbooks.Open "aaa.xls" 'FullPathで指定した方がいいよ
End If
End Sub
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
私のつたない知識では及びもつかない方法です。
No.1さんの方法で解決しましたのでBLUEPIXYさんの方法は使いませんでしたが、とても参考になりました。ありがとうございました。

お礼日時:2005/04/01 15:46

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!