
皆様にはいつもお世話になっております。
今回は BookAのマクロから BookBをアクティベイトできない現象で悩んでいます。
下記のマクロのように BookBが開いているか否かを判断して既に開いていればアクティブ化し、そうでなければ開くようにしたいと思っています。
ブックを開くケースでは下から2行目のアクティブ化は不要なのですが、ブックが開いている場合は 8行目のアクティブ化が効きません(エラーメッセージも出ません)。
大分アチコチのサイトを覗いたのですが殆どが一般的な説明で参考になりませんでした。
ご存じの方、教えて頂ければ幸いです。
因みに、使用しているOSは Windows7+Excel2010 及び Windows10+Excel16なのですが、いずれの場合も同じ症状となります。
宜しくお願いします。
Dim targetBook As String
targetBook = "U:\BookB.xlsm"
' ブックを開く時に読み取り専用になっているか否かでその開閉を判断
On Error Resume Next
Open targetBook For Append As #1
Close #1
If Err.Number > 0 Then '■ブックが開いている
Workbooks(targetBook).Activate '指定ブックに移動
Else '■ブックが開いていない
Workbooks.Open targetBook 'ブックを開く
Workbooks(targetBook).Activate
End If
No.1ベストアンサー
- 回答日時:
検証してませんけど、パスとブック名を分けてみては如何でしょうか?
Dim targetBook As String , tagetPath As string
targetPath = "U:\"
targetBook = "BookB.xlsm"
' ブックを開く時に読み取り専用になっているか否かでその開閉を判断
On Error Resume Next
Open targetPath & targetBook For Append As #1
Close #1
If Err.Number > 0 Then '■ブックが開いている
Workbooks(targetBook).Activate '指定ブックに移動
Else '■ブックが開いていない
Workbooks.Open targetPath & targetBook 'ブックを開く
'Workbooks(targetBook).Activate ■不要かもですね。
End If
たしか既に開いているワークブックの名前にはパスは表示されなかったと思いますし、使用するにも指定はしなかったと思うので。
違っていたらごめんなさい。
めぐみん_ さん、早朝からの回答、感謝致します。
実は以前にも めぐみん_ からは丁寧に指導して頂いた記憶があります。
本当に有り難うございます。
ところで御指摘のように修正したところ、一発で解決しました。
いろいろなサイトを探しても めぐみん_ のような説明は見つかりませんでした。
基本的なことを理解していないので上手く行かなかったのですね。
御多用中のところ、誠に有り難うございました。
今後とも宜しくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
Application.ScreenUpdating = Falseが効きません
Visual Basic(VBA)
-
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
EXCELマクロで、開いてはいるがアクティブでないファイルをアクティブにする方法?
Excel(エクセル)
-
-
4
エクセルで別ブックをバックグラウンドでオープンする方法
Excel(エクセル)
-
5
Excel VBAで、ユーザーフォームをモードレス表示している間、処理を止めるには?
Visual Basic(VBA)
-
6
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
7
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
8
【Excel VBA】ブックを複数開いている際、任意のブックをアクティブにしたい
Excel(エクセル)
-
9
エクセルVBAで、MsgBox やInputBox は、画面の中央以外に表示させたい。
Excel(エクセル)
-
10
VBAでファイルを開くときにファイル名でワイルドカードを使用したいです
その他(プログラミング・Web制作)
-
11
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
12
新しく開いたブックをアクティブにするマクロ
Visual Basic(VBA)
-
13
【Excel VBA】マクロでExcel自体を終了させたい
Excel(エクセル)
-
14
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
15
vba フィルター 複数条件 3つ以上 完全一致除外
Visual Basic(VBA)
-
16
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
17
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
18
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
19
WorkBooksをオープンさせずにシートにコピーしたい【EXCEL VBA】
Excel(エクセル)
-
20
VBA:ワークブックを変数でActiveにしたいのですが・・
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルの関数 ENTERを押...
-
エクセルを共有するとPCによっ...
-
VBAでブックを非表示で開いて処...
-
【マクロ】【画像あり】❶ブック...
-
Excelファイルをダブルクリック...
-
【マクロ】【画像あり】ファイ...
-
Excelでブックの共有を掛けると...
-
エクセルでウィンドウの枠固定...
-
WorkBooksをオープンさせずにシ...
-
フォルダ内の複数ファイルから...
-
Excel(2010)のフィルターが保...
-
Excelの警告について
-
エクセルで参照しているデータ...
-
VBA バックグラウンドで別ブッ...
-
beckyに届いたメールをエクセル...
-
エクセルにおける,「ブック」...
-
Excel起動時に特定のワークシー...
-
エクセルを開くと最大化などの...
-
複数エクセルから特定シートの...
-
ブックのピボットを別ブックに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【マクロ】アクティブセルの時...
-
エクセルの関数 ENTERを押...
-
VBAでブックを非表示で開いて処...
-
エクセルを共有するとPCによっ...
-
WorkBooksをオープンさせずにシ...
-
エクセルで参照しているデータ...
-
Excelファイルをダブルクリック...
-
Excelでブックの共有を掛けると...
-
「ブックの共有」を有効にして...
-
Excel(2010)のフィルターが保...
-
Excelの新しい空白のブックを開...
-
同じフォルダへのハイパーリン...
-
フォルダ内の複数ファイルから...
-
エクセルで別ブックをバックグ...
-
別ブックから入力規則でリスト...
-
ブックのピボットを別ブックに...
-
エクセルでウィンドウの枠固定...
-
エクセルにおける,「ブック」...
-
Excelで複数ブックの同一セルに...
-
Excelで指定範囲のデータ...
おすすめ情報