ALL EXCEL Program VBA

【解説付】VBA-IEブラウザを変数へ格納する方法【EXCEL】

はじめに

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

本記事でできること

この制御についてですが、IEブラウザを掴むところ までになります。
掴むという表現ですが、IEブラウザ をVBAで 指定してあげることを指します。VBAでIEを制御するには、それぞれ独立したEXCELとIEブラウザを リンクさせてあげる必要があり、このことを「掴む」という表現にしています。

VBAでIEブラウザを制御(掴む)コード

どのようにVBAでIEブラウザを掴むのか。
主に、2つの方法があります。


1つ目:IEブラウザを新規で立ち上げるパターン
2つ目:既に 開いているIEブラウザをタスクバーから探して制御するパターン

<1つ目のパターン>

 

<2つ目のパターン>

 

紹介したコードが2つあるけど、どちらがオススメなの?

私の主観ですが、2つ目の方法が便利です。

CrowdWorksで作成する分には
依頼者と会話して貰いどちらのコードを利用しても良いのですが、
企業( 勤務先)で作成することを想定した場合、
セキュリティポリシーを気にする必要があるからです。

会社によってセキュリティポリシーが異なるため一概には言えませんが、
VBAで『社内システムにログイン→社内システムを制御 』するプログラムを立てる場合、

1つ目の方法だと社内システムにログインするID・PWを VBA側に組み込んで作成するケースだと、
セキュリティポリシーに引っかかる可能性があります。
(第三者にID・PWを知られる恐れがある。 ここは組み方次第ですが、EXCEL側にID欄・PW欄を空欄で作り 、利用者に入力させる方式を取れば 大丈夫だったり。)

2つ目の方法だと、 事前に社内システムへログインした状態にしてから、プログラムを 起動させる仕様にしておけば、セキュリティポリシーを意識しないで良くなり楽です。

余談①:VBAのIE制御をすることでできること-その1-

VBAでIEを掴むことで、さまざまなことを行える下準備ができます。
下準備ができなければ、その上にのっかるVBA↔IEブラウザの連携はできません。
(実際のVBA↔IEブラウザ間の 情報の連携方法は別記事でまとめる予定です。)

余談②:VBAのIE制御をすることでできること-その2-

VBA でIEを制御することで、
IE(InternetExploer)から情報を抽出しEXCELへ反映させる準備ができます。
また、EXCELの情報をもとにIEへ情報を投入する準備ができます。
他にもいろいろと細かいことができますが、
実益がある具体的な例をあげると以下のことをできます。
 

    【できること】
  • 株価のサイト(IEブラウザ)から指定企業の株価を抽出し、EXCELへ反映
  • 楽天市場やAmazon(IEブラウザ)から指定商品の情報を抽出し、EXCELへ反映
  • ○○サイト(IEブラウザ)から全情報抽出し、EXCELへ反映
  • EXCELで記載した 商品を、楽天市場やAmazon(IEブラウザ)で注文
  • EXCELに入力した納品データを、社内Webシステム(IEブラウザ)で投入

もしWebサイトから情報を収集したい場合、一般的なWebサイトでは、
CSVダウンロードなどの機能がなく、手動によるコピー&ペーストで情報を収集するのが一般的だと思います。
プログラムを組んでしまえば ワンクリックで処理を代行してくれるため、
プログラムが起動している間 に別作業を行えば最高の生産性を出すことができます。

終わりに

いかがでしたでしょうか。
今後もVBA↔IEブラウザ制御については需要があると思いますので、投稿していこうと思います。
また、ゆくゆくは『 1から始めるVBA ↔IEブラウザ 連携 講座』もシリーズものとして投稿していくつもりですので、今後とも どうぞよろしくお願いいたします。




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