饂飩コーディング

iOSアプリやら、Unityやら、Cocos2dやらごにょごにょ書いております

VBAで価格コムの洗濯機ランキングを取得してみる。

サイトが引っ越しました。→https://scombu.com

約1秒後に自動的にリダイレクトします。切り替わらない場合はリンクをクリックしてください。

Option Compare Database
Option Explicit

Private Sub コマンド0_Click()
    Dim ieobj As InternetExplorer
    Set ieobj = New InternetExplorer
    
    ieobj.navigate ("https://kakaku.com/kaden/washing-machine/ranking_2110/hot/")
    ieobj.Visible = True
    
    
    'Webブラウザ読込が完了するまで待つ
    Call IEWait(ieobj)   'IEを待機
    
    
    Dim doc As HTMLDocument
    Set doc = ieobj.Document
    
    Dim el As IHTMLElement
    Dim detailel As IHTMLElement
    Dim rankingString As String
    
    '更新日を取得
    Debug.Print (doc.getElementsByClassName("notice alignR mTop5")(0).innerText)
    
    
    For Each el In doc.getElementsByClassName("rkgContents")(0).all
        
        If el.className = "num" Then
            rankingString = el.innerText & "位"
        End If
        
        If el.className = "rkgBoxNameMaker" Then
            rankingString = rankingString & " " & el.innerHTML
        End If
    
        If el.className = "rkgBoxNameItem" Then
            rankingString = rankingString & " " & el.innerHTML
        End If
        
        If el.className = "price" Then
            rankingString = rankingString & " " & el.innerText
            Debug.Print rankingString
        End If
        
        
    Next el
    
    Call WaitFor(3)
    
    ieobj.Quit
    Set ieobj = Nothing
End Sub


Function IEWait(ByRef objIE As Object)
    Do While objIE.Busy = True Or objIE.ReadyState <> 4
        DoEvents
    Loop
End Function

Function WaitFor(ByVal second As Integer)
    Dim futureTime As Date
 
    futureTime = DateAdd("s", second, Now)
 
    While Now < futureTime
        DoEvents
    Wend
End Function