VBAにてHPの情報を「With ActiveSheet.QueryTables.Add」で取り込むツールを作成しました。
これまで問題なく利用していたのですが、新しいHPはリンク先をクリックすると、同じURLなのに、ちがう項目が出現する仕組みのため戸惑ってます。
その部分のソースは以下の通りです。
<li><a href="javascript:void(0);" onClick="pagerForm(80,5,null,null)"><前へ</a></li>
上記の対象のリンク先をクリックすると項番80から5つのデータが出現する動きをします。
VBAにて、対象のjavascriptを起動して、同様のページを生成する方法はありますでしょうか?
よろしくお願いします。
ExcelVBA(Microsoft Visual Basic for Applications7.0)
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
IEを制御して一旦、ローカルにHTMLファイルを保存して、そちらに対してWebクエリを適用させればいいのではと。
(IEのNavigateメソッドのjavascriptプロトコルで処理)
http://hpcgi1.nifty.com/MADIA/VBBBS/wwwlng.cgi?p …
↓IE制御の入門書
「Excel VBAでIEを思いのままに操作できるプログラミング術 Excel 2013/2010/2007/2003対応」
http://www.impressjapan.jp/books/3384
No.1
- 回答日時:
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秒待つ
ソースの全文が分からないと正確なものは分からない
エスパーな質問ですみませんでした。以下の文で対象のjavascriptが動かすことが出来、自己解決しました。
objIE.Document.Script.setTimeout "javascript:pagerForm(80,5,null,null);
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Windows 10 再起動後 Pinが使用できず、PC(windows11)にサインインできない 3 2022/08/30 20:53
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Visual Basic(VBA) Access VBAから使用したExcelプロセスを閉じる方法について 4 2022/06/08 17:50
- Excel(エクセル) エクセル VBAでBook モジュールのプロシージァ(コード)に除外シートを設定したい 1 2023/01/11 15:53
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- JavaScript Q&Aの掲示板を作成していてヤフー知恵袋やgoo質問のように質問ごとにURLを生成したい 5 2023/08/04 01:22
- Excel(エクセル) Excel起動時にエラーダイアログが表示される 3 2022/07/28 19:52
- Visual Basic(VBA) vbaエクセルマクロについて あるデータを作成し、デスクトップに.xlsx形式で保存するマクロを作成 2 2023/03/02 18:54
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
別フォームから戻ったときのイ...
-
「Cancel = True」とはどういう...
-
VB2005 DataGridView上でクリッ...
-
処理終了後のに砂時計が、クリ...
-
実行中のOSを知るには?
-
Perlで数値(小数点、負の数、...
-
javascriptの中で、perlのコマ...
-
フォームの値を取得できません...
-
リンクをクリックしたのと同じ...
-
マイページはどこを開くの
-
ウインドウを毎回同じ位置、大...
-
デジタル時計の時刻合わせの方...
-
エクセルのシート上に別のシー...
-
Excelでワードアートや図を常に...
-
[Java] Edgeでのアドレスバー非...
-
エクセルVBAでフォームのListbo...
-
Javascript_submit()完了後に処...
-
リストビューをスクロールさせ...
-
一定時間おきにアラームやポッ...
-
スクリプトって、何ですか?ど...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「Cancel = True」とはどういう...
-
別フォームから戻ったときのイ...
-
VB2005 DataGridView上でクリッ...
-
エクセル アプリケーションの...
-
処理終了後のに砂時計が、クリ...
-
VBAでIEの「Web ページからのメ...
-
VB6.0のEnabledをfalseにしても...
-
excelのタスクバーアイコンが・...
-
Sleep関数の最大時間について
-
Perlで数値(小数点、負の数、...
-
javascriptの中で、perlのコマ...
-
C# マウスオーバーの記述方法
-
C++での連続した左クリックの禁...
-
Perlの多重起動を禁止したい
-
[CGI]ブラウザを閉じた時の動作
-
VC++2010 エディットボックスに...
-
フォームの値を取得できません...
-
エクセルVBAのMultipageの使...
-
【C#】ラベルのダブルクリック...
-
別ページからのタブ切り替えの...
おすすめ情報