
以下のコードを使用し、WEBページから「レース検索結果」のテーブルを取得しようとしました。
エラーは出ないのですがコード下から5行目で「OK」のメッセージボックスが
表示されるはずなのですが表示されませんでした。
ローカルウィンドウで確認したところ、summary「レース検索結果」が取得できていませんでした。
WEBページのソースには「レース検索結果」というsummaryは存在しているんですが・・・
どなたかご教授ねがいます
OS:Windows 7
Excel:2007
InternetExplorer:11
Sub test()
Const strURL As String = "http://db.netkeiba.com/?pid=race_search_detail"
Dim objIE As New InternetExplorer
Dim objDoc As HTMLDocument
Dim objAllInput As Object
Dim objInput As HTMLInputButtonElement
Dim objAllTable As Object
Dim objTable As HTMLTable
With objIE
.navigate strURL
.Visible = True
End With
Do While objIE.Busy = True Or objIE.readyState <> 4
DoEvents
Loop
Set objDoc = objIE.document
Set objAllInput = objDoc.getElementsByTagName("input")
For Each objInput In objAllInput
If objInput.ID = "check_Jyo_09" Then
objInput.Checked = True
Exit For
End If
Next
Do While objIE.Busy = True Or objIE.readyState <> 4
DoEvents
Loop
For Each objInput In objAllInput
If objInput.Value = "検索" Then
objInput.Click
Exit For
End If
Next
Do While objIE.Busy = True Or objIE.readyState <> 4
DoEvents
Loop
Application.Wait (Now + TimeValue("00:00:10"))
Set objDoc = objIE.document
Set objAllTable = objDoc.getElementsByTagName("table")
For Each objTable In objAllTable
If objTable.Summary = "レース検索結果" Then
MsgBox "OK"
Exit For
End If
Next
End Sub
No.2ベストアンサー
- 回答日時:
こんにちは。
今回の場合、下記の手順
> Do While objIE.Busy = True Or objIE.readyState <> 4
> DoEvents
> Loop
でのDocument完全ロード確認は不十分です。
素直にIEイベントを使う事をお勧めします。
(NavigateComplete2とDocumentComplete)
http://support.microsoft.com/kb/180366/ja
個人的にはHTMLTable取得が目的なら、WinHttpRequestオブジェクトを
利用するのがよい気がしますね。
この回答への補足
Abyss様
ご回答ありがとうございます。
大変、勉強になります。
まずは検証してみたいと思いますのでお礼は改めてとさせていただきます。
Abyss1様
ご回答ありがとうございました。
IEでイベントが使用できることを初めて知りました。
クラスモジュールを使用した経験がほとんどありません。
今のところは安定して動作はしませんが、試行錯誤しながらでもやってみたいと思います。
改めて、ありがとうございます。
No.1
- 回答日時:
HTMLInputButtonElement型を使っているところなど、初めて見たので動かしてみましたが、当方の環境では問題なく動作しました。
Windows7Home-64bit、xl2010-32bit、IE11です。
正常終了以降、
With objTable
For Each myRow In .Rows
For Each myCell In myRow.Cells
Debug.Print Application.WorksheetFunction.Clean(myCell.innerText);
Debug.Print " ";
Next myCell
Debug.Print
Next myRow
End With
てな感じで、データが取得できました。
開催日 開催 天気 R レース名 映像 距離 頭数 馬場 タイム ペース 勝ち馬 騎手 調教師 2着馬 3着馬
2014/06/22 3阪神6 雨 1 3歳未勝利 ダ1800 16 稍 1:53.7 38.2-37.7 ...
なお、Dim objAllInput As Object のところはIHTMLElementCollection型だと動作しましたが、I無しだと後のFor Eachループのところで型違いとなりました。I有無の違いが良くというかさっぱり分かりません。
ご参考まで。
mitarashi様
検証して頂き誠にありがとうございます。
お礼が遅くなりまして申し訳ございません。
mitarashi様の環境では動作したとしますと当方の環境に問題があるのかもしれません。
このような現象は初めてで全く困惑しておる次第です。
改めてありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Visual Basic(VBA) InputBoxでキャンセルボタンを押したらファイル自体を閉じたい 3 2022/07/23 17:52
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) Excelで下記のようにマクロを作ったところ、一回目は実行できたのですが、二回目以降「実行時エラー1 1 2022/03/25 08:08
- Visual Basic(VBA) VBA This Workbookモジュールを別ファイルにコピーする方法 1 2022/09/14 01:51
- Visual Basic(VBA) 実行時エラー´5854´ 文字列型パラメーターが長すぎます。 3 2023/06/08 21:17
- Visual Basic(VBA) Excel vbaについての質問 3 2023/04/18 16:14
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルの関数について
-
エクセルのリストについて
-
【マクロ】元データと同じお客...
-
エクセルの複雑なシフト表から...
-
【画像あり】オートフィルター...
-
【マクロ】【相談】Excelブック...
-
【マクロ】変数に入れるコード...
-
【マクロ】別ファイルへマクロ...
-
エクセルシートの見出しの文字...
-
【マクロ】数式を入力したい。...
-
Office2021のエクセルで米国株...
-
【マクロ】実行時エラー '424':...
-
他のシートの検索
-
【マクロ】左のブックと右のブ...
-
Amazonでマイクロソフトオフィ...
-
エクセルのVBAで集計をしたい
-
エクセル GROUPBY関数について...
-
【マクロ】オートフィルターの...
-
【マクロ】列を折りたたみ非表...
-
ページが変なふうに切れる
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
サイレース、フルニトラゼパム...
-
このレースの物理的原理はなん...
-
競馬の J G1って何ですか? 普...
-
5年以上サイレース1mgを毎晩服...
-
15:01発走の理由
-
競馬の12レースに意味があるのか?
-
ボートレースは20歳からですよ...
-
レース結果 直線不利とあったん...
-
競馬はなぜ一日12レースなん...
-
競馬の数年前の払い戻し金額
-
三連単はいつ始まったのですか?
-
GI馬ってGIレース出走馬?
-
最高のレースを教えてください
-
圧倒的1番人気馬がいるレースで...
-
競馬の通過順位について
-
競馬 間隔 中8週は2ヶ月ですか?
-
大宮に近い競馬場って、浦和競...
-
エクセルで土日の出走馬から自...
-
競馬の出走頭数
-
浦和12レースは⑦ビュボンを死ぬ...
おすすめ情報