[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『特定のブックが開いているか確認』(穂乃果)
初めまして。
特定のブックが開いているかどうか確認し、開いていていたらユーザーフォームを開き、データを抽出するなどの作業を始める。開いていなければ、その特定のブックを開いて、開いていた場合と同じ作業を始める。というコードを記述したいです。
Private Sub CommandButton1_Click()
Dim myChkBook As Workbook
On Error GoTo ErrHdl Set myChkBook = Workbooks("data.xlsx")
MsgBox "開かれています。" UserForm1.Show vbModeless Set 抽出先 = Workbooks("抽出先.xlsm").WorkSheets("Sheet1")
…… ……
ErrHdl:
MsgBox "開かれていません。" Workbooks.Open "\\×××\data.xlsx" UserForm1.Show vbModeless Set 抽出先 = Workbooks("抽出先.xlsm").WorkSheets("Sheet1")
…… ……
End Sub
今、このようなコードを記述しています。開かれていない場合はうまくいくのですが、開かれている場合、何故か開かれていない場合のルートも辿ってしまいます。なので、dataブックは既に開かれているのに、「既に開かれています。開きますか?」とポップアップが出てきてしまいます。どのようにすれば治りますでしょうか。
< 使用 Excel:Excel2010、使用 OS:Windows7 >
ErrHdl: の前に Exit Sub を入れるということか? (ねむねむ) 2015/04/24(金) 16:25
On Error Resume Next Set myChkBook = Workbooks("data.xlsx") If myChkBook Is Nothing Then Set myChkBook = Workbooks.Open("\\×××\data.xlsx") End If On Error GoTo 0 '処理
とするか、ErrHdl: の前で Exit Sub するかです。
同じ処理を二度書くのは無駄です。
(ウッシ) 2015/04/24(金) 16:26
もう一つ質問させていただきたいことがあるのですが、開かれていない場合の、ブックをオープンするときに、ファイルが保護されていますよというポップアップと、このブックにはほかのデータソースへのリンクが〜というポップアップが出てきます。毎回、読み取り専用とOKボタンを押しているのですが、これは出ないようにすることは可能でしょうか。
ネットで調べてみるとリンクを更新しない方法はあったのですが、このdataブックはサーバ上にあり、そこから取ってきていて、このファイルは管理者が定期的に更新をしているので最新のデータでないとうまくいかないこともあると思います……。
(穂乃果) 2015/04/24(金) 16:44
Workbooks.Open のパラメーターで色々指定出来ます。
(ウッシ) 2015/04/24(金) 16:53
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.