• ベストアンサー

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

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

  • ベストアンサー
  • hotosys
  • ベストアンサー率67% (97/143)
回答No.3

No.2 です。 xpとie6では動くようでした。 busyがおかしいのはCreateObjectされたobjIEでの問題のようなので、excelと言うよりie(またはそのバージョン)またはosに関わる問題(と言うか違い)ではないかと思ったためです。 ちゃんと動いた会社のieのバージョンは6ではないかと思います。 ie7は色々扱いが難しいという話を見た事があって http://www.happy2-island.com/vbs/cafe02/capter00711.shtml それに関わる問題かもしれません。 ただ、documentの取得のエラーなどではなくbusyの取得がエラーになるのはちょっと不明なのですが(普通は取得する事自体はエラーにならなそう)・・・ ie6なので実際にチェックできないのですが、そちらの問題かもしれません。

tarinko_06
質問者

お礼

教えてもらったURLの通りにしたら出来ました! ありがとうございます。助かりました!! .

その他の回答 (2)

  • hotosys
  • ベストアンサー率67% (97/143)
回答No.2

Excelは2000と言うことですが、OSとieのバージョンは何でしょうか? osはxpそれともvistaまさか7? ieのバージョンは6か7か8かそれ以外か?

tarinko_06
質問者

お礼

回答ありがとございます。 OSはVISTAでIEは7です。 試しに会社のXPで2003を使い IEの操作をやってみましたがこちらは問題なく出来ました。 何かのバージョンが悪いのでしょうか…。

回答No.1

