前提・実現したいこと
指定のURLをChromeで開いて、「なんやかんや」して、終了のメッセージを出す。というマクロを作成しています。
「なんやかんや」は、問題なく実行できるため、後述のコードからは省いています。
問題は、マクロ終了時にChromeがアクティブなため、メッセージを出してもChromeの後ろに隠れてしまい終了したかどうかが見た目で分かりにくい点です。
理想としては、マクロを実行しているExcelがアクティブのまま、バックグラウンドでChromeを起動できれば、終了メッセージが最前面に出てくると思うのですが…。
最終的にマクロ終了時に終了メッセージが出たことが分かればいいので、途中でChromeがアクティブになり、Excelに戻るなどの動作ができれば、それも有りと思っています。
開きたいリンクが、Chrome以外で正常に開けない不具合があるため、他のブラウザでの代替は考えていません。
また、Seleniumは別途ダウンロードが必要になるため導入は考えていません。
発生している問題
Runメソッドを使用してChromeを起動しようとしましたが、intWindowStyleの引数に、アクティブウィンドウを切り替えない値を使用しているにもかかわらず、chromeがアクティブで起動します。
マクロ終了時までChromeがアクティブなため、メッセージを出してもChromeの後ろに隠れてしまい終了したかどうかがわかりません。
該当のソースコード
visual
1Sub ChromeOpne() 2 Dim HPurl As String 3 HPurl = "https://www.google.com/" 4 Call CreateObject("WScript.Shell").Run("chrome.exe -url" & HPurl, 4) 5 MsgBox ("処理が終了しました") 6End Sub
実際は、変数にURLの書かれたセルの値を入れて開くというマクロですが、このコードだけで動くように書き換えています。
試したこと
以下の記述を処理前に挟んでみましたが、chromeには意味が無いようでした。
visual
1Application.ScreenUpdating = False 2Application.EnableEvents = False
https://docs.microsoft.com/ja-jp/previous-versions/windows/scripting/cc364421(v=msdn.10)
引数の箇所は、こちらのリンクを参考に記述しました。
引数は4の他、7も試しましたが変わりありませんでした。
「すべてのプログラムがこの情報を使用するわけではない」との記述があるので、この方法は使えないのかもしれません…。
補足情報(FW/ツールのバージョンなど)
######Excelバージョン
Microsoft® Excel® for Microsoft 365 MSO (バージョン 2109 ビルド 16.0.14430.20314) 64 ビット
######Chromeバージョン
96.0.4664.110(Official Build) (64 ビット)
回答2件
あなたの回答
tips
プレビュー