エラーが発生!アカウント取得プログラムが正常に動作しない原因とは?

このQ&Aのポイント
  • 見よう見まねで作成したアカウント取得プログラムがエラーで正常に動作しない問題について、詳しい方からの解説をお願いします。
  • 作成したアカウント取得プログラムの一部がオブジェクトをサポートしていないというエラーが発生しています。どの部分が原因なのか、教えてください。
  • アカウント取得プログラムの作成初心者ですが、エラーの内容を理解できずに困っています。エラーの原因や対処法について、詳しく教えてください。
回答を見る
  • ベストアンサー

エラーがでてしまう・・・・

お世話になります。 見よう見まねでアカウント取得プログラムを 作成してみたのですがエラーがでてうまく動作しません。 フォームに webbrowserとコマンドクリックボタン ひとつずつという簡単なプログラムなのですが・・。 エラーの内容は WebBrowser1.Document.All.mail.Value この部分が黄色くなりオブジェクトはこのプロパティをサポートしていません。。。とでます。 僕自身はじめて3週間ぐらいなんで 何が悪いのかさっぱり・・ 詳しい方教えてください。お願いします。 Private Sub Command1_Click() Dim objIE As Object 'IEオブジェクト参照用 Dim k As Integer Dim Now As Long For k = 93 To 1000 Set objIE = CreateObject("InternetExplorer.application") objIE.Visible = False WebBrowser1.Navigate2 "http://www.tram-stopper.com/community/adult/panel.cgi?http=a&sh=sh" Do While objIE.Busy = True DoEvents WebBrowser1.Document.All.ps.Value = "ken3k" WebBrowser1.Document.All.linkurl.Value = "http://www.yahoo.co.jp/" WebBrowser1.Document.All.Id.Value = "afx" & k WebBrowser1.Document.Forms(0).Submit     Now = Timer     While Timer < Now +1   '1秒間待機する     DoEvents     Wend Next k End Sub

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

多分、HTMLの読み込みが終了していないのに、そのHTMLの中の部分にアクセスしているからだと思います。 Do While objIE.Busy = True DoEvents Loop        の後に、 While WebBrowser1.Document.readyState <> "complete": Wend を入れてみてください。 蛇足ですが、kによるループは、何をしているのでしょうか? そのたびにCreateObjectする必要がありますか?

関連するQ&A

  • オブジェクト変数または With ブロック変数が設定されていません。

    下記の様に組みましたが、下記の★印の所で止まる様な事があります。 毎回止まるわけではないのですが、止まる時に「オブジェクト変数または With ブロック変数が設定されていません。」と表示されますが、 原因は何か?どの様にすればいいのか?など詳しく教えてください。 よろしくお願いします。 Sub test() Dim objIE As Object Dim strCOMMENT As String Set objIE = CreateObject("InternetExplorer.application") objIE.Visible = True objIE.Navigate "http://" While objIE.readystate <> 4 While objIE.busy = True DoEvents Wend Wend Wait_Time = DateAdd("s", 6, Now()) Do While Now() < Wait_Time DoEvents Loop 'データをセットする 'htmlドキュメント フォーム(0番目) アイテムに転記(代入)する objIE.Document.forms(0).Item("username").Value = "11111" objIE.Document.forms(0).Item("password").Value = "11111" While objIE.readystate <> 4 While objIE.busy = True DoEvents Wend Wend Wait_Time = DateAdd("s", 6, Now()) Do While Now() < Wait_Time DoEvents Loop objIE.Document.all.subm.Click While objIE.readystate <> 4 While objIE.busy = True DoEvents Wend Wend Wait_Time = DateAdd("s", 6, Now()) Do While Now() < Wait_Time DoEvents Loop For Each link In objIE.Document.Links If link.href = "http://" Then link.Click End If Next While objIE.readystate <> 4 While objIE.busy = True DoEvents Wend Wend Wait_Time = DateAdd("s", 6, Now()) Do While Now() < Wait_Time DoEvents Loop 'タイトル・コメントの読み込み strtitle = Sheets("sheet1").Range("k7") strCOMMENT = Sheets("sheet1").Range("k9") Application.WindowState = xlMinimized While objIE.readystate <> 4 While objIE.busy = True DoEvents Wend Wend Wait_Time = DateAdd("s", 6, Now()) Do While Now() < Wait_Time DoEvents Loop objIE.Document.forms(0).Item("title").Value = strtitle objIE.Document.forms(0).Item("comment").Value = strCOMMENT While objIE.readystate <> 4 While objIE.busy = True DoEvents ' Wend Wend Wait_Time = DateAdd("s", 6, Now()) Do While Now() < Wait_Time DoEvents Loop objIE.Document.all.submit.Click While objIE.readystate <> 4 While objIE.busy = True DoEvents Wend Wend Wait_Time = DateAdd("s", 6, Now()) Do While Now() < Wait_Time DoEvents Loop 'フォーム(0番目)を .Submit(確認) する objIE.Document.forms(0).getElementsByTagName("input")(11).Click '←★この部分で止まる時があります。 While objIE.readystate <> 4 While objIE.busy = True DoEvents Wend Wend Wait_Time = DateAdd("s", 6, Now()) Do While Now() < Wait_Time DoEvents Loop For Each link In objIE.Document.Links If link.href = "http://" Then link.Click End If Next While objIE.readystate <> 4 While objIE.busy = True DoEvents Wend Wend Wait_Time = DateAdd("s", 7, Now()) Do While Now() < Wait_Time DoEvents Loop objIE.Quit '.Quitで閉じる End Sub

  • VBAで教えてgooに自動ログインしたい

    Sub 教えてgoo() Dim objIE As Object Const READYSTATE_COMPLETE As Long = 4 Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True objIE.Navigate "https://login.mail.goo.ne.jp/id/authn/LoginStart?Site=oshiete.goo.ne.jp&Success=http%3A%2F%2Foshiete.goo.ne.jp%2F" Do While objIE.Busy = True DoEvents Loop Do Until objIE.ReadyState = READYSTATE_COMPLETE Loop objIE.document.all.all("uname").Value = "gooID" objIE.document.all.all("pass").Value = "gooPW" Do While objIE.Busy = True DoEvents Loop Do Until objIE.ReadyState = READYSTATE_COMPLETE Loop objIE.document.all("ログイン").Click End Sub --------------------------------------------------------- を実行してみても、 objIE.document.all.all("uname").Value = "gooID" objIE.document.all.all("pass").Value = "gooPW" objIE.document.all("ログイン").Click の部分がエラーになってしまいます。 教えてgooは、VBAでログインできないように規制されてるのでしょうか?

  • 「オブジェクトの破棄」と「メモリの解放」は同じ意味

    「オブジェクトの破棄」と「メモリの解放」は同じ意味ですか? ********************************* Sub Sample1() Dim objIE As Object Dim buf As String Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True objIE.navigate "http://oshiete.goo.ne.jp/" Do While objIE.busy DoEvents Loop Do While objIE.Document.readyState <> "complete" DoEvents Loop Set objIE = Nothing End Sub ********************************* の場合の「Set objIE = Nothing」は、 「オブジェクトの破棄」でしょうか? 「メモリの解放」でしょうか? どちらでもありますか? ご回答よろしくお願いします。

  • タイムストッププログラム

    お世話になります。 コマンドボタン2をおしても タイムがとまらないんですが・・・ なぜでしょうか? Private Sub Command1_Click() Dim k As Integer Dim NOW As Long For k = 1 To 1000 Text1.Text = k NOW = Timer While Timer < NOW + 1 '1秒間待機する DoEvents Wend If Command2.Value = True Then Exit For Next k End Sub

  • IEの操作(Busy)でエラーになる

    下記コードを実行するとBusyの所でエラーになってしまいます。 何が悪いのでしょうか?教えて下さい。 Excel2000で起動しました。 Sub tst031() Dim fff As String 'ファイルパス Dim objIE As Object 'オブジェクト Dim Myhtml As Variant 'HTMLタグデータ Dim objTAG As Object '制御htmlファイル fff = "http://oshiete.goo.ne.jp/" 'Webページ表示 Set objIE = CreateObject("InternetExplorer.Application") objIE.Navigate fff '画面表示待ち Do While objIE.Busy = True DoEvents Loop For Each objTAG In objIE.document.body.all Debug.Print objTAG.tagName Next objIE.Quit 'MsgBox Myhtml End Sub

  • VBAで文字の位置が正確に取得できない

    Excel2003のマクロで、URLを抜き出すマクロを作っているのですが、なぜかurl_endの値が正確に取得できません。何がいけないのでしょうか? 事象 url_endに格納される値がなぜか1376(くらいだったような・・)になってしまう。 url_startには1260が格納されており、<a href=の部分をきちんと取得している。 ソース Sub test() Dim objIE As Object Dim objTAG As Object Dim souce As String Dim url As String Dim url_start As String Dim url_end As String url_end = 1 Set objIE = CreateObject("InternetExplorer.application") objIE.Visible = False objIE.Navigate "http://dir.yahoo.co.jp/" Do While objIE.Busy = True DoEvents Loop Application.Wait Time:=Now + TimeValue("00:00:02") url_start = InStr(url_end, objIE.Document.All(1).Innerhtml,"<a href=", vbTextCompare) url_end = InStr(url_start,objIE.Document.All(1).Innerhtml, ">", vbTextCompare) url = Mid(objIE.Document.All(1).Innerhtml, url_start, url_end) Cells(1, 1).Value = url End Sub

  • 「地図」で検索するにはどういう操作をすればいいので

    ヤフーのトップページから 値を入れて検索を押すまではできるのですが 「ウェブ」ではなく「地図」で検索するにはどういう操作をすればいいのでしょうか? Sub yahoo() Dim objIE As Object Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True objIE.Navigate "http://www.yahoo.co.jp/" Do While objIE.Busy = True DoEvents Loop Do While objIE.Document.ReadyState <> "complete" DoEvents Loop objIE.Document.forms(0).elements("p").Value = "東京" '‘「地図」をクリックする操作をしたい objIE.Document.forms(0).submit Set objIE = Nothing End Sub 宜しくお願いいたします。

  • vbでIE操作~javascriptのonchangeイベントを使ったコンボボックスの操作の仕方を教えてください~

    お世話になります。 今、IEのコンボボックスの操作をしようとしているのですがどうもうまくいかず困ってます。 コンボボックスから選んだ値をクリックしてwebbrowserのページを移動したいのですがjavascriptが絡んでるせいかわからないのですがエラーがでてしまうんです。 下に書いてるのが私のコードなんですけどエラーがでるのは下から2行目のWebBrowser1.Document.Form(0).PG_TOBU.selectedIndex = 2 このコードでオブジェクトはこのメソッドをサポートしていませんとでてしまいます。 http://www.happy2-island.com/vbs/cafe02/index.html このページを参考にしてつくったのですが ちょっと自力では先にすすめそうになく質問しました。 お世話になります。 ---------以下コードです。--------- Private Sub Command1_Click() Dim now As Long WebBrowser1.Navigate "http://www.parkcity.ne.jp/~chaichan/src/javas213.htm" now = Timer While Timer < now + 5 '1秒間待機する DoEvents Wend WebBrowser1.Document.Form(0).PG_TOBU.selectedIndex = 2 End Sub

  • エクセルのVBAで最終行までループする方法

    エクセルのVBAで最終行までループする方法を教えてください。 下記がコードになります。 Dim objIE As Object Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True objIE.Navigate Range("A1").Value While objIE.ReadyState <> 4 Or objIE.Busy = True DoEvents Wend Range("B1").value = objIE.Document.all("zoom1").href

  • ラジオボタンをクリックしたい

    ie操作です。宜しくお願いいたします。 郵便局の再配達の依頼をvbaで行おうとしているのですが ラジオボタンにチェックする方法がわかりません。 「簡易・記録」にチェックを入れたいです。 https://trackings.post.japanpost.jp/delivery/delivery_request.do のソースを見ると、 <DIV><FONT class="explain_font_normal"> <input type="radio" name="mailTypeCode" value="13">簡易・記録 </FONT></DIV> となっているので Sub test1() Dim objIE As Object Set objIE = CreateObject("InternetExplorer.Application") objIE.Navigate "https://trackings.post.japanpost.jp/delivery/delivery_request.do" objIE.Visible = True Do While objIE.Busy = True DoEvents Loop Do While objIE.document.ReadyState <> "complete" DoEvents Loop objIE.document.forms(0).elements("mailTypeCode") = 13 objIE.document.all("mailTypeCode").Value = 13 objIE.document.all.forms(0)("mailTypeCode").Value = 13 Set objIE = Nothing End Sub としてみましたが、どれもダメでした。 宜しくお願いいたします。

専門家に質問してみよう