外部VBAからOutlookを操作すると「アプリケーション定義またはオブジェクト定義のエラーです」が発生する原因

外部VBA(例: ExcelのVBA)からOutlookを操作すると「アプリケーション定義またはオブジェクト定義のエラーです」が発生するという相談を受けました。

調べてみたところ、インスペクター オブジェクトのWordEditorプロパティに値が設定されていないことが判明。

エラーメッセージ

実行時エラー ‘287’
アプリケーション定義またはオブジェクト定義のエラーです

事象が発生する環境においては、次のレジストリ値が0(自動的に拒否する)になっており、これを1か2に変更すると問題が解消することがわかりました。

HKEY_CURRENT_USER\SOFTWARE\Policies\Microsoft\office\16.0\outlook\security
PromptOOMAddressInformationAccess

0: 自動的に拒否する
1: ユーザーに確認する (規定値)
2: 自動的に承認する

■情報源

電子メールセキュリティ設定に関する情報 - Outlook
Outlook 2007 の電子メール セキュリティ設定に関する管理者向けの情報が含まれています。 Outlook 2007 でセキュリティ オプションを構成するために使用できるレジストリ設定の一覧を示します。

グループポリシーでは次の設定によってこのレジストリ値を構成できます。

ユーザーの構成\ポリシー\管理用テンプレート\Microsoft Outlook 2016\セキュリティ\セキュリティ フォーム設定\プログラムによるセキュリティ
アドレス帳にアクセスするときのOutlookオブジェクト モデルに関する確認について構成する

設定値の選択肢は次の通りです。

なお、1(ユーザーに確認する)の場合は次のダイアログボックスが表示され、「許可」が選択されると問題無くマクロが動作します。

タイトルとURLをコピーしました