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ブラウザ 連携 講座』もシリーズものとして投稿していくつもりですので、今後とも どうぞよろしくお願いいたします。




  • この記事を書いた人

Nakamura(nkmr)

ブロガー│NakamuraBlog(ナカログ)運営 [月1.5万PV]│ 【経歴】IT会社に新卒入社 ▶︎ 通用しない ▶︎ プログラミングに出会う ▶︎ 年間1億円以上のコスト削減プログラムを開発 ▶︎ 会社賞受賞 ▶︎ 少しでも世の中の苦しんでる私と似た人に役に立てればと思いブログを開設。 ● 文系がプログラムと出会って会社員人生が変わった人。 ● 2020年より「嫁を置いて1人旅」の旅動画を投稿開始。

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