InfoPath で CreateObject 関数または ActiveXObject 関数のスクリプト エラーが発生する

現象

Microsoft VBScript で CreateObject 関数を使用するか、Microsoft JScript で ActiveXObject 関数を使用すると、ActiveX コンポーネントのインスタンスを作成することができます。Microsoft Office InfoPath 2003 フォームの関数呼び出しのスクリプト モジュールで、ActiveX コンポーネントのインスタンスを作成する際に、次のいずれかのエラー メッセージが表示されることがあります。

オートメーション サーバーはオブジェクトを作成できません。

ActiveX コンポーネントはオブジェクトを作成できません。

原因

InfoPath フォームは、常にインターネット セキュリティ ゾーンのコンテキスト内で実行されます。インターネット セキュリティ ゾーンではフォームのスクリプトで実行できる操作と実行できない操作が定義されています。通常このエラーは、フォームが実行されるインターネット セキュリティ ゾーンで "スクリプトを実行しても安全だとマークされていない ActiveX コントロールの初期化とスクリプトの実行" が無効になっているため、ActiveX コンポーネントの作成が許可されない場合に発生します。このオプションは、悪意のあるスクリプトやデータを受け取った場合に、このコンポーネントによるシステムへの損害がないことをコントロールの作成者が保証できないことを意味します。



自分のコンピュータ上のリソースに対してフォームが持つアクセス許可のレベルに、セキュリティ ゾーンがどのように影響するかの詳細については、[ヘルプ] メニューの [Microsoft Office InfoPath ヘルプ] または [Office InfoPath 2007 ヘルプ] をクリックし、[検索] ボックスにセキュリティ ゾーンについてと入力し、[検索開始] をクリックして表示されるトピックを参照してください。


関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。


216434 [INFO] Internet Explorer における、ActiveX コントロールが安全かどうかの判断方法

解決方法

InfoPath フォームでこの問題を回避するには、以下の方法のいずれかを使用します。

  • フォームを完全に信頼された URN ベースのフォームにする
  • InfoPath フォームをホストするサーバーの URL を、Microsoft Internet Explorer の信頼済みサイトの一覧に追加する
  • フォーム テンプレートにデジタル署名する (InfoPath 2003 Service Pack 1 に適用)

フォームを完全に信頼された URN ベースのフォームにする

完全に信頼された URN ベースのフォームを、カスタム インストール スクリプトまたは Microsoft System Installer パッケージを使用してコンピュータにインストールする必要があります。これによって、"スクリプトを実行しても安全だとマークされていない ActiveX コントロールの初期化とスクリプトの実行" が無効になっている場合でも、ActiveX コンポーネントが作成されます。



手動で標準のフォームを URN ベースのフォームに変換できますが、手動で変換する作業は繁雑であるためエラーが発生しやすくなります。InfoPath ソフトウェア開発キット (SDK) に含まれる、コマンド ラインのフォーム登録ツールである RegForm.exe ツールを使用して、この変換を行うことができます。RegForm.exe ツールはフォーム定義ファイルおよび XML テンプレート ファイルに対して必要な変更を行います。次に、ファイルを .xsn ファイルに再びパッケージ化し、変更したフォーム テンプレートをインストールするためのカスタム インストール プログラムを作成します。



InfoPath 2003 SDK のダウンロード方法の詳細については、次のマイクロソフト Web サイトを参照してください。

InfoPath 2003 SDK はデフォルトで C:\Program Files\Microsoft Office 2003 Developer Resources\Microsoft Office InfoPath 2003 SDK\Tools にインストールされます。



コマンド ライン オプションを表示するには、コマンド ウィンドウで次のコマンド ラインを入力します。

regform /?
コマンド ラインでは /U スイッチと /T スイッチを使用できます。/U スイッチでは、フォーム テンプレートに使用する URN を指定します。/T スイッチを指定すると、フォーム テンプレートが完全に信頼されます。このスイッチにより、フォーム定義 (.xsf) ファイルの requireFullTrust 属性が Yes に設定されます。



次のコマンド ラインでは、変換するテンプレートとして .js ファイルと .bak ファイルが同じフォルダ内に生成されます。

