- ベストアンサー
マクロでyahooのフォームをサブミット、ソースから単語検索
お願い致します。 エクセルマクロ(VBA)を使い、IEでyahoo.co.jpのページを立ち上げ、 用意してある検索文字列をフォームにセットしフォームをサブミット、 検索結果ページのhtmlソースを取得し、 そのソースに"ListRow"という文字列が何回出現するかを 戻り値として受け取り、エクセル表上に出力したいです。 1つできれば用意する文字列を増やしてループを回してそれぞれの場合の出現回数を表示します。 特に、ブラウザの立ち上げからフォームに値をセットしてサブミットまではやったことがあるので、結果ページのhtmlを取得するところを知りたいです。できればそのソースに"ListRow"という文字列が何度出現するかのロジックも・・・ よろしくお願い致します。m(_ _)m
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 >そのソースに"ListRow"という文字列が何回出現するかを >戻り値として受け取り、エクセル表上に出力したいです。 buf = objIE.Document.body.innerHTML '(または、.Document.Body.InnerText) '取得した buf に、 tmp = Replace(buf,"ListRow","") ''大文字小文字が関係ないなら、Replace(buf, "ListRow", "", , , 1) n = (Len(buf) - Len(tmp))/Len("ListRow") として、出てくるはずです。 なお、言うまでもなく、 objIEは、 Set objIE = CreateObject("InternetExplorer.Application") のことで、インターネットに、URLでアクセスしてからの話ですから、必要な項目は、検索でお調べください。
その他の回答 (3)
- marbin
- ベストアンサー率27% (636/2290)
>Submit からWebソース取得の間に、結果ページ表示完了まで待つ、という 処理が必要になります。 コードは・・・・。 今手許にありません。 ネット検索したら簡単に見つかるかも。
お礼
もし状況がビジーだったらというロジックを加えました。 ありがとうございました。
- marbin
- ベストアンサー率27% (636/2290)
>できればそのソースに"ListRow"という文字列が何度出現するかのロジックも・・・ 試してないですが、取得したソースを >"ListRow" でSplitしたUboundを取得、でいけそうな気がします。
- marbin
- ベストアンサー率27% (636/2290)
ソース取得については↓が参考になると思います。 http://www.f3.dion.ne.jp/~element/msaccess/AcTipsVbaXMLHTTP.html
お礼
なるほど、文字数を数えるのですか~!! 発想しだいですね。 ありがとうございました