• 締切済み

DocumentCompleteイベントプロシジャに制御が渡らない

vbhanatyanの回答

回答No.3

もうひとつだけ、ヒントを。 Dim WithEvents objIE As InternetExplorer の意味を理解しておいて下さい。 その上で下記のコードの意味する事に注目して下さい。 Dim objIE As Object 上記が理解できないなら、そのコードを書くように指示した方に教えてもらって下さい。

関連するQ&A

  • 現在表示されているURLを取得したいのですが

    Sub test1() Dim objIE As InternetExplorer Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True objIE.Navigate "http://www.goo.ne.jp/" Do While objIE.Busy = True Or objIE.ReadyState <> 4 DoEvents Loop Debug.Print objIE.Navigate Set objIE = Nothing End Sub //////////////////////////////////////////////// をやろうとすると、 Debug.Print objIE.Navigate の部分で、「引数は省略できません。」とエラーになります。 どう修正すればいいか教えてください。 ("http://www.goo.ne.jp/"はダミーです)

  • オブジェクト変数または 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

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

    「オブジェクトの破棄」と「メモリの解放」は同じ意味ですか? ********************************* 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」は、 「オブジェクトの破棄」でしょうか? 「メモリの解放」でしょうか? どちらでもありますか? ご回答よろしくお願いします。

  • サイトのソースのsubmitボタンの数を取得したい

    サイトのソースのsubmitボタンの数を取得したいのですが Sub test() Dim objIE As InternetExplorer Dim MyRow As Long Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True objIE.Navigate "http://www.coneco.net/" Do While objIE.Busy = True Or objIE.ReadyState <> 4 DoEvents Loop Debug.Print objIE.Document.all.tags("input").Type("submit").Count Set objIE = Nothing End Sub だとうまく動きません。 どう、変更すればよろしいですか?

  • ie操作 ローカルパスだとエラーになる

    ヤフーなら問題なくコードが動くのに、URLがローカルのパスだと、エラーになってしまいます。 具体的には、 *********************************************************** Sub Sample1() Set objIE = CreateObject("InternetExplorer.Application") objIE.Navigate "http://www.yahoo.co.jp/" objIE.Visible = True Do Until objIE.ReadyState = 4 Loop Do While objIE.Busy = True DoEvents Loop End Sub *********************************************************** だと、問題なく実行されるのに、 *********************************************************** Sub Sample2() strFName = MyDesktop & "\index.html" Set objIE = CreateObject("InternetExplorer.Application") objIE.Navigate strFName objIE.Visible = True Do Until objIE.ReadyState = 4 Loop Do While objIE.Busy = True DoEvents Loop End Sub ------------------------- Function MyDesktop() Dim WSH As Variant Set WSH = CreateObject("Wscript.Shell") MyDesktop = WSH.SpecialFolders("Desktop") Set WSH = Nothing End Function *********************************************************** だと、 Do Until objIE.ReadyState = 4 で オートメーションエラー 起動されたオブジェクトはクライアントから切断されました。 となります。 なぜローカルだと、エラーになるのでしょうか? 何が違うのでしょうか?

  • https:/○○login.php エラーになる

    win7 32ビット オフィス2010です。 https:/○○login.php のようなサイトを開こうとすると ------------------------------------------------------ Dim objIE As InternetExplorer Sub test() Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True objIE.Navigate "https:/○○login.php" Call WaitIE1(objIE) End Sub ------------------------------------------------------ Function WaitIE1(objIE As InternetExplorer) Do While objIE.Busy = True DoEvents Loop Do While objIE.Document.ReadyState <> "complete" DoEvents Loop End Function ------------------------------------------------------ このコードがエラーになります。 Do While objIE.Document.ReadyState <> "complete" の部分で 実行時エラ― -2147417848 オートメーションエラーです。 起動されたオブジェクトはクライアントから切断されました。 となります。 objIEをウォッチ式に登録してみてみると Function WaitIE1(objIE As InternetExplorer) の時に、「変数なし」となっています。 objIE.Navigate http://www.goo.ne.jp/ にすれば、 エラーにならずに、コードが最後まで行きます。 ウォッチ式を見ても 「変数なし」にはなりません。 この違いは何でしょうか?

  • エクセルの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を立ち上げてステータスバーのテキストを取得して、 「ページが表示されました」を取得出来たら、次のコードへ進みたいのですが、 下のコードでStatusTexttを書き出しても「ページが表示されました」まで取得できません。 Sub test() Dim objIE As InternetExplorer Dim i As Long Set objIE = CreateObject("InternetExplorer.Application") objIE.Navigate "http://www.goo.ne.jp/" objIE.Visible = True Workbooks.Add Cells(1, 1) = objIE.StatusText i = 2 Do While objIE.Busy = True Or objIE.ReadyState <> 4 DoEvents Cells(i, 1) = objIE.StatusText i = i + 1 Loop Cells(i, 1) = objIE.StatusText Set objIE = Nothing End Sub Do While objIE.Busy = True Or objIE.ReadyState <> 4 ここら辺のコードを弄ればいいような気がしますが、うまくいきません。 ご回答よろしくお願いします。

  • これは何がおかしいですか?

    こんばんは。 会社のWEBアプリを開くコードなのですがエラーになります。 Dim objIE As Object Sub webアプリ() Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True objIE.Navigate "https://○○.aspx" Call IE_wait End Sub Sub IE_wait() Const READYSTATE_COMPLETE As Long = 4 Do Until objIE.ReadyState = READYSTATE_COMPLETE Loop Do While objIE.Busy = True DoEvents Loop End Sub こうすると、 Do Until objIE.ReadyState = READYSTATE_COMPLETE の部分で、 --------------------------- 実行時エラー-2147417848 もしくは 実行時エラー-2147023179 オートメーションエラーです。 そのインターフェイスは認識されません。 --------------------------- になります。 最初に実行時エラー-2147417848になり、デバッグボタンを押すと 実行時エラー-2147023179に変化します。 Dim objIE As Object を Dim objIE As InternetExplorer にしてもエラーが発生します。 しかし、 objIE.Navigate "https://○○.aspx" を objIE.Navigate http://www.goo.ne.jp/ にすると、エラーは発生しません。 https://○○.aspxは存在するアドレスです。 問題なく表示はされています。 表示するまで待たせて次のコードを書きたいので、表示するまで待つ処理をしたいです。 ご教授よろしくお願いします。

  • ie操作 ボタンが押せる時と押せない時がある

    こんばんは。よろしくお願いします。 ie操作でボタンが押せる時と押せない時があるのですが、 違いがわかりません。 --------------------------------------------------------- Sub test1() Dim objIE As Object Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True objIE.Navigate "http://www.mitsui-direct.co.jp/customer/" 'ダイレクトにログインページへはいけない。 Do While objIE.Busy = True Or objIE.ReadyState <> 4 DoEvents Loop objIE.Navigate "javascript:gotoMyhp();" Set objIE = Nothing End Sub --------------------------------------------------------- これなのですが、http://www.mitsui-direct.co.jp/customer/のサイトへいって、 右側の「Myホームページログイン」を押したいのですが、 最初は、objIE.Navigate "javascript:gotoMyhp();" でうまくいってたのですが、 なぜか出来なくなってしまいました。 そんな事ありますか? コードが間違ってるのでしょうか? ご教授よろしくお願いします。