Google Chromeを開いて閉じる

2018年12月7日

記事の概要

ExcelvbaからGoogle Chromeを開く記事は結構あるのですが、開いて閉じるまでの流れが無かったので、何かの事情でseleniumを使えない人向けに残しておきます。
処理の流れを流用すれば、他言語でも使用できます。

ソース

Googleのトップページを開き、5秒後に閉じるサンプルです。
標準モジュールを作成し、コピペすれば使用できます。

ソースの説明

APIの宣言と定数の宣言の説明は省きます。

メイン処理です。特筆することは特にありません。
Google Chrome表示関数をコール、その後5秒待機し、Google Chromeを閉じる関数をコールします。

 

Google Chromeを開く関数です。
レジストリからGoogle ChromeのGoogle Chromeのexeの場所を取得しているところがミソです。

 

Google Chromeを閉じる関数です。
全ウィンドウを処理し、ウィンドウタイトルに”Google Chrome”と入っているウィンドウに対して閉じるメッセージを送ります。

ウィンドウタイトルが長い場合は、ウィンドウを閉じることができません。
その際は「Dim MyName As String * 128」の128部分を増やすと閉じるようになります。
※ウィンドウタイトルの文字列長を取得しGetWindowTextの第3引数として渡すことでよりスマートなコードとなります。ぜひチャレンジしてみてください。

HTMLの取得

Google Chromeに対して外部からHTMLを取得することは原則できません。

「Selenium」をインストールすることで、HTMLを取得したりブラウザの操作ができるようになりますが、Google Chromeのバージョンアップにより動作しなくなる恐れがあるため、以下のChrome拡張機能を作成しました。お使いください。

webページが表示された後、表示したページのHTMLをクリップボードへコピーします。
JavaScriptが動的に生成したHTMLも取得可能ですが、拡張機能の動作タイミングを調整していないのでJavaScriptの動作が遅い場合などは、動作前のHTMLを取得します。ご了承ください。