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

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

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

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

Q&A

解決済

1回答

2164閲覧

VBAでオートメーションエラー

hyyako

総合スコア10

VBA

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

0グッド

1クリップ

投稿2018/10/03 03:19

編集2018/10/04 05:16

前提・実現したいこと

Windows8.1、Excel2013、VBAでIE11の操作をしたいと考えています。
プルダウンボックスの選択後、値が反映されなかったので調べたところ、JQueryを起動する必要がありました。Webに出ていた手順を試したところ、以下のエラーメッセージが発生しました。

発生している問題・エラーメッセージ

実行時エラー 2147467259(80004005) オートメーションエラーです。 エラーを特定できません。 `` ### 該当のソースコード ```ここに言語名を入力 Sub ログイン() Dim objIE As InternetExplorer Set objIE = New InternetExplorerMedium objIE.Visible = True Dim evt As Object Set evt = objIE.document.createEvent("HTMLEvents")★ evt.initEvent "change", True, False ・ ・ objIE.document.getElementById("add_filter_select").Value = "tracker_id" objIE.document.getElementById("add_filter_select").dispatchEvent evt ★箇所でエラーとなります。

試したこと

以下の例が公開されていたけれど、この書式でもダメでした。

Dim evt As Object
Set evt = ie.document.createEvent("HTMLEvents")
evt.initEvent "change", True, False

With ie.Document.getElementById("mySelect")
.Value = "1"
.dispatchEvent evt
End With

補足情報(FW/ツールのバージョンなど)

修正したソース
Sub ログイン()

Dim objIE As InternetExplorer
Set objIE = New InternetExplorerMedium
objIE.Visible = True

objIE.navigate "https://****"
Call wait(objIE) 'IEを待機

Dim htmlDoc As HTMLDocument 'HTMLドキュメントオブジェクトを準備
Set htmlDoc = objIE.document 'objIEで読み込まれているHTMLドキュメントをセット

'ここに移動しました
Dim evt As Object
Set evt = objIE.document.createEvent("HTMLEvents")
evt.initEvent "change", True, False


objIE.document.getElementById("add_filter_select").Value = "tracker_id"
objIE.document.getElementById("add_filter_select").dispatchEvent evt

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

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

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

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

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

papinianus

2018/10/03 04:52

試したことのダメの意味は、エラーなのですか?プルダウンが変わらないことなんですか?
hyyako

2018/10/03 08:01

不正確ですいません。createEventのところで同じオートメーションエラーになりました。
h.horikoshi

2018/10/04 01:44

外していたらすいません。IEオブジェクト作成直後なのでobjIE.documentが存在してないのでは? typeName(objIE.document)で確認してみてください。
hyyako

2018/10/04 05:07

ウォッチウィンドウは、<オートメーション エラーです。そのインターフェイスは認識されません。>となっていました。
hyyako

2018/10/04 05:08

上記のウォッチウィンドウは、エラーした時のTypeName(objIE.document)の値です。
hyyako

2018/10/04 05:10

今回のことから、creatEventをIEで頁を開いた後で実施するように変更したら、期待通りに動作しました。アドバイス、ありがとうございました。
kamikazelight

2018/10/13 01:53

解決しているのならば、回答数が0でベストアンサーは選択できないので、自己解決方法に記載の上、解決済みにしたほうがいいと思います。
guest

回答1

0

自己解決

補足情報に記載した通り、イベント処理をHTMLドキュメントオブジェクト準備の後にしたらエラーが無くなりました。

投稿2018/10/17 08:39

hyyako

総合スコア10

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問