「エラー 91 オブジェクト変数または With ブロック変数が設定されていません。」の解決方法
未読分:3件
昨日以降(0) 2日前以降(0) 3日前以降(0) 4日前以降(0) 5日前以降(0)
近田 伸矢, 植木 悠二, 上田 寛
IEのデータ収集&自動操作のプログラミング本はこの1冊だけ!IEの起動やポップアップウィンドウ、表示を制御する基本的なコードはもちろん、テキストボックスやラジオボタン、表、ハイパーリンクなどのHTML部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。
Message#3 2015年10月14日(水)10時39分 From: smile | 返事 削除 変更 |
ジャッカルのメッセージ(#2)への返事 > > Dim Doc As HTMLDocument > まず、Docオブジェクトにくくらずie.documentで処理をしてみる。 > > > Do > > ie.navigate (Worksheets("Sheet6").Range("B6")) '"入力頁" > > Call waitNavigation(ie) > > Set Doc = ie.document > > あとは、このDoがどの処理なのかが気になる。これだけならエラーになるはずだけど。 すいません!Doはこれなしです! 消すのを忘れてていました。 それとDoc を使わずにie.documentで処理をするとなぜかうまくいきました! ありがとうございます! |
Message#2 2015年10月12日(月)08時53分 From: ジャッカル | 返事 削除 変更 |
> Dim Doc As HTMLDocument まず、Docオブジェクトにくくらずie.documentで処理をしてみる。 > Do > ie.navigate (Worksheets("Sheet6").Range("B6")) '"入力頁" > Call waitNavigation(ie) > Set Doc = ie.document あとは、このDoがどの処理なのかが気になる。これだけならエラーになるはずだけど。 |
Message#1 2015年10月11日(日)08時35分 From: smile | 返事 削除 変更 |
以下のVBAのプロシージャー最後から10行目@で「エラー 91 オブジェクト変数または With ブロック変数が設定されていません。」となります。 原因と修正が判る方、ご回答をお願いいたします。 Sub テスト() Dim ie As InternetExplorer Dim Doc As HTMLDocument Dim ObjTables As Object Dim ObjTag As Object Dim r As Long Dim c As Long Dim i As Long Set ie = CreateObject("InternetExplorer.Application") ie.Visible = True ie.navigate "WEBサイトのURL文字" '"1頁目" Call waitNavigation(ie) Set Doc = ie.document Sheets("Sheet2").Select Cells.ClearContents Cells.NumberFormatLocal = "G/標準" r = 1 c = 1 'テーブル開始タグの取得 For i = 0 To Doc.all.Length - 1 'ドキュメントの構成タグを一つずつ調査 If Doc.all(i).tagName = "TH" Or Doc.all(i).tagName = "TD" Then 'TD、THタグなら列を右にテキストをセルに書き込む c = c + 1 Cells(r, c) = Doc.all(i).innerText ElseIf Doc.all(i).tagName = "TR" Then 'TRタグなら改行し、1列目に戻す r = r + 1 c = 1 End If Next i Do ie.navigate (Worksheets("Sheet6").Range("B6")) '"入力頁" Call waitNavigation(ie) Set Doc = ie.document Sheets("Sheet2").Select Cells.ClearContents Cells.NumberFormatLocal = "G/標準" r = 1 c = 1 'テーブル開始タグの取得 For i = 0 To Doc.all.Length - 1 'ドキュメントの構成タグを一つずつ調査 @ If Doc.all(i).tagName = "TH" Or Doc.all(i).tagName = "TD" Then 'TD、THタグなら列を右にテキストをセルに書き込む c = c + 1 Cells(r, c) = Doc.all(i).innerText ElseIf Doc.all(i).tagName = "TR" Then 'TRタグなら改行し、1列目に戻す r = r + 1 c = 1 End If Next i |
昨日以降 2日前以降 3日前以降 4日前以降 5日前以降