webページの操作についての質問になります。
VBAでやりたいことです。
(1)webページを開き、指定したソースが表示されるまで、画面を更新
(2)ソース表示がされたら、指定したボタンをクリック
(3)画面が移行する
(4)移行したページの指定したボタンをクリック
不具合
(2)ボタンクリック後、ページは移行するが(4)のボタンが押せません。
しかし(3)のページを直接指定して開いた後に(4)の動作を行うときちんとボタンクリックが出来ます。
順番に(1)→(2)→(3)→(4)と処理を行うと(4)のボタンが押せないという状況です。
こんな感じで作成しました。
Dim objIE As InternetExplorer '
Set objIE = CreateObject("Internetexplorer.Application")
objIE.Visible = True
Dim strUrl As String
strUrl = "●●●●●●?sc_i=shp_pc_top_mdItemRanking_01"
objIE.navigate strUrl
Do While objIE.Busy = True Or objIE.readyState < READYSTATE_COMPLETE
Loop
(1)の処理
Do While (True)
If (TypeName(objIE.document.getElementsByClassName("●●●●")(0)) <> "Empty") Then
Set tmp = objIE.document.getElementsByClassName("●●●●")
flag = False
For Each t In tmp
If (InStr(t.getAttribute("class"), "●●●●") > 0) Then
t.Click
flag = True
Exit For
End If
Next
End If
If (flag = True) Then Exit Do
Application.Wait [Now() + "0:00:00.5"]
objIE.Refresh
Do
Loop Until (objIE.Busy = False) And (objIE.readyState = 4)
Loop
(3)の画面移行
(4)の処理
Set objINPUT = objIE.document.getElementsByTagName("INPUT")
For n = 0 To objINPUT.Length - 1
If InStr(objINPUT(n).Value, "●●●●") > 0 Then
objINPUT(n).Click
Exit For
End If
Next
Do While objIE.Busy = True Or objIE.readyState < READYSTATE_COMPLETE
Loop
Set objINPUT = Nothing
以上になります。
お手数ですが、どなたかご教示をお願いいたします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
こんばんは。
新しい質問が出ましたが、こちらにレスを付けておきます。
一応、私は、このマクロは書けるレベルにはいるとは思っていますが、到底、それを公開する気にも実用する気にもなれません。一回失敗したので、もう一度やると、加算していくことに気が付きました。そんなリスキーなマクロを、ブラインドで自動化させるというのは、私のマクロの開発のポリシーにはありませんので、ご遠慮させていただきます。技術的なこととは、まったく違う次元の問題なのです。
アドバイスとしては、Wait の代わりに、私なら、APIのSleep を使います。
Private Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)
例:
With objIE
Set o_btnel = .document.getElementsByClassName("elCartButton elButton")
Stop
If o_btnel.Length > 0 Then
o_btnel(0).Click
Else
MsgBox "ボタン取得に失敗", vbExclamation
Exit Sub 'または元に戻る
End If
Do While .Busy Or .ReadyState <> 4: DoEvents: Loop
Sleep 500
If Instr(1,.LocationURL , 画面切り替わり後のキーワード, vbTextCompare) = 0 Then
MsgBox "取得失敗", vbExclamation
Exit Sub 'または別のステップ
End If
End With
ご回答ありがとうございます。
初心者の為、内容が難しくてよく理解できず申し訳ありません。
良くないことだとはわかりましたので
最初からもう一度勉強してみます。
今回はありがとうございました。
No.1
- 回答日時:
同じ内容の質問が、OKWAVEにも出ていますね。
最初に、この数年、同じような質問を読んでみて言えることは、
strUrl = "●●●●●●?sc_i=shp_pc_top_mdItemRanking_01"
目的のサイトを公開しない質問は、私の中では、一度も成功したという記憶がありません。そのまま付き合って受け答えしても、徒労に終わるだけです。
プライベートな相談でしたら、もう少しクローズの場所のほうがよいと思います。
ざっとコードをみましたが、ただ、私とやり方が違うということだけで、間違いとも正解とも言えないのです。
>(2)ボタンクリック後、ページは移行するが(4)のボタンが押せません。
Set objINPUT = objIE.document.getElementsByTagName("INPUT")
たぶん、画面の切り替わりの認識が出来ていないのだろうと思います。
objIEのオブジェクト以下が切り替わったか、LocalURL や、もしく IEイベントをClassで作って取るか、どちらかでしょうね。
それ以上はなんとも言えません。
ご返信ありがとうございます。
どのようにしたら良いのかわからず悩んでいます。
再度質問させてもらいましたので、ご指導いていただけたら幸いです。
よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) EXCEL VBAで NHK NEWSの NEWSデータ内容取得が できない 1 2023/04/09 12:26
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) InputBoxでキャンセルボタンを押したらファイル自体を閉じたい 3 2022/07/23 17:52
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Visual Basic(VBA) マクロVBA 1シートをまとめる 閉じ方 初心者 SOS! 1 2022/06/17 14:54
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) 貼り付けた値が消えていく 以下はソースファイルの2番目のシートのB6から最終行を取得 ターゲットファ 2 2023/07/27 12:23
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
HTMLで投票ボタンを作りたい
-
子画面を読んだ後親画面のRecor...
-
ボタンの背景色を変更する方法
-
Linuxでの開発環境構築や設定の...
-
oppo reno 7A
-
Windows10でアプリを完全に消去...
-
お気に入りバーから削除できない
-
FLASHゲームのセーブデータが消...
-
ノーツ エージェントの実行が...
-
vbsでデバッグしながらコードを...
-
インストールしようとしている...
-
windows10のアプリと機能にyout...
-
日本に、Microsoftのような会社...
-
簡易ガンマ設定ツールの代替
-
Beckyのアドレス帳を上下に移動...
-
ブラウザから音楽プレイヤーの...
-
特定ユーザに対してのみアプリ...
-
iPhone SDKはWindowsでは利用で...
-
アイコンをダブルクリックして...
-
フォルダーに緑のレ点と赤の✖が...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB.net webアプリケーション 戻...
-
VC++にてボタン等のサイズ取得
-
ipodnanoの画面が真っ暗です!!
-
HTMLで投票ボタンを作りたい
-
検索ボタンなどに使う虫眼鏡の...
-
xampp Apacheの「Admin」の管理...
-
フォーム上のどのボタンが押さ...
-
ボタンの背景色を変更する方法
-
「改ページプレビュー」ボタン...
-
子画面を読んだ後親画面のRecor...
-
visual stduo を使ったc#での...
-
iPad トップアイコンの消し方
-
WordPressで1回だけ表示可能な...
-
このような画面って、閉じるボ...
-
ヘルプの作成方法
-
これはなんとゆってるんですか?
-
oppo reno 7A
-
フォルダーに緑のレ点と赤の✖が...
-
Linuxでの開発環境構築や設定の...
-
gcc13.2のバグ?
おすすめ情報