ALL EXCEL Program VBA

【解説付】EXCEL-VBAでWebページからのメッセージのOKを押す方法

はじめに

EXCEL VBAでIE(InternetExploer)を制御する方法について触れようと思います。
本ブログ記事は、Crowd Works で納品まで行い、実際にお金になったコードを元に紹介します。

本記事でできること

EXCEL-VBAにおけるDOM(Document Object Model)でのブラウザ制御で、
Web からのメッセージの"OK”ボタンを押下することができます。

 

別方法も記事にしました

本記事の内容で 上手く行かないケースがある場合は、こちらの記事も試してみて下さい

【EXCEL】VBA-IE制御でWebページからのメッセージのOKを押す方法【JavaScriptを使う】

続きを見る

VBAでJavaScriptを利用し制御する方法を紹介しています。(JavaScriptを知らなくてもOK)

 

 

Webページからのメッセージとは?

VBAでWebブラウザ制御の自動化プログラムを作成するにおいて、たまにWeb制御ではなく、システム制御をしないといけない場合があります。
例えば このようなウィンドウです。

Webブラウザだけの制御しか知らなかった当時の僕は、
この『Webページからのメッセージ』をWebブラウザと思い込んでて、
Google検索などでたくさん探したのですが 全くの見当違いの調べ方だったことから途方にくれてました。

プログラム初学者にとってGoogle検索やプログラム書籍などで直感的に調べることができないのがプログラムスキル取得のおいてのハードルを上げる要因だと未だに思っています。

 

コード

コードの説明

途中のコードは省きましたが、システムダイアログのウィンドウがWebブラウザ制御(IEブラウザ制御)で出現したら、↑のコードを元に試してみましょう。
この際の注意点ですが、Sub〜EndSubの本番プログラムの手前に、システム制御を行うためのプログラムを記載しておいて準備が必要です。

Private Declare Function で事前に宣言していたシステム制御プログラムは、Sub〜EndSub内で使用可能となります。
実際に、Webブラウザ制御で、システムダイアログが発生したら、以下のコードを記載しましょう。

解説は、コード内のコメントのとおりですが、カンの良い人であれば、
システムダイアログのウィンドウタイトルが
『Web ページからのメッセージ』ではなく、
『本当に 良いですか?』や『警告』といったウィンドウタイトルだった場合も
応用が効くのではないかと気づくと思います。

結論、応用可能です。

仮にウィンドウタイトルが『本当に 良いですか?』だった場合(あまり無いと思いますが)、
hWindow = FindWindow("#32770", "本当に 良いですか?")
と差し替えてあげれば制御が可能(なはず)です。

オススメ書籍(もっとIEブラウザ連携知りたい人向け)

EXCEL VBAにおけるIEブラウザ連携でオススメする書籍をご紹介します。

この書籍はIEブラウザ連携の逆引きコードとして利用できる稀有な書籍ですので1冊持っておくだけで、
コーディングにおいて かなり効率が良くなります。

今回紹介したソースコードの直接的な説明はありませんが、
ヒントになる情報は十分に有り コードを完成するまでに至りました。

インターネットだけでは分かり得ない体系的な情報も合ったりなど、
ハッキリいってコスパが良いで代物だと思っています。

DOM(Document Object Model)の書籍は数が少ないというものありますが、
良書であることは間違いないため、
DOMで効率化を図りたい人ならば1冊は持っておいて損はしないと思います。

また、IEブラウザ連携は 専門用語が多くわかりにくい分野でもありますので、
もし コーディング効率をあげつつ、専門用語についても学びたいのであれば、
この1冊で一石二鳥ですのでオススメします。 

終わりに

いかがでしたでしょうか。
今後もVBA↔IEブラウザ制御については需要があると思いますので、投稿していこうと思います。
また、プログラムの難しさは、独学するにおいて 自分のやりたいことが専門用語で書かれているケースが多く、直感的に調べることができないことだと思っています。
ゆくゆくは『 1から始めるVBA ↔IEブラウザ 連携 講座』もシリーズものとして、なるべくわかりやすい内容のもので投稿しようと考えますので、よろしくお願いいたします。

ちょっとだけ宣伝

こちらは宣伝になりますが、
プログラミング学習(全般)における間違えない学習方法理由を含めて説明した記事がございます。
当然 無料ですので、学習方法において不安に感じている方がいらっしゃれば 是非ご覧くださいませ。


少しでも読者の方の役に立てれば良いなと考えておりますので、
重ね重ねになってしまいますが、今後とも本ブログをどうぞよろしくお願いいたします。




-ALL, EXCEL, Program, VBA
-, , , , , , , , , ,