regform /U urn:MyForm:MyCompany /T Yes C:\MyForms\MyTrustedForm.xsn
.bak ファイルは、URN ベースの変更が行われる前の元のフォーム テンプレート ファイルのコピーです。.js ファイルは URN ベースのフォームをインストールするために使用するスクリプト ファイルです。



.js スクリプトを実行するには、コマンド ラインで次のコードを入力し、Enter キーを押します。

Cscript <full path of your .js file>
URN ベースのフォーム、または RegForm.exe ツールの詳細については、InfoPath 2003 SDK 日本語ヘルプで「フォーム登録ツールの使用」を参照してください。



InfoPath 2007 および InfoPath 2007 SDK の詳細については、次のマイクロソフト Web サイトを参照してください。

InfoPath フォームをホストするサーバーの URL を、Microsoft Internet Explorer の信頼済みサイトの一覧に追加する

InfoPath フォームをホストするサーバーの URL を信頼済みサイトに追加すると、コードの実行時に次のメッセージが表示されます。

このページの ActiveX コントロールは、安全でない可能性があり、ページのほかの部分に影響する可能性があります。ほかの部分に影響しても問題ありませんか?
[はい] をクリックすると、コードが実行されます。[いいえ] をクリックすると、「現象」に記載したエラー メッセージが表示されることがあり、コードは実行されません。



信頼済みのサイトを追加するには、以下の手順を実行します。

  1. Internet Explorer を起動します。

  2. [ツール] メニューの [インターネット オプション] をクリックします。

  3. [インターネット オプション] ダイアログ ボックスの [セキュリティ] タブをクリックします。

  4. [セキュリティ] タブの [信頼済みサイト] をクリックします。

  5. [サイト] をクリックします。

  6. [次の Web サイトをゾーンに追加する] ボックスに、InfoPath フォームをホストするサーバーの URL を入力します。



    たとえば InfoPath フォームをホストするサーバーの名前が MyServer とすると、テキスト ボックスに入力する URL は http://MyServer です。

  7. [追加] をクリックします。



    入力したサイトが [Web サイト] ボックスの一覧に追加されます。

  8. [信頼済みサイト] ダイアログ ボックスの [閉じる] をクリックし、[インターネット オプション] ダイアログ ボックスの [OK] をクリックします。



    変更がコミットされ、ダイアログ ボックスが閉じます。

フォーム テンプレートにデジタル署名する

この説明は、InfoPath 2003 Service Pack 1 に適用されます。信頼済みの証明書を使用してフォーム テンプレートにデジタル署名すると、フォーム テンプレートのセキュリティ レベルを完全信頼に設定できます。完全信頼は、フォームが、ユーザーのコンピュータ上または異なるドメインのコンピュータ上にあるファイルおよび設定にアクセスできることを意味します。さらに、フォーム テンプレートとその更新版を電子メール プログラムを使用して他のユーザーに送信することによって、そのフォーム テンプレートを展開および更新できます。



信頼済みの証明書を使用してフォームにデジタル署名するには、以下の手順を実行します。

  1. デザイン モードで、[ツール] メニューの [フォームのオプション] をクリックします。

  2. [フォームのオプション] ダイアログ ボックスで、[セキュリティ] タブ (InfoPath 2003 の場合) または [セキュリティと信頼] (InfoPath 2007 の場合) をクリックします。
  3. [フォーム テンプレートの署名] の [このフォーム テンプレートに署名する] チェック ボックスをオンにします。
  4. [証明書の選択] をクリックします。

  5. [証明書の選択] ダイアログ ボックスで、フォームのデジタル署名に使用する証明書をクリックします。

: 証明書がユーザーのコンピュータで信頼されていない場合、Microsoft Office InfoPath 2003 によってセキュリティに関するメッセージが表示され、ユーザーは、フォームを開く前にその証明書の発行元を信頼する必要があります。

関連情報

Microsoft Office の最新の Service Pack の入手方法の関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。


870924 最新の Office 2003 Service Pack を入手する方法

プロパティ

文書番号:832512 - 最終更新日: 2007/04/16 - リビジョン: 1

フィードバック