ターゲットブックを開けていないと下記のスクリプトはエラーになります。
回避するために、ターゲットブックがあいているかどうか判断する関数教えてください。
Windows("ターゲットブック").Activate
存在を確認する関数というのは無いと思いますので(あったらすみません)、
一度オブジェクト変数に代入してみれば、確認ができると思います。
下記、サンプルです。
Const winName = "ターゲットブック.xls" Sub tryActivate() Dim win As Window '--- とりあえずセットしてみる On Error Resume Next Set win = Windows(winName) On Error GoTo 0 If win Is Nothing Then '--- なければ、メッセージを表示 MsgBox winName & "は存在しません" Else '--- あればアクティブに win.Activate End If End Sub
http://hp.vector.co.jp/authors/VA016119/excel/vbafaq11.html
この中では関数を作って汎用的に利用できるようにしていますが、
原理は一緒です。
そのものズバリの定義済み関数は無いと思いますので、作ってみました。
Function IsBookOpen(ByVal bookName As String) As Boolean Dim bk As Window For Each bk In Application.Windows If bk.Caption = bookName Then IsBookOpen = True Exit Function End If Next bk IsBookOpen = False End Function
urlはダミー
ありがとうございます。
え、ないんですか?