オートメーション エラーです。起動されたオブジェクトはクライアントから切断されました。
未読分:4件
昨日以降(0) 2日前以降(0) 3日前以降(0) 4日前以降(0) 5日前以降(0)
近田 伸矢, 植木 悠二, 上田 寛
IEのデータ収集&自動操作のプログラミング本はこの1冊だけ!IEの起動やポップアップウィンドウ、表示を制御する基本的なコードはもちろん、テキストボックスやラジオボタン、表、ハイパーリンクなどのHTML部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。
Message#4 2015年12月4日(金)18時12分 From: 名無しの次郎 | 返事 削除 変更 |
> 申し訳ありません。 > ご指摘のところを修正したら動きました。 > ステップで確認した時に、その前で止まっていたので関係ないと思っていたのですが、、、 > > 次に進めそうです。ありがとうございました。 無事できてなによりです。 idは単体、他は複数形でよく間違いえるところです。 添え字がなぜ必要かなども知らずに利用している方が多いので、そのあたりをしっかり理解すると先に進めると思います。 今回については、以下が参考になるかと思いますので、一度みてみてください。 http://www.vba-ie.net/element/getelementbyname.html |
Message#3 2015年12月4日(金)11時02分 From: xl | 返事 削除 変更 |
名無しの次郎 さん ご指摘ありがとうございます。修正します。 他には何か無いでしょうか? それ以前の段階で止まってしまっているのです。 よろしくお願いします。 追記: 申し訳ありません。 ご指摘のところを修正したら動きました。 ステップで確認した時に、その前で止まっていたので関係ないと思っていたのですが、、、 次に進めそうです。ありがとうございました。 |
Message#2 2015年12月4日(金)09時53分 From: 名無しの次郎 | 返事 削除 変更 |
> ie.document.getelementbyname("USER").Value = "user" > ie.document.getelementbyname("PASS").Value = "pass" > ie.document.getelementbyname("ログイン").Click GetElementsByNameメソッドは複数形です。 まずElementの「s」がないことと、「USER」「PASS」「ログイン」が何番目の要素になるのかを指定する必要があります。 |
Message#1 2015年12月3日(木)18時43分 From: xl | 返事 削除 変更 |
こんにちは このサイトを参考に、 ログインサイトを開いてログインするための下のようなコードを作成したのですが、 スレッドタイトルのようなエラーが出てしまい、実行できません。 デバッグしたところ★の部分で止まっていました。 ステップで見てみると、ie.Navigate でサイトを開くところまで、 正確には Call を実行する直前までは ie の中身があるようです。 (ie.busy のウォッチで確認) 念の為、 サブルーチンをやめて一本で書いてもみましたが同様にNavigateの後ろでNGでした どこがおかしいのでしょうか? ケアレスミスだったらすみません。 windows7 professional 32bit excel 2003 〜〜〜以下コード〜〜〜 ログインサイトのurlは伏せてあります #If VBA7 Then Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal ms As LongPtr) #Else Private Declare Sub Sleep Lib "kernel32" (ByVal ms As Long) #End If Sub 表示() Dim ie As Object Call ieView(ie, "http://ログイン画面.html") ie.document.getelementbyname("USER").Value = "user" ie.document.getelementbyname("PASS").Value = "pass" ie.document.getelementbyname("ログイン").Click End Sub Sub ieView(ie As Object, urlName As String, Optional viewFlg As Boolean = True) Set ie = CreateObject("InternetExplorer.Application") ie.Visible = viewFlg ie.Navigate urlName Call ieCheck(ie) End Sub Sub ieCheck(ie As Object) Dim timeOut As Date timeOut = Now + TimeSerial(0, 0, 20) '★ Do While ie.busy = True Or ie.ReadyState <> 4 DoEvents Sleep 1 If Now > timeOut Then objIE.Refresh timeOut = Now + TimeSerial(0, 0, 20) End If Loop timeOut = Now + TimeSerial(0, 0, 20) Do While ie.document.ReadyState <> "complete" DoEvents Sleep 1 If Now > timeOut Then objIE.Refresh timeOut = Now + TimeSerial(0, 0, 20) End If Loop End Sub |
昨日以降 2日前以降 3日前以降 4日前以降 5日前以降