ここから本文です

VBの手直しお願いできませんでしょうか?

puo********さん

2014/4/2823:09:18

VBの手直しお願いできませんでしょうか?

chirinuruwowaheさん

http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1013741520

こんにちは 以前chirinuruwowaheさんがアップされていた 文具用品のJANコードがたくさんある場合に
VBAJanKensaku.xlsをUPされていたかと思うのですが

文具用品のJANコードを大量に調べたいことがあり
知恵袋に辿り着いた次第です。

KDMのHPのデザインが変更されたみたいで VBが動きません
自分でもVBを少し見たのですが 以前のKDMのHPソースコードがわからず
一からVBを組む技術もなく 新しいデザインに合うように
VBの手直しをして頂けないでしょうか?
突然の依頼で 不躾とは思いますが
お時間等に余裕がありましたら よろしくお願い致します。

閲覧数:
123
回答数:
2
お礼:
500枚

違反報告

ベストアンサーに選ばれた回答

ipl********さん

2014/4/2905:07:46

「ページ」が何かわからないので、「メーカ」「品名」「品番」です。
A列の2行目からのJANコードで調べます。


Sub sample()
Dim ie As Object
Dim r As Long
Dim elm As Object
Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
r = 2
Do While Range("A" & r).Value <> ""
ie.Navigate "http://www.kdm.bz/search/advanced_search_result.php?keyword=" & Range("A" & r).Value & "&search_in_description=1"
Do While ie.Busy Or (ie.ReadyState <> 4): DoEvents: Loop
If InStr(ie.Document.body.innertext, "該当する商品は見つかりませんでした") = 0 Then
For Each elm In ie.Document.All
If elm.GetAttribute("Class") = "itemName" Then
ie.Navigate elm.getelementsbyTagname("A")(0).GetAttribute("href")
Do While ie.Busy Or (ie.ReadyState <> 4): DoEvents: Loop
DoEvents
With ie.Document.All("productInfoDetailBox").getelementsbyTagname("td")
Range("B" & r).Value = .Item(3).innertext
Range("C" & r).Value = .Item(2).innertext
Range("D" & r).Value = .Item(4).innertext
End With
Exit For
End If
Next
End If
r = r + 1
Loop
ie.Quit
End Sub

「ページ」が何かわからないので、「メーカ」「品名」「品番」です。
A列の2行目からのJANコードで調べます。...

質問した人からのコメント

2014/5/1 02:47:47

ipl_is_loadingさん

ありがとうございました。

お陰でJANコードの検索できました。

非常に助かりました。

ベストアンサー以外の回答

1〜1件/1件中

ドリさん

編集あり2014/4/2905:44:03

ごめんなさい、一部間違っていたので訂正orz

前回アップロードされた処理を確認したところ、どうやら検索ボタンの仕様が変更されているようです。
'--------------------検索開始
For Each mytag In objIE.document.getElementsByTagName("form")
If mytag.Name = "searchForm" Then
mytag.submit
Exit For
End If
Next


上記を、以下へ変更してみてください。
'--------------------検索開始
For Each myTAG In objIE.document.getElementsByTagName("input")
If myTAG.alt = "検索" Then
myTAG.Click
Exit For
End If
Next

対象はどうやらイメージ化されてしまったようです。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる