[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『VBAによるIE操作』(696)
掲示板過去ログを参照しまして
?@ここのサイト(ttps://www.idaten.ne.jp/portal/)にアクセスして
?Aエクセルに記録しておいたIDパスを代入して
?Bログインボタンを押す。
・・・という挙動のコードを組んだつもりなのですがIDパスの代入が上手くいきません。
オブジェクト取得までは出来ているようですし、特にフレームで別枠ということでもなさそうなのですが原因もわからず対策が出来ませんでした。助言を頂けないかと思い投稿いたします。
'最前面表示
Public Sub ログイン_H17()
'IEを格納する変数(オブジェクト型) Dim ie As Object 'IEを起動 Set ie = CreateObject("InternetExplorer.Application") ie.Visible = True ie.Navigate2 (Range("H19"))
'最小化されている場合は元に戻す(9=RESTORE:最小化前の状態) If IsIconic(ie.hWnd) Then ShowWindowAsync ie.hWnd, &H9 End If '最前面に表示 SetForegroundWindow (ie.hWnd) 'ブラウザ(IE)読み込み完了待ち While ie.Busy = True Or ie.ReadyState < READYSTATE_COMPLETE DoEvents Wend
'IEオブジェクトのドキュメントプロパティを変数docに保存 Dim doc As HTMLDocument Set doc = ie.document Dim inp As HTMLInputElement
'ログインID Set inp = doc.getElementsByName("IdatenUserId")(0) inp.Value = Range("H17")
'パスワード Set inp = doc.getElementsByName("IdatenPassWord")(0) inp.Value = Range("H18")
'nameとかID設定がないので、何番目かのformのsubmit実行命令で対処 ie.document.forms(2).submit
End Sub
< 使用 Excel:Office365、使用 OS:Windows10 >
さらっとHTMLソースを眺めましたが、同じ名前の要素が2つあります。 Set inp = doc.getElementsByName("IdatenUserId")(1) Set inp = doc.getElementsByName("IdatenPassWord")(1) だとおもいますよ。 もっとキッチリ指定できる方法を考えたのがよろしいかと思います。 (´・ω・`) 2021/08/24(火) 11:43
もうちょっとユニークな指定になるよう再考致します。
(696) 2021/08/24(火) 11:55
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.