![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
WEBの商品ページにある、商品コードや商品名などをエクセルに項目別で自動入力ができるようにしたいのですが、どのように行えば良いでしょうか?
また、同じ商品名の物は既存の商品名列の下に表示されるようにしたいです、、。
商品ページはCSVファイルなどへの変換が出来ず、HTMLのソースもかなり古いようで、
HTMLとの連携?は早々に諦めてしまいました、、。
VBAを勉強中でとりあえず実行出来る環境だけ整えましたがどこから初めていいやら
考えこんでしまっています。
詳しい方いらっしゃいましたらご教授いただけると幸いです。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
こんにちは。
>WEBの商品ページにある、商品コードや商品名などをエクセルに項目別で自動入力
まず、その前に、そのWebサイトが自動で取得していることを許しているかどうか、ということを確認してください。ただ、明文化されていても、常識て程度、1日に数回のアクセス程度で、個人でおやりになる分には、それを構わないと思うのですが、具体的なノウハウは、少なくとも私は、公開はしません。
次に、かなり古い昔、ここの掲示板で、商品ページなどのWeb構造というのは、繰り返しになっているので、HTML.Document をSplit 関数で分ければよいことを、私などは教わりました。ずいぶん昔の話です。
多くのVBAユーザーは、この後、タグ(tag)をループして、その一つを選び出すという方法を学んでいるようです。まだ、同じようなテクニックを使っている人を見かけます。
私は、正規表現(VBScript.RegExp)という方法を知っていたので、あまり必要としませんでした。とても便利なツールです。なお、現在、私は、Basp21 をVBAで使用しています。この中に正規表現コマンドがあり、Perlライクで使えます。
その後、DOM といって、Webスクリプトの構造は、一定の法則によって書かれているので、JavaScript のコマンドで取得すれば、抜き出せることを知りました。
どこのサイトで知ることができるか、というと、以下のサイトです。
http://www.vba-ie.net/
VBAのIE制御入門
最近、やっと、ここの内容が読めるようにはなったものの、当初、腹が立つほど不親切な書き方だと思いました。情報が分散してしてわかりにくいのです。
実は、もう一つ、欠かせないサイトがあったのです。Yu-Tang さんといって、ここの掲示板の会員でもあった方で、Webスクレイピングというものを日本で最初に流行らせた方です。ネット内の社会問題にもなりかねない勢いで、有名になりすぎて、ついにサイトがなくなってしまいした。この方のサイトの恩恵は大きいです。たぶん、それに似たものは、どこかにあるかと思います。
キーワード [Webスクレイピング][Web クローリング]で探すとテクニックが出てきます。
社会問題というのは、いくつかのWeb上の企業でのロボットによる情報取得を嫌がっています。その代表格は、Amazon です。また、ハローワークの検索サイト、そしてQ&Aサイトのモーグなどが、思い当たります。
先日の「エクセル上のURLからWebページ内特定箇所URL自動取得 」というご質問も同様てす。
ここの掲示板で、取得方法をお聞きになる方は、ある程度、この方面に明るい方でないと、教えるに教えられないというか、回答者にとっても、大変に迷うところになってしまいます。
ここまでが、今までの経緯です。
>どこから初めていいやら考えこんでしまっています。
さて、Yu-Tangさんが教えていた時代と、今変わったのは、いろいろ便利になり、Google で情報が取れる可能性があるということです。私自身は、VBAに頼るせいか使い方は知りませんが、思った以上に便利なようです。また、昔は、そういう情報を取るツールは、ハッキングツールと言って場合によっては、アンチウィルスソフトに引っかかっていたのです。
今は、Internet Explorer で、F12 を押せば、DOMの構造などが、本当に詳しく出てきますので、有名なFireBug(FireFoxのアドオン)などは不要になってしまいました。それだけで、VBAで抜き出す情報が取れます。
添付画像の場合は、教えて!gooの今ご覧になっているサイトですが、以下のようにして、オブジェクトが取れましたので、後は、そこから抜き出すだけです。左上端 ①の□← を押して、画面で取得する部分をクリックして反転させれば、どこら辺りを取ればよいのか教えてくれます。(Class か、ID が良いです)
With objHtml '←IE.Document など、いくつか種類があります。
Set pt = .getElementsByClassName("q_article_info clearfix")
End With
もちろん、画像の場合は、<h1> のタグをループさせれば取れるのでしょうけれど、何百というタグを探さなくてはならないでしょう。Java Script のプログラミングの知識があると、楽になります。
なお、ExcelのWebクエリでも取れる場合がありますが、限界があります。
今、何かよいサイトはないかと思って探していましたが、内容は上級になるかもしれませんが、
https://www.ka-net.org/blog/?p=4855
Ka-net は、いつも最先端の情報がふんだんに含まれていますので、必見かもしれません。ただ、あえていうと、
WinHttpRequest/XMLHTTPRequestオブジェクトで取得しなければならないほど、一般の人たちは急いでいませんし、また、そうしたことで、万が一にも、自分のプロバイターにIPアドレスを通報させられるようにならないとも限りませんので、鈍足のIEオブジェクトでも十分だと思います。
なお、今、どこにも専用ツールのまとめが出ていませんので、以下に記しておきます。
http://alternativeto.net/software/httpwatch/
この中で、IE のF12で足りるとは申しましたが、プロ級になってくると、不足を感じるかもしれません。その前段階で必要になるツールです。Fire Bugは、まだ健在のようです。
以上で、大雑把ですが、今私が知る情報の概況をまとめました。
以下は、IEで、F12 キーを押した後の作業です。
![「商品ページの項目をエクセルに自動入力」の回答画像2](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/7/1138040_57d932277af8f/M.jpg)
No.1
- 回答日時:
Webクエリという方法があります。
うまくいけばVBA?HTML?一切関係ないよ。という方法です。
http://www4.synapse.ne.jp/yone/excel2010/excel20 …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・「I love you」 をかっこよく翻訳してみてください
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・昔のあなたへのアドバイス
- ・かっこよく答えてください!!
- ・あなたが好きな本屋さんを教えてください
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・【大喜利】【投稿~8/27】 こんなガソリンスタンド二度と来るか!なぜそう思った?
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・【お題】動物のキャッチフレーズ
- ・【お題】甲子園での思い出の残し方
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・自分用のお土産
- ・人生で一番お金がなかったとき
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・ちょっと先の未来クイズ第1問
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Yahoo! JAPAN IDを新規取得でき...
-
Macアドレスの取得方法
-
VBAでPDFのアクティブページ番...
-
【VBA】EXCELブックを開かずに...
-
ミュージックのアートワークを...
-
Excel VBA:特定の文字列以降(...
-
「取得先」という表現について
-
ローカルのコンピュータ名を取...
-
アクセスの度にIPアドレスを変...
-
vb6で、特定のフォルダを常時監...
-
PHP/MySQL レコードの件数の取...
-
IPアドレスとMACアドレスを取得...
-
Winsock(またはWinInet)でグ...
-
ページ閲覧者のIPアドレスを確...
-
format関数について
-
Windows Media Player> CD情報...
-
自分は小学校の教員免許だけ持...
-
特定のハッシュタグのツイート数
-
ps3で久しぶりにCDの音楽情報取...
-
DTOとEntityの差は何ですか。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「取得先」という表現について
-
Yahoo! JAPAN IDを新規取得でき...
-
ps3で久しぶりにCDの音楽情報取...
-
ローカルのコンピュータ名を取...
-
築24年の中古住宅は住宅ローン...
-
VBAでPDFのアクティブページ番...
-
EXCEL、マクロ-改ページ行番号...
-
Excel VBA:特定の文字列以降(...
-
ミュージックのアートワークを...
-
format関数について
-
【VBA】EXCELブックを開かずに...
-
アクセスの度にIPアドレスを変...
-
積立投資してます。現在平均取...
-
VB or VBScriptでPCの製造番号...
-
C#で特定LANアダプタの状態を取...
-
VBAでできますか?
-
IPアドレスとMACアドレスを取得...
-
表示している画面サイズの取得方法
-
VBS「開いているページ」のURL...
-
DMMの動画を全件取得したのです...
おすすめ情報