[[20070219032632]] 『オブジェクト変数またはWithブロック変数が設定さ』(スフレ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『オブジェクト変数またはWithブロック変数が設定されていません…と出ます』(スフレ)

 IEオブジェクトを使ってネットから情報を取得するためのVBAを作ろうとしていますが、エラーが出て何が悪いのかわからないので教えてください。
 下記VBAは私が作っているコードの一部を簡略化したものです。エラーが出る部分だけを抜き出しました。

 1.まずUserFormをひとつ作ります。

 2.CommandButton1と大きめのTextbox1(MultilineをTrueに)を作ります。

 3.このCommandButton1を押すと取得したhtmlの内容(テキスト)がTextbox1に表示されるように以下のコードを書きます。
(実際はこのhtmlからさらにデータを抽出しますが今回は省略します)。

 =================================================================

 Private Sub CommandButton1_Click()

 Dim objIE
 Dim strBody As String
 Dim ln As Long

 'objIEオブジェクトを作成
 Set objIE = CreateObject("InternetExplorer.Application")

 '指定したURLを表示
 objIE.Navigate "http://money.goo.ne.jp/investment/stocks/rw.php?url=/goo/market/index.html"

 'ページの読み込みが終わるまでループ
 Do Until objIE.Busy = False
 Loop

 '表示したページの<BODY>部のHTMLを取得
 strBody = objIE.Document.Body.InnerHtml '…@

 'objIEオブジェクトの破棄
 Set objIE = Nothing

 TextBox1.Text = strBody

 End Sub

 =================================================================

 で、UserForm1を実行し、CommandButton1を押すとhtmlの内容がTextBox1に表示される と思います。
 ですが、何回か押すと以下のようなエラーが出るのです。エラー箇所は上記コードの@の場所です。

 「実行時エラー'91':
 オブジェクト変数またはWithブロック変数が設定されていません」

 CommandButton1を1回目押したときにエラーが出る場合や、5回目のときにエラーが出る場合などエラーが出るタイミングが一定ではありません。
 なぜこのようなことが起こるのでしょうか?また対処法は何かあるでしょうか?

 私は以下のサイトを参考に上記コードを作りました。
http://www.happy2-island.com/vbs/cafe02/capter00701.shtml
http://www.happy2-island.com/vbs/cafe02/capter00707.shtml

 WindowsXP Excel2000SP2

 長文で申し訳ありませんが、以上よろしくお願いいたします。

 >'ページの読み込みが終わるまでループ
 >Do Until objIE.Busy = False
 >Loop
 待ちのところを下のコードに変えてみてください。
 読みこみが完了する前に次の処理へ行っているのでエラーが出ているのでしょう。

    While (objIE.busy = True Or objIE.readystate <> 4)
        DoEvents
    Wend
 (やっちん)


 やっちんさんありがとうございます!何度押してもエラーが出なくなりました。
 Do〜Loopが原因だったとは…。
  (スフレ)

すいません。VBAでIEを操作してデータを
収集したいと思っているのですが、サイト自体がプログラムでの
アクセスを拒否している場合、VBAでのIE操作は不可能でしょうか。

ぶしつけに申し訳ありません。
ご回答何卒宜しくお願い致します。


 (↑は[スフレ]さんではないと思われるので)
このスレッドは2007/02/19に投稿されたものです。
ニックネーム(ハンドルネーム)を投稿の都度御記名ください。
混乱を避けるためでもあり、また、この掲示板のお約束でもあります。
 
関連はしているかもしれませんが、新規で御質問される案件かと思われます。
>サイト自体がプログラムでのアクセスを拒否
ということなので、結論を出すには具体的なサイトアドレスの提示も
必要かもしれません。
(みやほりん)(-_∂)b 2011/07/14

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.