人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

VBAについての質問です。
ターゲットブックを開けていないと下記のスクリプトはエラーになります。
回避するために、ターゲットブックがあいているかどうか判断する関数教えてください。
Windows("ターゲットブック").Activate

●質問者: isogaya
●カテゴリ:コンピュータ
✍キーワード:VBA Windows あい いるか エラー
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● Mook
●35ポイント

存在を確認する関数というのは無いと思いますので(あったらすみません)、

一度オブジェクト変数に代入してみれば、確認ができると思います。


下記、サンプルです。

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

この中では関数を作って汎用的に利用できるようにしていますが、

原理は一緒です。

◎質問者からの返答

え、ないんですか?


2 ● ardarim
●35ポイント

そのものズバリの定義済み関数は無いと思いますので、作ってみました。

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はダミー

http://q.hatena.ne.jp/1202720492

◎質問者からの返答

ありがとうございます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