プログラムから Office VBA プロジェクトへのアクセスが拒否される


現象


Office アプリケーションで、アプリケーションを自動化して Microsoft Visual Basic for Applications (VBA) の環境およびオブジェクト モデルをプログラムで操作するためのコードが失敗し、次のいずれかのエラー メッセージが表示されることがあります。



Visual Basic または VBA の場合

実行時エラー '6068': Visual Basic Project へのプログラム的なアクセスは信頼されません。
Microsoft Visual C++、Microsoft Foundation Class (MFC)、または ActiveX Template Library (ATL) の場合



Word または PowerPoint
HRESULT = 0x800A17B4 (-2146822220) "Visual Basic Project へのプログラム的なアクセスは信頼されません。"
Excel
HRESULT = 0x800A17B4 (-2146822220) "プログラミングによる Visual Basic プロジェクトへのアクセスは信頼性に欠けます"
Office 97 または Office 2000 がインストールされているコンピュータで同一のコードを実行した場合、エラーは発生しません。

原因


Office には、ユーザーがアクセスを許可することを選択しない限り、オートメーション クライアントから VBA オブジェクト モデルへのプログラムによるアクセスを意図的に拒否するセキュリティ オプションが追加されています。このオプションは、ユーザーごと、およびアプリケーションごとの設定です。デフォルトではアクセスは拒否されます。



このセキュリティ オプションにより、許可されていないプログラムで、エンド ユーザーのシステムに問題を起こす可能性のある "自己複製型" コードが作成されにくくなります。

解決方法


プログラムによってオートメーション クライアントから VBA オブジェクト モデルにアクセスできるようにするには、コードを実行するユーザーがアクセスを明示的に許可する必要があります。アクセスを有効にするには、ユーザーは次の手順を実行する必要があります。

Office 2003 および Office XP

  1. 問題の Office 2003 アプリケーションまたは Office XP アプリケーションを開きます。[ツール] メニューの [マクロ] をポイントし、[セキュリティ] をクリックして [セキュリティ] ダイアログ ボックスを開きます。

  2. [信頼できる発行元] タブの [Visual Basic プロジェクトへのアクセスを信頼する] チェック ボックスをオンにし、アクセスを有効にします。

  3. [OK] をクリックして設定を適用します。コンポーネント オブジェクト モデル (COM) アドインまたはテンプレートを使用して自動化する場合、コードを正常に実行するために、アプリケーションを再起動することが必要な場合があります。

Office 2007

  1. 問題の 2007 Microsoft Office system アプリケーションを開きます。Microsoft Office ボタンをクリックし、[Application のオプション] をクリックします。

  2. [セキュリティ センター] をクリックし、[セキュリティ センターの設定] をクリックします。

  3. [マクロの設定] をクリックし、[VBA プロジェクト オブジェクト モデルへのアクセスを信頼する] チェック ボックスをオンにし、[OK] をクリックします。

  4. [OK] をクリックします。