vbaでの参照設定を聞きたいです現在下記のように設定しプログラミングしています。
Dim ie As InternetExplorer
Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
ie.Navigate "URL"
と設定し
「ie.」と入力すれば
Document~・・・等が表示されますが、
「ie.Document.」と入力してもそのあとに続く命令文が出てきません。
.getElementById~・・・などが表示したいのですがどのような設定にすれば可能でしょうか?
画像に参照設定を張り付けておきます。そちらも確認しご指導ください。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
#3さんのご指摘のとおりだと思いますが、もう少し加えさせていただきます。
getElementById
おっしゃっているのは、インテリセンスのことだと思いますが、
本来、それは、IEオブジェクトの配下ではないのではありませんか?オブジェクトブラウザをご覧になれば分かります。
(HTMLDocument をフルに書くと以下のなります)
Sub TestHTML()
Dim doc As New MSHTML.HTMLDocument '参照設定
With doc
Set obj = .getElementById("First") '←インテリセンスが出ます。
End With
End Sub
つまり、参照設定のリストの中の HTMLDocument になるのですが、
これをわざわざ参照設定しなくても、使えるわけです。
実践的に、IEオブジェクト(オートメーション)のままで、HTMLDocument に乗せないのは、IEオブジェクトそのものが反応してくれるからです。OffLineにしたら、HTMLDocument に乗せないと反応してくれません。ただし、HTMLDocument を使う意味は、そういう目的ではなく、Document を再びオブジェクトにするためだと理解しています。
コーディングの際は、概ね、OffLineですから、インテリセンスはあまりアテにしないほうがよいと思います。ちなみに、私の場合は、スペル・ミスするので、いくつか頻繁にでるものは、テンプレートのショートカットにして出せるようにしています。
オブジェクトブラウザの添付画像も用意しましたが、#3さんが出していただいておりますので、割愛しました。
No.3
- 回答日時:
こんにちは
先日も、似たような疑問が出されていたようです。
https://oshiete.goo.ne.jp/qa/9626847.html
エディタの仕組みは知りませんので、以下は推測での回答ですが・・・
「ie.」などの入力の際にヒントで表示されるのは、参照設定をしているオブジェクトモデルで定義されている内容と思われます。
ご提示のコードの場合、ieは
Dim ie As InternetExplorer
として設定されていますので、オブジェクトブラウザ(添付図上段)の内容が表示されます。
試しに、参照設定でInternet Controlsのチェックを外してみると、ご提示のコードのままでは、実行時にDimで参照エラーが出ます。しかし、この宣言を
Dim ie As Object
に変えることで、参照設定していなくても動作はします。
ただし、この場合は編集時に「ie.」と入力してもヒント表示はされません。
さて、上記のオブジェクトブラウザで見てみると、ie.Documentは読み取り専用のプロパティとして設定されています。
(実際の内容はドキュメントオブジェクトなので、操作等できますが…)
では、次に
Dim ie As InternetExplorer
Dim doc As HTMLDocument
と設定しておいて、
Set doc = ie.Document
とすると、「doc.」と入力すれば、添付図下段で設定されている内容(getElementByIdなど)が表示されるようになります。
同じことですが、
Dim doc As Object
の場合は、表示されません。
想像ですが、エディタは(コード編集時は実行しているわけではないので)、変数の宣言を見て、そのオブジェクトの参照設定で定義されている内容を表示しているだけと思います。
それなので、ヒント表示を出したければ、少々面倒でも参照設定で読み込んだオブジェクトとして宣言しておく必要がありそうです。(ご質問の場合はHTMLDocument)
あくまでも推測ですので、詳しい方の回答がつくのを待った方が良いと思います。
余談ですが、実行時にオブジェクトのプロパティの存在情報を抜き出す方法が以下にありましたので、ご参考まで。
http://www.accessclub.jp/bbs5/0044/vba14224.html
No.2
- 回答日時:
試していませんが、使い方が違うようですね。
InternetExplorerオブジェクトのDocumentプロパティ
http://www.vba-ie.net/ieobject/document.html
No.1
- 回答日時:
基本的には「Microsoft Internet Controls」が参照設定されているので問題は無いと思います。
もしかしたらですが「Sub ○○」~「End Sub」以外でお試ししていませんか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【エクセルマクロ】既に開いているIEの、サイズや表示位置を変更するには 4 2022/12/01 22:57
- InternetExplorer(IE) Microsoft edgeのIEモードを解除したいのですが。 3 2023/04/09 13:51
- その他(ブラウザ) Edge internet explorer モードのサイトの再読み込みを許可 表示されない 2 2023/03/03 12:10
- Excel(エクセル) エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望 4 2023/04/24 11:07
- Excel(エクセル) エクセルでセルの日付を和暦表示設定にしたらおかしなことに? 3 2022/05/25 11:47
- Excel(エクセル) エクセル バーコード作成で他のシートを参照するには? 2 2023/05/03 16:57
- Visual Basic(VBA) VBAにてメール作成した際、一部指定箇所のみ赤文字にしたいです。 下記の内容ですと作成されたメール本 1 2022/04/27 13:31
- JavaScript [Java] Edgeでのアドレスバー非表示について 3 2022/04/20 17:51
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- InternetExplorer(IE) 既定のブラウザーを変更した場合、付随して処理が必要なことはありますか? 2 2022/03/25 16:04
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
worksheetFunctionクラスのVloo...
-
「Columns("A:C")」の列文字を...
-
VBAからPDFファイルにパスワー...
-
VBAで既に開いている別アプリケ...
-
エクセルマクロエラー「'Cells'...
-
エクセル/保護したシート上の埋...
-
実行時エラー 3265「要求された...
-
WSH createobjectで指定出来る...
-
ExcelのVBAについて(グラフ操作)
-
エクセルのVBAの標準モジュール...
-
VBScriptでCSVファイルのデータ...
-
コンパイルエラーの対処がわか...
-
Excelでフィルタをかけると警告...
-
【VB】【エクセル操作】 SaveAs...
-
エクセルVBAでcode128のバー...
-
VB6 ファイルのリネームの仕方
-
オブジェクト変数の取得について
-
マクロ初心者です。 インデック...
-
UserForm1.Showでエラーになり...
-
Word2007数式でIMEオン/オフを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
worksheetFunctionクラスのVloo...
-
「Columns("A:C")」の列文字を...
-
エクセルのVBAの標準モジュール...
-
実行時エラー 3265「要求された...
-
Excelでフィルタをかけると警告...
-
VBAで既に開いている別アプリケ...
-
エクセルマクロエラー「'Cells'...
-
テキストボックス中の文字列の...
-
VBAで Set wb = Sheets(1).Cop...
-
ある文字列が全て数字であるか...
-
VBAからPDFファイルにパスワー...
-
VBScriptでファイルの日時順(降...
-
EXCEL VBA オートシェイプナン...
-
[VBA]CDOメッセージ送信エラー
-
エクセルVBAで2つの画像を比較...
-
PowerPointVBAでスライドマスタ...
-
UserForm1.Showでエラーになり...
-
上下の位置揃えについて
-
VBAで作成するメール(開封確認...
-
VBAについてです。 初心者です...
おすすめ情報