外部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: 自動的に承認する

■情報源

https://docs.microsoft.com/ja-jp/outlook/troubleshoot/security/information-about-email-security-settings

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

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

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

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