Office VBA プロジェクトへのプログラムによるアクセスが拒否されました

適用先
Office Products Excel 2010

現象

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

 Visual Basic または VBA から:

実行時エラー '6068': Visual Basic プロジェクトへのプログラムによるアクセスが信頼されていません

Microsoft Visual C++、Microsoft Foundation クラス (MFC)、または ActiveX テンプレート ライブラリ (ATL) から:

HRESULT = 0x800A17B4 (-2146822220) "Visual Basic プロジェクトへのプログラムによるアクセスが信頼されていません"

同じコードは、Office 97 と Office 2000 のコンピューターでエラーなしで動作します。

原因

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

 このセキュリティ オプションを使用すると、承認されていないプログラムが、エンド ユーザー システムに損害を与える可能性のある "自己レプリケート" コードを構築することが困難になります。

解決策

任意の Automation クライアントが VBA オブジェクト モデルにプログラムでアクセスできるようにするには、コードを実行しているユーザーが明示的にアクセス権を付与する必要があります。 アクセスを有効にするには、ユーザーは次の手順に従う必要があります。

Office 2003 と Office XP

  1. 対象の Office 2003 または Office XP アプリケーションを開きます。 [ツール] メニューの [マクロ] をクリックし、[セキュリティ] をクリックして [マクロ のセキュリティ] ダイアログ ボックスを開きます。
  2. [信頼されたソース] タブで、[Visual Basic Project チェック へのアクセスを信頼する] ボックスをクリックしてアクセスを有効にします。
  3. [OK] をクリックして設定を適用します。 コンポーネント オブジェクト モデル (COM) アドインまたはテンプレートから自動化する場合は、コードを正常に実行するためにアプリケーションを再起動する必要がある場合があります。

Office 2007

  1. 問題の 2007 Microsoft Office システム アプリケーションを開きます。 [ Microsoft Office] ボタンをクリックし、
    アプリケーション オプション
  2. [ セキュリティ センター ] タブをクリックし、
    セキュリティ センターの設定
  3. [マクロ設定] タブをクリックして、[VBA プロジェクト オブジェクト モデルへのアクセスを信頼する] チェック ボックスを選択し、[OK] をクリックします
  4. [OK] をクリックします。