証券会社にログインして、銘柄発注を行うプログラムを作成したいです。
下記コードを実行するとそれぞれ、.document.getElementsByName("txt_meigara_comp")(0).Value = Range("A24")のところで
『オブジェクト変数または with ブロック変数が設定されていません 』とエラーが出てしまいます。
テスト1はログイン画面からアクセス→ログイン後銘柄入力のプロシージャです。
テスト2は、ログイン後の動きに問題があることを考えて既にログイン済みのIEを準備し、
そこに銘柄入力を行うプロシージャとなっています。
どちらも、.document.getElementsByName("txt_meigara_comp")(0).Value = Range("A24")のところで、上記エラーが出るのですが
どこに原因があるでしょうか?
ご教授していただけると助かります。よろしくお願いします。
Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub subWait(objIE As Object) 'IEの読み込み待機時間 Do While objIE.Busy = True Or objIE.ReadyState < READYSTATE_COMPLETE '読み込み待ち DoEvents Loop Exit Sub End Sub Sub テスト1() Dim objIE As Object Dim objShell Dim AnhorLink As Object, AnhorLinks As Object Dim n As Long Set objIE = CreateObject("InternetExplorer.Application") Call objIE.navigate("https://treasurenet.jip-jet.ne.jp/login.con?code=063") Do While objIE.Busy Loop objIE.Visible = True Sleep 1000 With objIE .document.forms(0).elements("customer").Value = Range("A22") .document.forms(0).elements("pass").Value = Range("A23") .document.forms(0).submit 'ログインボタンをクリック Do While objIE.Busy = True Or objIE.ReadyState <> 4 DoEvents Loop **.document.getElementsByName("txt_meigara_comp")(0).Value = Range("A24")** End With End Sub __________________________________________________ Sub テスト2() Dim objIE As InternetExplorer Dim objShell As Object, objWin As Object Set objShell = CreateObject("Shell.Application") For Each objWin In objShell.Windows If objWin.Name = "Internet Explorer" Then Set objIE = objWin Exit For End If Next Call subWait(objIE) With objIE **.document.getElementsByName("txt_meigara_comp")(0).Value = Range("A24")** End With Set objIE = Nothing End Sub
あなたの回答
tips
プレビュー