[[20140205170451]] 『WEBクエリで表が認識されず取り込めない』(mfree) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『WEBクエリで表が認識されず取り込めない』(mfree)

下記サンプルサイトよりカレンダーを取り込みたいのですが、
ページ全体が認識され、カレンダー部の表が認識されません。

http://themejp.com/

またページ全体を取り込んだ場合、カレンダー部のデータは取り込めません。

どなたか解決法を教えて下さい。

< 使用 Excel:Excel2007、使用 OS:Windows7 >


ご指定のURL自身はカレンダー描画しておらず、JAVAスクリプトの、
http://themejp.com/wp-content/plugins/biz-calendar/calendar.js
の中のgetCalendar()で描画していますね。

ご自身でcalendar.jsを作成したのならば、必要なパラメータは分かりそうですが、
そうでないならば厳しいかも。

しかし、カレンダーが得たいだけならば、わざわざ取り込まなくとも、VBA自身で…。
(???) 2014/02/05(水) 18:22


Webクエリを使わず、IEオブジェクトを利用してデータを抜き出す例。

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

 Sub test()
    Dim IE As Object
    Dim i As Long

    Set IE = CreateObject("InternetExplorer.application")
    IE.Visible = True
    IE.Navigate "http://themejp.com/"
    Call sWait(IE)

    With IE.Document
        Range("A1") = .all(1).getElementsByTagName("td")(0).innerhtml
        For i = 0 To 6
            Cells(2, i + 1).Value = .all(1).getElementsByTagName("th")(i).innerhtml
        Next i
        For i = 4 To .all(1).getElementsByTagName("td").Length - 1
            Cells(3 + Int((i - 4) / 7), 1 + (i - 4) Mod 7).Value = .all(1).getElementsByTagName("td")(i).innerhtml
        Next i
    End With

    IE.Quit
    Set IE = Nothing
End Sub

 Sub sWait(OBJ As Object)
    Sleep 1000
    While OBJ.readyState <> 4
        While OBJ.Busy = True
            DoEvents
            Sleep 100
        Wend
    Wend
    Sleep 1000
End Sub
(???) 2014/02/06(木) 14:15

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.