- ベストアンサー
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
- tarinko_06
- お礼率71% (179/252)
- Visual Basic
- 回答数3
- ありがとう数3
- みんなの回答 (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なので実際にチェックできないのですが、そちらの問題かもしれません。
その他の回答 (2)
- hotosys
- ベストアンサー率67% (97/143)
Excelは2000と言うことですが、OSとieのバージョンは何でしょうか? osはxpそれともvistaまさか7? ieのバージョンは6か7か8かそれ以外か?
お礼
回答ありがとございます。 OSはVISTAでIEは7です。 試しに会社のXPで2003を使い IEの操作をやってみましたがこちらは問題なく出来ました。 何かのバージョンが悪いのでしょうか…。
- cistronezk
- ベストアンサー率38% (120/309)
とりあえず >Set objIE = CreateObject( の次に objIE.Visible = True を追加したらどうなります?
お礼
回答ありがとうございます。 追加しても駄目でした。 今度はリモートがないとか言われちゃいました。
関連する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の方法でブラウザを開くメリットはあるのでしょうか?
- ベストアンサー
- Visual Basic
- 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
- 締切済み
- Visual Basic
お礼
教えてもらったURLの通りにしたら出来ました! ありがとうございます。助かりました!! .