質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

3回答

29043閲覧

オブジェクト変数またはwith ブロック変数が設定されていません。

退会済みユーザー

退会済みユーザー

総合スコア0

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2016/07/23 23:47

excel VBA で以下のようなエラーが出ました。

どのようにすれば解決しますでしょうか?どうぞよろしくお願いします。

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

Sub テーブルタグ取得() Dim myIE As New InternetExplorer Dim myLink As HTMLAnchorElement With myIE .Visible = True .navigate Range("B44").Value Do While .Busy Or .readyState <> READYSTATE_COMPLETE Loop Dim htmlDoc As HTMLDocument Set htmlDoc = myIE.document Dim colTR, colTH, colTD As IHTMLElementCollection Set colTR = htmlDoc.getElementsByTagName("tr") Dim el As IHTMLElement For Each el In colTR Set colTH = el.getElementsByTagName("th") Set colTD = el.getElementsByTagName("td") Debug.Print colTD(0).innerText Next el End With End Sub

どうぞよろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kaz.Suenaga

2016/07/24 04:08

エラーで止まるのはどの行でしょうか。
退会済みユーザー

退会済みユーザー

2016/07/25 09:47

エラーは Debug.Print colTD(0).innerText の行でおこっています。 他の方法を考えたいと思います。
guest

回答3

0

ベストアンサー

他の方法で解決しました。

ご協力ありがとうございました。

投稿2016/08/13 08:48

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

coco_bauer

2016/08/13 11:22

あとから見る人の参考になるように、どのような方法で解決したのかを書いてください。
guest

0

実行環境やエラーの発生個所が記載されていないので回答が難しいです。

・お使いの環境のOS,Excel,IEなどのバージョンは何を利用していますか?
・エラー内容はわかりましたが、それはどの行で発生していますか?

なお、当方の環境(Windows7,Office2010,IE11)では、提示いただいたコードでエラーなく動作しました。
動作させるに当たり、下記2つの参照設定を追加しています。
・Microsoft HTML Object Library
・Microsoft Internet Controls

参考になれば幸いです。

投稿2016/07/25 01:06

編集2016/07/25 01:08
jawa

総合スコア3013

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/07/25 09:45

ご指摘ありがとうございます。こちらの環境はwindows10 excel2016 ieは最新です。 エラーは Debug.Print colTD(0).innerText の行でおこっております。 他の方法でやってみようと思います。
guest

0

Internet explorerのオブジェクトを作るコードが間違っているからだと思います。

Dim myIE As New InternetExplorer

この宣言だけではmyIEに値は入りません。
値が入っていないmyIEを with で使ったために、「with ブロック変数が設定されていません」というエラーになったのでしょう。

下のような修正をすれば、動作するようになるはずです。試してみてください。

Excel

1 '' Dim myIE As New InternetExplorer の行(質問のコードの2行目)を下の行で置き換える。 2 Dim myIE As Object 3 4 'そして、IEを起動(IEのオブジェクトを作る)するコード(下の行)を"With myIE"の行(質問の行の5行目)の上に追加する。 5 Set myIE = CreateObject("InternetExplorer.Application")

投稿2016/07/24 00:25

coco_bauer

総合スコア6915

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/07/24 02:36

解答ありがとうございます。 ですが解決には至りませんでした、ありがとうございました。
coco_bauer

2016/07/24 04:35

何が解決して、どんな問題が残りましたか?
退会済みユーザー

退会済みユーザー

2016/07/25 09:46

解決はしておりません、エラーのままです。 他の方法をやってみようと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問