プロが教えるわが家の防犯対策術!

現在、秀和システムの「IEを自在に操るExel VBAプログラミング入門」を購入してVBAの勉強をしています。
その本のP.120でOffice.comからタイトルを取得するコードのサンプルがあるのですが、コンパイルエラーが出てしまい試行錯誤しても解決出来ず、行き詰ってしまいました。

その時のコードは下記となります。

========================
Public Sub IE基本_リンク一覧を取得()
Dim ie As New InternetExplorer
ie.Navigate "http://office.microsoft.com/ja-jp/"
ie.Visible = True
While ie.Busy = True Or ie.ReadyState < READYSTATE_COMPLETE
DoEvents
Wend
Dim doc As HTMLdocument
Set doc = ie.Document
Debug.Print doc.Title

End Sub
========================

ちなみにエラーは

”コンパイルエラー:
ユーザー定型型は定義されていません。”

で恐らく”doc As HTMLdocument”に問題があるのかと思っているのですが、
どなたか教えていただけると幸いです。

こちらのPC環境はMicro soft Exel2010となります。

A 回答 (2件)

「ツール」メニューの「参照設定」のところで


Microsoft HTML Object Library
Microsoft Internet Controls
のどちらか、あるいは両方がチェックされていないのではないのではないかと思います。
手元の環境はExcel2007とIE11ですが、それらにチェックしたら動きました。
    • good
    • 2
この回答へのお礼

ご回答誠にありがとうございました。

おっしゃる通り、Microsoft HTML Object Libraryのチェックがされておりませんでした。
こちらをチェックして再度トライした所、今度は

Set doc = ie.Document

こちらが"実行時エラー'13':型が一致しません。"のエラーが発生してしまいました。

色々試行錯誤し、Dim doc As HTMLDocumentを丸ごとカットすることで、タイトルを取得する事が出来たのですが...

お礼日時:2015/02/22 23:08

エラーが出たとのことですが、実行環境によっては、型が違うのかもしれませんね。


デバッガでウォッチすれば、 ie.Document が実際にどんな型になっているか確認できるかと思います。

なお、
Dim doc As HTMLDocument
を削除すると、暗黙的に
Dim doc As Variant
と宣言したのと同じ意味になります。
Variant型には、Objectを含めた様々な型のデータを格納できます。
    • good
    • 1
この回答へのお礼

ありがとうございます。もう少し勉強してみます。
また何かありましたら、宜しくお願いいたします。

お礼日時:2015/02/25 17:32

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!