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

エクセルのVBAに関する質問です。
別ウィンドウで、あるブックが開いているかどうかを確認して、開いていなかったら開くというのはどう書くといいの
でしょうか? 開こうしてしてなかった場合のエラートラップもほしいです。

windosw(ブック名).activate とするとないとマクロがとまって不便です。エラートラップすればいいのでしょうけど、
エクセル不慣れでよくわかりませんのでよろしくお願いします。


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

▽最新の回答へ

1 ● Mook
●60ポイント

やり方はいろいろとあるかと思いますが、1例です。

Const theFilePath = "D:\Data\test2.xls"

Sub main()
 checkOpen (theFilePath)
End Sub

Sub checkOpen(filePath As String)
'--- ファイルの有無のチェック
 If Dir(filePath) = "" Then
 MsgBox "ファイルがありません。"
 Exit Sub
 End If
 
'--- ファイル名の取り出し
 Dim fileName As String
 If InStr(filePath, "\") > 0 Then
 fileName = Right(filePath, Len(filePath) - InStrRev(filePath, "\"))
 Else
 fileName = filePath
 End If

'--- 開いているファイルにあるか確認
 Dim wb As Workbook
 For Each wb In Workbooks
 If UCase(wb.Name) = UCase(fileName) Then
 MsgBox "すでにファイルは開いています。"
 Exit Sub
 End If
 Next

'--- 開いていなかったのでオープン
 Workbooks.Open filePath
End Sub

http://officetanaka.net/excel/vba/file/file05.htm

◎質問者からの返答

ありがとうございます。

そこそこコード長くなりますね。

関連質問


●質問をもっと探す●



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