dポイントプレゼントキャンペーン実施中!

初めまして。
質問について、サイトに記載されている商品の納期を調べていますが、
点数が2万点近くあるため、出来る限り機械的に処理ができないか模索しています。

流れとして、
1.手元にexcelでのデータリストがありその中の品番をコピーする。
2.ブラウザから該当サイトにアクセス(入力窓に記憶させておくことはできますが、ログインさせることは必須です)。
3.WEB上の指定の窓に1の品番を貼り付け(か入力)て検索ボタンを押す(Entだとなぜか1つ前の履歴が表示されるため検索ボタンを押します)。
4.ヒットしたページのソースから「標準納期」の文言を探し、同じ行にある日数を見つけて取得する。
5.4で見つけた納期の日数(「1週間」とか「2週間」とか「2~3日程度」とかの)をコピーして1のexcel(の指定の列)に貼り付ける。
6.excel内の対象データがなくなるまで1~5を続けて終了。

調べた結果、excelのあるセルに数値を入力しておいた状態で、
2までは動かすことは出来ました。(yahooを起動してトップページでその数値が検索)

ただ、上記のやらせたい処理になると条件がつき複雑になるため、その都度検索して納期を調べるしかないかと考えています。

過去に似たような経験のある方がいましたら、ご教授お願い致します。

A 回答 (2件)

ChromeはというよりIE以外はやめた方がいいです。


IEはブラウザで唯一Active XコンポーネントですのでVBAから直接HTMLやDOMを操作できるAPIがあります。
"VBA IE 操作"で検索してみてください。
3の部分が複雑になる件ですがDOMを検索してInnnerHTMLとかで取得してこればシンプルにできるかと。

ただ、2万件となるとVBAで処理すると数分かかるように思います。
パフォーマンスが気になるようならEdgeやIEを.NETで開発したOffice Plug-inから操作するとよいかともいます。

ChromeやFirefoxはそもそもそういった直接操作ができるAPIがないので自動操作用の拡張機能を用意してファイルベースで操作内容を受け渡すような事が必要になるのであまりお勧めできません。
    • good
    • 0
この回答へのお礼

アドバイス有難うございます。
手作業でやるなら数日は掛かりそうなので、VBAで数分なら大助かりです。
DOMやらInnerHTMLなどが理解できてないので改めて調べてみます。

お礼日時:2016/05/16 21:08

サイトによって仕組みが違うので、差支えがなければURLを提示した方が良いと思います。

    • good
    • 1
この回答へのお礼

アドバイス有難うございます。業務上のサイトなのでURL開示は厳しいかもしれません。

お礼日時:2016/05/16 21:01

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!