エクセルVBAでIEを操作するクラスに検索入力&ボタンクリックのメソッドを追加する方法


みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。

エクセルVBAでIEスクレイピングをするときに便利なクラスの作り方をお伝えしております。

前回の記事はこちら。

エクセルVBAでIEを操作するクラスにWebページのテーブルデータをシートに書き出すメソッドを追加する
エクセルVBAでIEスクレイピングをするときに便利なクラスの作り方のシリーズです。今回はエクセルVBAによるIEを操作するクラスにWebページのテーブルデータをシートに書き出すメソッドを作成していきます。

エクセルVBAのIEクラスにWebページのテーブルデータをシートに書き出すメソッドを追加しました。

さて、今回は少し方向性を変えまして、検索窓へのテキスト入力とボタンクリックをしてみたいと思います。

ということで、エクセルVBAでIEを操作するクラスに検索窓の入力&ボタンクリックのメソッドを追加する方法です。

では、行ってみましょう!

前回のおさらい

では、まずはおさらいから。

IEを操作するクラスIEObjectはこちらです。

前回作成したのは、WriteTableDataメソッドで、table要素を表すHTMLTableオブジェクトと、書き出しの基点となるRangeオブジェクトを渡すと、テーブルデータをセルに書き出すというものでした(今回の内容で関わるメンバーだけ掲載しています)。

確認用の標準モジュールのSubプロシージャがこちらです。

Yahoo!で検索をする機能をクラスに追加する

今回は、「Yahoo!JAPAN」の検索窓から任意の文字列で検索をするという処理を作成していきます。

Yahoo! JAPAN
あなたの毎日をアップデートする情報ポータル。検索、ニュース、天気、スポーツ、メール、ショッピング、オークションなど便利なサービスを展開しています。

Yahoo!JAPANの検索窓と検索ボタン

検索窓は「srchtxt」というidを持つtextタイプのinput要素、検索ボタンは「srchbtn」というidを持つsubmitタイプのinput要素です。

なので

  • idで要素を取得して値を入力するメソッド
  • idで要素を取得してクリックするメソッド

この2つを作って組み合わせていけば良さそうです。

詳しくは以下記事もご参考くださいませ。

【エクセルVBAでIE操作】IEで検索窓にキーワードを入力して送信する方法
初心者向けエクセルVBAでIEを操作するシリーズです。今回はIEを操作してWEBページ内の検索窓に任意のキーワードを入力して送信する方法をお伝えします。GoogleChromeの検証機能も活用しますよ!

指定のidの要素の値を入力するメソッド

では、まず指定のidの要素にテキストを入力するメソッドからです。

引数としては、要素を特定するためのidと、入力する値をいずれも文字列型で渡します。

けっこうシンプルですね。

指定のidの要素をクリックするメソッド

次に、指定のidの要素をクリックするメソッドです。

こちらはクリックするだけなので、引数はidだけですね。

クリックすると画面遷移しますので、既にあるWaitメソッドを拝借して読み込み待ちをしています。

また、Documentのセットもします。

Yahoo!検索を行うメソッドの動作確認

では、Yahoo!で検索を行うメソッドの実行確認していきましょう。

以下のSubプロシージャを実行します。

実行すると、まず入力ダイアログが表示されます。

Yahoo!検索するキーワードを入力するダイアログ

キーワードを入力して「OK」をクリックすると、IEでキーワードの入力とボタンクリックが動作して、以下の検索結果ページが表示されました。

IEを操作してYahoo!検索結果ページを表示

まとめ

以上、エクセルVBAでIEを操作するクラスにYahoo!検索を行う入力&クリックのメソッドを追加する方法をお伝えしました。

なんとなく、入力とクリックを同じメソッドに機能持たせたくなってしまう気もしますが、そこはぐっとこらえて別々にします。

というのも、メソッドは汎用性があるほうが良いので、他のケースでも使えるようにしといたほうがいいんですね。

次回は、ログイン処理をするメソッドの作り方を紹介します。

エクセルVBAでIEを操作するクラスにログイン処理をするメソッドを追加する方法
エクセルVBAでIEスクレイピングをするときに便利なクラスの作り方をお伝えしております。今回は、エクセルVBAでIEを操作するクラスに、ログイン処理をするメソッドを追加する方法をお伝えします。

どうぞお楽しみに!

連載目次:エクセルVBAでIEを操作するクラスを作る

エクセルVBAでInternetExplorerを操作してWebスクレイピング、まだまだ現役で必要となる現場もあるでしょう。このシリーズでは、IEを使ったスクレイピングをするときに便利なクラスの作り方をお伝えします。
  1. エクセルVBAでIEを操作するもっとも簡単なクラスを作成する方法
  2. エクセルVBAでIEを操作するクラスでWebページを開くメソッドを追加する
  3. エクセルVBAでIEを操作するクラスに読み込み待ちとドキュメント取得の機能を追加する方法
  4. エクセルVBAでIEを操作するクラスにname属性で取得した要素から内容を取り出すプロパティを作成
  5. エクセルVBAでIEを操作するクラスにリンクテキストでa要素を探してリンクする方法
  6. エクセルVBAでIEを操作するクラスにテーブルのデータを取得するメソッドを追加する方法
  7. エクセルVBAでIEを操作するクラスにWebページのテーブルデータをシートに書き出すメソッドを追加する
  8. エクセルVBAでIEを操作するクラスに検索入力&ボタンクリックのメソッドを追加する方法
  9. エクセルVBAでIEを操作するクラスにログイン処理をするメソッドを追加する方法
  10. エクセルVBAによるIEを操作するクラスに指定秒数の待ち時間を入れるメソッドを追加する

タイトルとURLをコピーしました