• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAで指定したブックを前面に表示するには)

VBAで指定したブックを前面に表示する方法

このQ&Aのポイント
  • VBAを使用して、指定したブックを前面に表示する方法を知りたいです。具体的には、ブックAとブックBがあり、ブックAのマクロの途中でInputBoxでブックBのセルを選択させて処理終了後に再びブックAを前面に表示したいです。
  • 現在のコードでは、ブックBが前面に表示されてしまい、処理が終了してしまいます。InputBoxの挙動が関係していると思われますが、原因がわかりません。ExcelのバージョンはOffice365(バージョン 1902)です。
  • 要約文章の内容をまとめると、VBAを使用してブックAのマクロの途中でInputBoxでブックBのセルを選択させ、処理が終了後に再びブックAを前面に表示する方法を知りたいです。現在のコードでは、ブックBが前面に表示されてしまい、処理が終了してしまいます。ExcelのバージョンはOffice365(バージョン 1902)です。

質問者が選んだベストアンサー

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率66% (1725/2595)
回答No.2

A、B、両方開いてブックBのセルを選択した後にInputBoxのOKを押した途端にブックAが前面になり、MsgBox "処理完了"が出ます。 途中の処理に何かあるのかもしれません。 MsgBox "処理完了" の前後か ThisWorkbook.Activate の前後に AppActivate Application.Caption を入れてみてはいかがでしょう。 参考にしたサイトのリンクを張っていたのですが、リンクを張ると監査が入って回答が即表示されないサイトだったのでリンクを外して再回答します。

fxgame1224
質問者

お礼

ありがとうございます! AppActivate Application.Caption で解決しました!

fxgame1224
質問者

補足

『VBA ブックを前面に』などのキーワードで探したつもりだったのですが見つけられませんでした。 AppActivateは調べてたのですが、ウィンドウ名の指定を誤ったのか うまく動かず。。 Application.Captionで動的に持ってこれるんですね。 もし良ければ後学のため、 参考サイトのリンクを(時間かかっても構わないので)教えてもらえませんが?

その他の回答 (3)

  • kkkkkm
  • ベストアンサー率66% (1725/2595)
回答No.4

> 参考サイトのリンクを(時間かかっても構わないので)教えてもらえませんが? 私が検索した語句は vba 前面に表示 で、Googleで上から4つ目にありました。 ExcelVBAで他のアプリを起動したあとに、マクロ動かしてるExcelを手前にもってきたい件 で検索すると一番上に出てくると思います。 URLを以下のような書き方にしたら通るかもしれないので https://qii??.com/ditflame/items/9ca1fb78de4dbba7bc4c ?にアルファベットを入れてください。??=ta

fxgame1224
質問者

お礼

ありがとうございます!勉強します!

  • kkkkkm
  • ベストアンサー率66% (1725/2595)
回答No.3

No2の の前後に は の前後のどちらかに です。

  • kkkkkm
  • ベストアンサー率66% (1725/2595)
回答No.1

2013ですが、質問のコードのままVBEの画面で実行するとVBEに戻りブックBがAより前になっていますが、VBEの画面を非表示にし、ブックAを前面に表示した状態でタブのマクロの実行をするとブックAが最後に前面に来ます。 念のためにブックAのセルを最後に選択するようにしてみてはいかがでしょう。

fxgame1224
質問者

お礼

早々の回答ありがとうございます。 バージョンによって挙動が変わるのでしょうか・・。

fxgame1224
質問者

補足

コードの最後に ThisWorkbook.Worksheets(1).Range("A1").Select を加えて、VBE画面を×で閉じて、開発タブのマクロ実行してみましたが、 変わらずブックBが前面に表示されます。 (ちなみにブックAは隠れたままでしたが、想定通りにA1セルが選択されました) 念のため補足ですが、 ブックA、ブックBを両方開いた状態で、マクロを実行しています。

関連するQ&A