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

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

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

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

Internet Explorer

Internet Explorer(IE;MSIE)はマイクロソフトが開発したウェブブラウザです。Microsoft Windowsに組み込まれています。

Outlook

Microsoft OutlookはMicrosoft Officeの一部として組み込まれている、のユーザー管理とメーラーの機能を持ち合わせたソフトウェアです。

Q&A

解決済

1回答

22944閲覧

VBA - 「ActiveXコンポーネントはオブジェクトを作成できません」のエラー

koyamashinji

総合スコア45

VBA

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

Internet Explorer

Internet Explorer(IE;MSIE)はマイクロソフトが開発したウェブブラウザです。Microsoft Windowsに組み込まれています。

Outlook

Microsoft OutlookはMicrosoft Officeの一部として組み込まれている、のユーザー管理とメーラーの機能を持ち合わせたソフトウェアです。

0グッド

0クリップ

投稿2020/06/11 10:30

編集2020/06/12 07:56

■のように、IEオブジェクトやOutlookオブジェクト作成時、
レイトバインディング(?)した場合のみ、下記のエラーが出ます。

どのようなロジックでこのエラーが起きてしまうのでしょうか。
回避方法を教えてください。
(検索してもよくわかりませんでした...)

実行時エラー'429'
ActiveX コンポーネントはオブジェクトを作成できません。

###IEオブジェクトの作成時

'エラーが出る Dim objIE As InternetExplorerMedium Set objIE = CreateObject("InternetExplorer.ApplicationMedium")
'エラーが出ない Dim objIE As InternetExplorerMedium Set objIE = New InternetExplorerMedium

###Outlookオブジェクトの作成時

'エラーが出る Dim OLobj As Outlook.Application Set OLobj = GetObject(, "Outlook.Application")
'エラーが出ない Dim OLobj As Outlook.Application Set OLobj = New Outlook.Application

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

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

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

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

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

kenshirou

2020/06/12 01:33 編集

Outlookのエラーが出るパターンのOLobjの定義は、「Dim OLobj As Outlook.Application」が正しい(「Outlook.aApplication」の小文字のaは誤記)という理解でよいでしょうか? あと、GetObject(, "Outlook.Application")を行うときは、すでにOutlookが起動している状態でしょうか?(起動していなければ、上記GetObjectは確かにエラーになります。)
koyamashinji

2020/06/12 07:52

杜撰な表記ですみません。 ・小文字のaは誤記です。 ・おっしゃる通りOutlookが起動していない状態で試していました。起動している状態だと、エラーはでませんでしたので、レイトバインディングは関係なさそうです。 ご指摘2点、修正いたします。
guest

回答1

0

ベストアンサー

InternetExplorerMediumについては、遅延バインドを使用するためにはレジストリ操作が必要のようです。
以下の知恵袋の回答に情報があります。
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q13129179303

また、OutlookのGetObject(, "Outlook.Application")については、CreateObjectではないので、そもそもOutlookが起動していなければエラーになります。

※参照設定を行っているなら、遅延バインドを使うメリットはないのですが、どうなのでしょうか。

投稿2020/06/12 01:41

kenshirou

総合スコア772

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

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

koyamashinji

2020/06/12 10:28

回答ありがとうございます。 参照設定しているので、アーリーバインディングで対応したいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問