2016.02.12みなさん、こんにちは!タカハシ(@ntakahashi0505)です。初心者向けエクセルVBAでInterneteExplorer(IE)を操作するシリーズです。前回はこちらの記事でIEを操作して、Yahoo!JAPANの検索窓でキーワード検索をする方法についてお伝えしました。初心者向けエクセルVBAでIEを操作するシリーズです。今回はIEを操作してWEBページ内の検索窓に任意のキーワードを入力して送信する方法をお伝えします。GoogleChromeの検証機能も活用しますよ!tonari-it.com2016.02.06今回は、その結果表示された検索結果ページから記事タイトルを抽出してみたいと思います。いうことで、エクセルVBAでIEを操作してYahoo検索結果一覧から記事タイトルを取得する方法です。前回のおさらいデベロッパーツールで作戦を練る検索結果ページから記事タイトルを取得するHTMLドキュメントからh3要素を取得するHTML要素の直下の子要素をコレクションで取得するYahooの検索結果ページの記事を取得するプロシージャまとめ連載目次:エクセルVBAでIEを操作してWEBスクレイピング前回のおさらい前回は以下のYahoo!ページで検索をするマクロを作成しました。JAPAN日本最大級のポータルサイト。検索、オークション、ニュース、天気、スポーツ、メール、ショッピングなど多数のサービスを展開。あなたの生活をより豊かにする「課題解決エンジン」を目指していきます。www.yahoo.co.jp作成したプロシージャがこちらですね。Sub実行すると、InputBox関数による入力ダイアログが表示され、そこに入力したキーワードでYahooの検索をしてくれます。今回は、その検索結果ページから記事一覧を取得していきますよ。デベロッパーツールで作戦を練るYahooの検索結果ページについて、デベロッパツールで確認して、どのように記事タイトルを取得するか作戦を練りましょう。ChromeでYahooを開いて、適当なワードで検索した結果ページで、デベロッパーツールを開きます。検索結果ページの記事タイトルはh3要素のようです。その配下にa要素があり、該当のページにリンクすることができます。「<h3」と入力してみると、ソース内のh3タグの件数を確認できます。件数をみると10件、実際の検索結果ページに掲載されている記事タイトルの件数と一致していますので、h3要素を全部取得すれば、目的の記事タイトルをすべて取得できるのでは?ということになります。検索結果ページから記事タイトルを取得するHTMLドキュメントからh3要素を取得するまず、検索結果ページのHTMLドキュメントからh3要素を取得します。これは、HTMLDocumentオブジェクトのgetElementsByTagNameメソッドで実現できますね。HTMLDocumentオブジェクト.getElementsByTagName(タグ名)以下記事でお伝えしたとおりです。【エクセルVBAでIE操作】hタグなどの要素をタグ名でGetするエクセルVBAでIEを操作する初心者向けのシリーズの6回目です。今回はタグ名で要素をゴソっと取得するgetElementsByTagNameの使い方です。様々なHTML要素を簡単に取得できます。tonari-it.com2015.10.14HTML要素の直下の子要素をコレクションで取得する今回の場合は、そのh3要素についてinnerTextを取得すれば記事タイトル自体は取得できるのですが、せっかくなので記事タイトルだけでなく、リンクURLも取得しましょうか。なると、h3要素の配下のa要素を取得する必要があります。h3要素はHTMLHeadElementオブジェクトですので、それに対して、さらにgetElementsByTagNameでa要素を取得しても良いのですが、h3要素の配下の要素、すなわち子要素はa要素ひとつなので、この状況を利用しましょう。特定のHTML要素について、Childrenプロパティを使うことで、その直下の要素をコレクションとして取得できます。今回の場合は、HTMLHeadElementオブジェクトになりますから、書式は以下の通りです。HTMLHeadElementオブジェクト.Childrenこれで取得できるのはコレクションになりますが、子要素はひとつなので丸かっこでインデックス0を指定すれば、a要素を単体オブジェクトとして取得できますね。Yahooの検索結果ページの記事を取得するプロシージャということで、冒頭のプロシージャに加えて、検索結果ページの記事タイトルとそのURLリンクを取得する処理を追加しました。Sub25~30行目が今回解説した内容をもとに作った処理ですね。Each文でループを回し、Childrenプロパティでa要素を取得しています。読み込み待ちの処理は複数回必要になりましたので、WaitというSubプロシージャに分離しました。実行すると、以下のように記事一覧とリンクURLがイミディエイトウィンドウに出力されます。まとめ以上、エクセルVBAでIEを操作してYahoo検索結果ページから記事タイトルとURLを取得する方法をお伝えしました。なんとなくおわかりだと思いますが、デベロッパーツールで目的のモノを取得できることが見いだせたのであれば、もうプログラムの大方は出来上がったと言っても良いですね。次回は続きになりますが、せっかくなので記事詳細も取得してみたいと思います。お楽しみに!連載目次:エクセルVBAでIEを操作してWEBスクレイピングIEを操作してWEBページのデータを取得して、エクセルのデータとして取り込む、つまりWEBスクレイピングをエクセルVBAで実現します。各種WEBページを課題として様々なデータの取得の仕方を解説していきたいと思います。プランノーツ代表、コミュニティ「ノンプロ研」主宰。ITで日本の『働く』の価値を上げる!」をテーマに、VBA&GASの開発、講師、執筆などをしております。→詳しいプロフィールはコチラ★ご依頼・ご相談はお気軽にどうぞ!→お問い合わせはコチラ★フォロー頂ければ嬉しいです。「コミュニティ+講座」形式で継続性&教え合える環境も提供。!ノンプログラマーがプログラミングスキルを身に着ける支援ををするコミュニティ。セミナー・もくもく会・Facebookグループのサポートで「自らで学び続ける力をつける」支援、「教え合うことで学びの価値を上げる」場の提供をしています。初心者向けエクセルVBAで請求書を作成するシリーズ。今回は、エクセルVBAで頻繁に取り扱うワークシートを「オブジェクト名」を使って指定する方法です。オブジェクト名とは何か、またその編集方法もお伝えします。URLDownloadToFile関数を使った指定ファイルを指定フォルダにダウンロードする方法をご紹介しています。この方法を使えば、ダウンロード対象のファイルが複数あったとしても、ボタンクリック一つで一気にダウンロードできますよ。【エクセルVBA】指定した範囲内から値を検索するFindメソッドとその使い方エクセルシートに入力した値から、VBAのFindメソッドを使ってシート内を検索し、結果を返す方法をご紹介しています。Findメソッドは部分一致or全体一致、列方向or行方向など検索の条件を色々指定できて使い勝手が良いのでオススメですよ。2018.06.27Excel・VBA活用術エクセルVBAで印刷範囲の設定をする方法とクリアをする方法エクセルVBAでPDF出力や印刷をする際の様々なテクニックをお伝えしています。今回はPageSetupオブジェクトで印刷範囲の設定する方法と印刷範囲のクリアをする方法です。範囲は文字列で指定しますよ。2016.04.20Excel・VBA活用術エクセルVBAでPowerPointのテキストボックスに文字を入力するエクセルVBAでPowerPointを操作する方法についてシリーズでお伝えしています。今回はシェイプ操作の初級編、エクセルVBAからPowerPointスライドのテキストボックスの文字を入力する方法です。2016.09.15Excel・VBA活用術データが増減しても大丈夫!入力規則のリストで参照範囲を自動変更するテクニックデータ入力の際に便利な入力規則のリスト。項目の増減によって参照範囲の変更していませんか?OFFSET関数・COUNTA関数を組み合わせて使った参照範囲を自動で変更してくれる小技をご紹介いたします。「コミュニティ+講座」形式で継続性&教え合える環境も提供。詳細・お申込はこちら隣ITを応援する当ブログを「応援したい!」「役に立ったよ!」というお気持ちを、コチラからお支払いただくことができます。日々更新の活力倍増いたします。※PayPalアカウントが必要です。※金額は変更可能です。Platform23HTML・CSS32iPhone・アプリ29Monaca・スマホアプリ開発7PC全般・Windows86PowerPoint・VBA28Python87RPA1VBScript15Vue.js・JavaScript13WEBサービス・クラウド68WordPress・ブログ88Word・VBA42コミュニティ・イベント109セミナーのお知らせ11チャットワーク72データ分析・アクセス解析40仕事・生産性・働き方73動画配信8商業出版21起業・フリーランス72電子書籍・Kindle3運営会社プランノーツは"IT×働き方改革"をお手伝いする会社です。「コミュニティ+講座」形式で継続性&教え合える環境も提供。詳細・お申込はこちら隣ITを応援する当ブログを「応援したい!」「役に立ったよ!」というお気持ちを、コチラからお支払いただくことができます。日々更新の活力倍増いたします。※PayPalアカウントが必要です。※金額は変更可能です。Platform23HTML・CSS32iPhone・アプリ29Monaca・スマホアプリ開発7PC全般・Windows86PowerPoint・VBA28Python87RPA1VBScript15Vue.js・JavaScript13WEBサービス・クラウド68WordPress・ブログ88Word・VBA42コミュニティ・イベント109セミナーのお知らせ11チャットワーク72データ分析・アクセス解析40仕事・生産性・働き方73動画配信8商業出版21起業・フリーランス72電子書籍・Kindle3運営会社プランノーツは"IT×働き方改革"をお手伝いする会社です。Scriptが「V8ランタイム」をサポート!モダンなECMAScript構文が使えるようになった2020.02.072020.02.08GASでコピーしたGoogleスライドのプレゼンテーションを取得する方法2020.02.052020.02.05Facebookページいつも隣にitのお仕事タイトルとURLをコピーしました。