とりあえず >Set objIE = CreateObject( の次に objIE.Visible = True を追加したらどうなります?

tarinko_06
質問者

お礼

回答ありがとうございます。 追加しても駄目でした。 今度はリモートがないとか言われちゃいました。

関連するQ&A

  • ExcelVBAについて質問です。

    ExcelVBAについて質問です。 Webのデータを取得したいのですがたまにエラーがでます。 そこで1回エラーが出たら再度同じ処理をして、2回目もエラーが出たら エラーメッセージを表示させたいです。 しかし1回目エラーで2回目取得できたらうまくいくのですが 2回連続でエラーになったら途中で止まってしまいます。 2回連続でエラーになった時の処理方法を教えてください。 Public Sub クリック_Click()  On Error GoTo Err1  Dim エラー As Integer For エラー = 0 To 1  'HTML読み込み   Dim fff As String 'ファイルパス   Dim objIE As Object 'オブジェクト   Dim Myhtml As Variant 'HTMLタグデータ  '制御htmlファイル   phn = ThisWorkbook.Path   fff = "URL"  'Webページ表示   Set objIE = CreateObject("InternetExplorer.Application")   objIE.Navigate fff  '画面表示待ち   Do While objIE.Busy = True    DoEvents   Loop  Myhtml = objIE.Document.Body.innerHTML  objIE.Quit  Sheets("シート").Range("A1").Value = Myhtml Exit Sub Err1:  Next エラー  MsgBox "エラー発生" 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 で オートメーションエラー 起動されたオブジェクトはクライアントから切断されました。 となります。 なぜローカルだと、エラーになるのでしょうか? 何が違うのでしょうか?

  • 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();" でうまくいってたのですが、 なぜか出来なくなってしまいました。 そんな事ありますか? コードが間違ってるのでしょうか? ご教授よろしくお願いします。

  • vbaでIEの操作

    こんばんは。やりたいことができないので教えてください。 vbaで指定のurlを開きたいです。 エクセル2003とIE8です。 Sub test001() Dim ObjIE As Object Set ObjIE = CreateObject("InternetExplorer.application") ObjIE.Visible = True ObjIE.navigate "http://jp.msn.com/" Do While ObjIE.Busy = True '表示させるまで待つ DoEvents Loop End Sub これでIEを立ち上げてURLを開けるのですが これでは新しいウインドウで開いてしまいます。 現在IEを立ち上げていて、上記のコードを実行すると 新たなタブで開きたいですが解決策はありますか? ObjIE.Visible = True が原因かと思い、これを抜かしてみましたが そうすると何も起こりません。 VBAで既に開いているIEの新しいタブでURLを開く方法をご教授ください!よろしくお願いします。

  • IE操作 VBA

    リコーのスキャナーを使っているのですが http://xx.xx.xxx.xxx/web/guest/ja/websys/webArch/mainFrame.cgi を開いて、 javascript:wsMenu_jumpUrl('../../webdocbox/docListPage.cgi',10000) をクリックしたいのですが、どのように行えばよろしいでしょうか? objIE.Navigate "javascript:wsMenu_jumpUrl('../../webdocbox/docListPage.cgi',10000)" をしてもダメなので、 Sub スキャナー() Dim objIE As Object Set objIE = CreateObject("InternetExplorer.Application") objIE.Navigate "http://xx.xx.xxx.xxx/web/guest/ja/websys/webArch/mainFrame.cgi" objIE.Visible = True Do While objIE.Busy = True Or objIE.ReadyState <> 4 DoEvents Loop Debug.Print objIE.Document.Links.Length objIE.Quit Set objIE = Nothing End Sub で、リンクの数を数えて、ひとつずつクリックして確認してみようと思ったのですが 0が返ってきてしまいます。 VBAでjavascript:wsMenu_jumpUrl('../../webdocbox/docListPage.cgi',10000) を押す方法を教えてください。

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

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

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

    ヤフーのトップページから 値を入れて検索を押すまではできるのですが 「ウェブ」ではなく「地図」で検索するにはどういう操作をすればいいのでしょうか? 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 宜しくお願いいたします。

  • VBAでIE操作をするサンプル

    VBAでIE操作をするサンプルをネットでいくつか見ているのですが Sub Sample1() Dim objShell As Object Dim objIE As New InternetExplorer Set objShell = CreateObject("Shell.Application") objIE.Visible = True objIE.Navigate "http://www.yahoo.co.jp/" Set objIE = Nothing Set objShell = Nothing End Sub Sub Sample2() Dim objIE As InternetExplorer Set objIE = CreateObject("InternetExplorer.application") objIE.Visible = True objIE.Navigate "http://www.yahoo.co.jp/" Set objIE = Nothing End Sub ではどちらを使った方がいいのでしょうか? 圧倒的にSample2の方がネットでは多いのですが Sample1のやり方もあることを知りました。 Sample1の方法でブラウザを開くメリットはあるのでしょうか?

  • MSXML2で、サイトのタイトルを取得したい

    アクセスvbaです。 InternetExplorerの方法だと、 **************************************************** Sub Sample1() Dim ObjIE As InternetExplorer Set ObjIE = CreateObject("InternetExplorer.Application") ObjIE.Navigate "http://www.yahoo.co.jp/" ObjIE.Visible = True Do While ObjIE.Busy = True DoEvents Loop Do While ObjIE.Document.ReadyState <> "complete" DoEvents Loop Debug.Print ObjIE.Document.Title Debug.Print ObjIE.LocationName ' 同じ ObjIE.Quit Set ObjIE = Nothing End Sub **************************************************** で、該当のサイトのタイトルを取得できるのですが、 これではなく、 **************************************************** Sub Sample2() Dim objMSXML2 As Object Dim myObj As Object Dim myAll As Variant Set objMSXML2 = CreateObject("MSXML2.XMLHTTP") objMSXML2.Open "GET", "http://www.yahoo.co.jp/", False objMSXML2.Send myAll = objMSXML2.responseText 'ソースを抜き出す ’タイトル取得 Set objMSXML2 = Nothing End Sub **************************************************** の方法で、サイトのタイトルを取得したいのですが、 可能でしょうか? コードをご教授ください。よろしくお願いします。

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

    VB6(VBA)でIEを操作し、表示ページのソースの読込みの確認にDocumentCompleteイベントを使用することを考えています。それで下記のテストプログラムを作成しますたが、DocumentCompleteイベントプロシジャに制御が渡りません。 その原因をご教示して頂きたくお願いします。 Dim WithEvents objIE As InternetExplorer --------------------------------------------------------------- Private Sub CommandButton1_Click() Dim objIE As Object Set objIE = CreateObject("InternetExplorer.application") objIE.Visible = True objIE.Navigate "http://www.yahoo.co.jp/" While objIE.readyState <> 4 While objIE.Busy = True DoEvents Wend Wend objIE.Navigate "http://www.goo.ne.jp/" While objIE.readyState <> 4 While objIE.Busy = True DoEvents Wend Wend End Sub ------------------------------------------------------------- Private Sub objIE_DocumentComplete(ByVal pDisp As Object, URL As Variant) MsgBox "ソースの読込み完了" End Sub

専門家に質問してみよう