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 Classes (MFC)、または ActiveX テンプレート ライブラリ (ATL) から:

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 ボタンをクリックし、
    アプリケーション オプション。
  2. [ セキュリティ センター] タブをクリックし、
    セキュリティ センターの設定
  3. [マクロの設定] タブをクリックし、[VBA プロジェクト オブジェクト モデルへのアクセスを信頼する] チェック ボックスをオンにして、[OK] をクリックします。
  4. [OK] をクリックします。