ALL EXCEL Program VBA

【解説付】EXCEL-VBAで"アップロードするファイルの選択"を制御する方法(方法①)

はじめに

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

本記事でできること

EXCEL-VBAにおけるDOM(Document Object Model)でのブラウザ制御内で発生する、
"アップロードするファイルの選択"のシステムダイアログウィンドウを制御することができます。

アップロードするファイルの選択とは?

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

Webブラウザだけの制御しか知らなかった当時の僕は、
この『アップロードするファイルの選択』をWebブラウザと思い込んでました。
Google検索などでたくさん探したのですが 全くの見当違いの調べ方だったことから途方にくれる結果に。。。

また、私が制御したかった"アップロードするファイルの選択"を出現させる
Webブラウザのボタンがやっかいで、
通常のWeb制御(clickメソッドとか)で ボタンを押下したらWebブラウザ制御が解けずにシステムダイアログを制御するVBAコードまでプログラム実行がたどり着かず ずっと止まった状態に。。。

つまりは、Webブラウザ側に制御が持っていかれて動かない場合は、
Web制御が解ける形でボタンをクリックしてシステムダイアログ制御に移行させるプログラム が必要だったわけです。
(日本語が下手ですみません)

僕自身の日本語が下手なのが問題とは思うのですが、
プログラム初学者にとってGoogle検索やプログラム書籍などで直感的に調べることができないのがプログラムスキル取得のおいてのハードルを上げる要因だと思いますので大目に見ていただけると助かります。

コード

コードの説明

↑のコード内のコメントに説明を記載しておりますので、そちらを参照ください。

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

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

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

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

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

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

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

 
  

終わりに

いかがでしたでしょうか。

正直、今回 ご紹介した記事内のコードですが"理解"より先に"体験"してみることが大事かなと思います。
個人的には、理解せずに割り切っても良いかなとも思ってます。

今後もVBA↔IEブラウザ制御については需要があると思いますので、投稿していこうと思います。
また、プログラムの難しさは、独学するにおいて 自分のやりたいことが専門用語で書かれているケースが多く、直感的に調べることができないことだと思っています。

ゆくゆくは『1から始めるVBA ↔IEブラウザ 連携 講座』もシリーズものとして、なるべくわかりやすい内容のもので投稿しようと考えますので、よろしくお願いいたします。

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

ちょっとだけ宣伝

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


参考記事


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

続きを見る


【解説付】EXCEL-VBA 既にタスクバーにあるIEブラウザをobject変数に格納する

続きを見る




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