
皆様にはいつもお世話になっております。
今回は 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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) マクロVBA 1シートをまとめる 閉じ方 初心者 SOS! 1 2022/06/17 14:54
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) Excel-VBAでのファイルの開き方 4 2023/02/14 11:01
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) EXCELのセル相互同期用のVBAでの不具合 3 2022/08/10 11:44
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/13 08:41
- Visual Basic(VBA) VBA Bookの表示、非表示 1 2022/09/16 20:44
- Visual Basic(VBA) VBA This Workbookモジュールを別ファイルにコピーする方法 1 2022/09/14 01:51
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/02/07 09:58
このQ&Aを見た人はこんなQ&Aも見ています
-
EXCELマクロで、開いてはいるがアクティブでないファイルをアクティブにする方法?
Excel(エクセル)
-
Application.ScreenUpdating = Falseが効きません
Visual Basic(VBA)
-
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
-
4
Excel VBAで、ユーザーフォームをモードレス表示している間、処理を止めるには?
Visual Basic(VBA)
-
5
【Excel VBA】ブックを複数開いている際、任意のブックをアクティブにしたい
Excel(エクセル)
-
6
vba フィルター 複数条件 3つ以上 完全一致除外
Visual Basic(VBA)
-
7
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
8
エクセルで別ブックをバックグラウンドでオープンする方法
Excel(エクセル)
-
9
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
10
エクセルVBAで、MsgBox やInputBox は、画面の中央以外に表示させたい。
Excel(エクセル)
-
11
VBAでファイルを開くときにファイル名でワイルドカードを使用したいです
その他(プログラミング・Web制作)
-
12
VBA:ワークブックを変数でActiveにしたいのですが・・
Excel(エクセル)
-
13
【Excel VBA】マクロでExcel自体を終了させたい
Excel(エクセル)
-
14
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
15
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
16
ExcelのVBA。public変数の値が消える
Visual Basic(VBA)
-
17
新しく開いたブックをアクティブにするマクロ
Visual Basic(VBA)
-
18
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
19
エクセル VBA実行中のApplication.ScreenUpdatingについて
Excel(エクセル)
-
20
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【マクロ】アクティブセルの時...
-
VBAでブックを非表示で開いて処...
-
エクセルの関数 ENTERを押...
-
エクセルを共有するとPCによっ...
-
Excelでブックの共有を掛けると...
-
Excelファイルをダブルクリック...
-
Excelの新しい空白のブックを開...
-
Excel(2010)のフィルターが保...
-
Excelで複数ブックの同一セルに...
-
別ブックから入力規則でリスト...
-
Excel起動時に特定のワークシー...
-
エクセルファイルをオープンし...
-
エクセルで参照しているデータ...
-
Excelの警告について
-
同じフォルダへのハイパーリン...
-
VBAでブック保護非保護を判定す...
-
WorkBooksをオープンさせずにシ...
-
エクセルで別ブックをバックグ...
-
エクセルで50行ごとに区切った...
-
参照したいブックのパス名に"["
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでブックを非表示で開いて処...
-
エクセルを共有するとPCによっ...
-
エクセルの関数 ENTERを押...
-
Excelの警告について
-
Excelファイルをダブルクリック...
-
エクセルで参照しているデータ...
-
WorkBooksをオープンさせずにシ...
-
Excelでブックの共有を掛けると...
-
Excel(2010)のフィルターが保...
-
Excelで複数ブックの同一セルに...
-
エクセルファイルを開かずにpdf...
-
エクセルにおける,「ブック」...
-
同じフォルダへのハイパーリン...
-
エクセルで別ブックをバックグ...
-
フォルダ内の複数ファイルから...
-
VBA バックグラウンドで別ブッ...
-
エクセルでウィンドウの枠固定...
-
ブックのピボットを別ブックに...
-
フォルダ内の複数ファイルから...
-
エクセルで50行ごとに区切った...
おすすめ情報