VBA
1Option Explicit 2 3Private objIE As InternetExplorer 4Private infoSheet As Worksheet 5 6'------------------------------------------------------------------------------------------------- 7' 初期化 8'------------------------------------------------------------------------------------------------- 9Sub init() 10 11 Set infoSheet = ActiveWorkbook.Worksheets("メーカーサイト") 12 13 'IEをセットする 14 Set objIE = CreateObject("InternetExplorer.Application") 15 16 'IEを表示する(標準が非表示のため) 17 objIE.Visible = True 18 19 Call searchProduct(infoSheet) 20 21End Sub 22 23'------------------------------------------------------------------------------------------------- 24' 主処理を記述 25'------------------------------------------------------------------------------------------------- 26Sub main() 27 28 '初期化を行う 29 Call init 30 31 'メーカーWebサイトへ行き、商品ページを表示する 32 Call searchProduct(infoSheet) 33 34 Dim s As String 35 s = "th65fz1000" 36 Dim objtag, objImg As Object 37 For Each objtag In objIE.document.getElementsByTagName("input") 38 If InStr(objtag.outerHTML, """s""") > 0 Then 39 objtag.Value = s 40 Exit For 41 End If 42 Next 43 44 For Each objImg In objIE.document.getElementsByTagName("IMG") 45 Debug.Print objImg.src 46 If InStr(objImg.src, "icn-search.png") > 0 Then 47 objImg.Click 48 Call WaitFor(3) 49 Exit For 50 End If 51 Next 52End Sub 53'------------------------------------------------------------------------------------------------- 54' 商品情報の検索 55'------------------------------------------------------------------------------------------------- 56Sub searchProduct(infoSheet As Worksheet) 57 58 Call getWebPage(objIE, infoSheet.Cells(2, 2)) 59 60End Sub 61'------------------------------------------------------------------------------------------------- 62' インターネットのページを取得 63'------------------------------------------------------------------------------------------------- 64Sub getWebPage(objIE As InternetExplorer, URL As String) 65 66 objIE.navigate (URL) 67 68End Sub 69'------------------------------------------------------------------------------------------------- 70' IEが目的ページに移動するまで待つ 71'------------------------------------------------------------------------------------------------- 72Function IEWait(ByRef objIE As Object) 73 Do While objIE.Busy = True Or objIE.readyState <> 4 74 DoEvents 75 Loop 76End Function 77 78'------------------------------------------------------------------------------------------------- 79' 指定した秒だけ停止する 80'------------------------------------------------------------------------------------------------- 81Function WaitFor(ByVal second As Integer) 82 Dim futureTime As Date 83 futureTime = DateAdd("s", second, Now) 84 While Now < futureTime 85 DoEvents 86 Wend 87End Function 88
やりたいこと
ホームページで検索テキストボックスに文字列を入力して検索をしたい
実行環境
Excel2010
IE11
Windows10
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/08/25 09:38 編集
2018/08/25 09:33
2018/08/25 09:44
2018/08/25 09:47
2018/08/25 09:54 編集
2018/08/25 09:58
2018/08/25 10:08
2018/09/06 13:01 編集
2018/09/17 00:39