【Excel-VBA】IE操作・スクレイピングのプログラミングの書き方を理解しよう!

2020年2月9日

Excel-VBA を活用して、IEを操作したい皆様へ。

ユーザー
ユーザー
Excel VBAを活用して、IEのホームページの画面を操作したい。でも、どのように操作するかわからないな~。

そんなあなたの悩みにお答えして、IE操作そしてスクレイピングのプログラミングの記述方法を解説していこうと思います。

IEの作成手順を理解しよう!

IEの基本的な作成手順を理解しておきましょう。

IE・スクレイピングの主な4つの手順
  1. IEを起動する
  2. htmlソースをなめる
  3. 目的のメソッドを取得する
  4. IEを閉じる

 

まず、IEを起動する処理を記述します。次に、htmlソースを読み込む処理を記述しますが、この時、ボタンをクリックする処理、テキストに入力する処理これらを把握していれば、ある程度操作が可能になります。

これらの処理を記述する基本的なメソッドを覚えておきましょう。

そして、IEの画面を転移(移動)したり、IEを閉じる処理を記述しましょう。

 

IE操作に必要な参照設定変更箇所

続いて、IEを操作するための参照設定についてみていきましょう。

IEを操作する際には、そのプログラムを動作する環境が必要です。

その設定がこの「参照設定」で行うことができます。

 

<IE操作に必要な参照設定について>

  • IE control 6.0

 

にチェックを入れて、エクセルを保存して、再度立ち上げましょう。

これで、IEのプログラミング環境が整いました。

逆に言うと、この設定をしておかないと、プログラミングを記述してもエラーになりますので必ず設定を忘れないように!

 

IE操作に必要なメソッドについて理解しよう!

それでは、実際にプログラミングを作成して、IEから情報を取得するためのメソッドを覚えていきましょう!

まず使用するメソッドはこちら

<IE操作に必要なメソッド5つ>

  • IE起動           : Set objIE = CreateObject(“InternetExplorer.application”)
  • URL起動         : objIE.navigate URL名
  • ボタンを探索してセット   : Set objINPUT = objIE.Document.getElementsByTagName(“INPUT”)
  • テキストボックスに名称セット: objIE.Document.All.テキストボックス名.Value
  • ボタンを検索してクリック  : objIE.Document.All.ボタン名.Click ‘クリック

 

これらの記述をまぜ合わせることで、検索ボタンを探索して、押下したり、テキストボックスに値を入力することができるようになります。

但し、この名称は、サイトによってもボタンのID名が異なっていますので、プログラムソースから確認しましょう。

 

プログラミングの記述方法

それでは、実際にスクレイピングのVBAのプログラミングの記述方法について、解説していきましょう。

【IE操作の記述方法はこちら】

 

また実際に、楽天サイトに自動ログインして、自動検索して、ポイントを貯めるスクレイピング方法とそのプログラミング方法も、今後Noteに公開していこうと思っておりますので、ぜひ挑戦されたい方は、ぜひ後ほど公開予定です。ぜひお楽しみ(^^)

4ヶ月自動で動かせば、すぐに元が取れるので、プログラミングの勉強と楽天ポイント稼ぎをされている方にはぜひこの機会にどうぞ(^_^)

 

IE操作する際の注意すべき点とは

IE操作する際には、まず最初に注意するべきことがあります。

それは、サイトのソースをきちんと確認することからはじまります。それはなぜか?

その理由には、下記3つのことが挙げられます。

<IE操作において注意すべき3つのこと>

  • JavaScriptで記載されている
  • フレーム化されている
  • IEのバージョンによってメソッドが動作しない場合がある

 

IEサイト側も、スクレイピングを嫌がるところもあるため、サイトのソースをまめに変更する企業もあります。

そうすることで、情報が突然取得できないこともありますので、エラーが起こった場合には、すぐに確認するようにしましょう!

またサイトがフレーム化されていることで、メイン画面からソースを読めなかったり、javascriptで記載されているものは、VBAでは、容易に操作ができません。

 

まとめ

スクレイピングを行うには、VBA環境の設定が必要不可欠で、サイトによっても情報を取得できないこともありますので、正しい知識を習得した上でスクレイピングに挑戦してみてくださいね。