Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Pro : Excel 2016)
Excelマクロ(VBA)でブラウザ(IE)に自動入力について
投稿日時: 19/06/12 19:31:24
投稿者: hide_1975_san

エクセルVBAで、
 
 以下のサイトにアクセスして、
 
 地図上で2点間の直線距離を測る(Yahoo地図版)
 https://www.benricho.org/map_straightdistance/index-PC.html
 
 A地点及びB地点に特定の地点を自動入力し、「計測する」のタブをクリック、距離の計測をする
 
の一連作業を試みたいのですがうまくできませんでした。
 
 
  試みたVBAは以下の通りです。(A地点に入力するまでのVBAまで)
  コードがよくないためか、A地点の入力箇所を認識できていないようです。
 
ご教授いただけると幸いです。
 
Sub test()
 '--インターネットに接続してブラウザを開く--
Dim objIE As InternetExplorer
 Set objIE = CreateObject("InternetExplorer.Application")
 objIE.Visible = True
 
 '--インターネットの特定のページを開く--
objIE.navigate "https://www.benricho.org/map_straightdistance/index-PC.html"
Call IEWait(objIE)
 Call WaitFor(3)
 
 '--A地点に入力--
For Each objtag In objIE.document.getElementsByTagName("input")
 If InStr(objtag.outerHTML, """from""") > 0 Then
 objtag.Value = "大阪府大阪市"
 Exit For
 End If
 Next
 
 End Sub

回答
投稿日時: 19/06/13 17:36:48
投稿者: Suzu

対象の html の タグ 「input」の 要素に from が含まれている事を確認したうえでのご質問でしょうか?

回答
投稿日時: 19/06/13 20:10:33
投稿者: simple
投稿日時: 19/06/13 20:41:13
投稿者: hide_1975_san

Suzu様、simple様回答有難うございます。
ご指摘のiframeについて、勉強してみます。

回答
投稿日時: 19/06/15 11:14:10
投稿者: simple

「VBAを使ってフレーム構造のページを操作する@」
https://rabbitfoot.xyz/vba-inlineframe1/
「VBAを使ってフレーム構造のページを操作するA」
https://rabbitfoot.xyz/vba-inlineframe2/
などを参考資料に追加します。(ネット検索してヒットしたもの)
 
https://rabbitfoot.xyz/vba-inlineframe2/
にあるコードで調べましたら、
5番目のiframe(indexは 0開始なので 4を指定)が
phpで動作するiframeのページのようですね。

 '-- 前略 --    
    Set objFrame = objIE.Document.frames
    Dim k As Long
'    On Error Resume Next
'    For k = 1 To 27
'        Debug.Print k; objFrame(k - 1).Document.title
'    Next
'    On Error GoTo 0

    Dim doc As Object
    Set doc = objFrame(4).Document 

として作成した docに対して、検索を掛けていけばよいはずです。
ひとつの要素しか確認していませんが、続きはどうぞそちらで頑張って下さい。

投稿日時: 19/06/17 18:11:12
投稿者: hide_1975_san

simple様 ご助言ありがとうございます。
おかげ様で、無事コードの作成ができました。
感謝いたします。