• 締切済み

VBAにてjavascriptを起動したい

VBAにてHPの情報を「With ActiveSheet.QueryTables.Add」で取り込むツールを作成しました。 これまで問題なく利用していたのですが、新しいHPはリンク先をクリックすると、同じURLなのに、ちがう項目が出現する仕組みのため戸惑ってます。 その部分のソースは以下の通りです。 <li><a href="javascript:void(0);" onClick="pagerForm(80,5,null,null)">&lt;&nbsp;前へ</a></li> 上記の対象のリンク先をクリックすると項番80から5つのデータが出現する動きをします。 VBAにて、対象のjavascriptを起動して、同様のページを生成する方法はありますでしょうか? よろしくお願いします。 ExcelVBA(Microsoft Visual Basic for Applications7.0)

みんなの回答

  • kumatti1
  • ベストアンサー率60% (73/121)
回答No.2

IEを制御して一旦、ローカルにHTMLファイルを保存して、そちらに対してWebクエリを適用させればいいのではと。 (IEのNavigateメソッドのjavascriptプロトコルで処理) http://hpcgi1.nifty.com/MADIA/VBBBS/wwwlng.cgi?print+200309/03090020.txt ↓IE制御の入門書 「Excel VBAでIEを思いのままに操作できるプログラミング術 Excel 2013/2010/2007/2003対応」 http://www.impressjapan.jp/books/3384

  • aoyama984
  • ベストアンサー率45% (253/561)
回答No.1

http://note.chiebukuro.yahoo.co.jp/detail/n24833 WebクエリのVBA同等処理 ページ = "http://www.amazon.co.jp/dp/4883376435/" Sheets.Add after:=Sheets(Sheets.Count) Set myIE = CreateObject("InternetExplorer.Application") myIE.Visible = True myIE.Navigate ページ Do Until myIE.busy = False And myIE.readyState = 4: Loop 表示だけなら上記6行でできる リンクをクリックする処理を追加すれば可能なはず ソースを見た限りでは IDやNAMEは付いていないので 他の条件か 何番目か で指定する myIE.document.getElementsByTagName("A")(10).click 上から数えて11番目のAタグをクリックする (0を1とするので 10は11番目) http://homepage1.nifty.com/MADIA/vb/API/Sleep.htm Javascript実行後に表示まで時間があるときは Sleep 1000 '1秒待つ ソースの全文が分からないと正確なものは分からない

fufufuman
質問者

お礼

エスパーな質問ですみませんでした。以下の文で対象のjavascriptが動かすことが出来、自己解決しました。 objIE.Document.Script.setTimeout "javascript:pagerForm(80,5,null,null);

関連するQ&A