独自のカスタム ActiveX コントロールを作成して配布すると、Microsoft Office InfoPath では使用できない機能を提供するだけでなく、他のフォーム テンプレート デザイナーの時間と労力を節約できます。 Microsoft ActiveX コントロールをデザイン モードで使用できるようにしてから、作成したフォーム テンプレートでこれらのコントロールを使用できます。
この記事の内容
ActiveX コントロールを使用するタイミング
通常、Microsoft Windows に付属するスライダー コントロールなど、InfoPath で使用できないユーザー インターフェイス要素をフォーム テンプレートに含める場合は、ActiveX コントロールを使用します。
また、organizationは、特定のビジネス用途に合わせて独自のカスタム ActiveX コントロールを作成することもできます。 たとえば、病院では、医療画像をフォームに表示できる ActiveX コントロールを開発できます。 または、営業担当者が特定の月に販売されたアイテムの数を追跡する必要があるとします。 入力してテキスト ボックスを更新するのは面倒な場合があり、営業担当者が 1 回以上インクリメントする必要があることを考慮すると、エラーが発生する可能性があります。 マウス クリックで自己インクリメントするカスタム ActiveX コントロールは、この情報の追跡に費やす時間を短縮し、エラーを減らすのに役立ちます。
ユーザー エクスペリエンス
ユーザーがフォームに表示するものは、フォーム テンプレートで使用する ActiveX コントロールの種類によって完全に異なります。
ActiveX コントロールを含むフォーム テンプレートを発行する場合、ユーザーがフォーム テンプレートに基づくフォームを開くには、そのコントロールをユーザーのコンピューターにインストールして登録する必要があります。 一部の ActiveX コントロール (Microsoft Windows に含まれているコントロールなど) は、ユーザーのコンピューターに既にインストールおよび登録されている可能性があります。 開発するカスタム コントロールなど、その他の ActiveX コントロールはインストールおよび登録されない場合があります。 この場合は、ユーザーのコントロールをインストールして登録するための対策を講じなければなりません。
カスタム インストール プログラムを使用してフォーム テンプレートをインストールする場合は、カスタム ActiveX コントロールを同時にインストールして登録できます。 または、ユーザーのコンピューターにコントロールをインストールするために使用されるカスタム コントロールの追加ウィザードで、既存のキャビネット (.cab) ファイルを指定することもできます。
カスタム コントロールの追加ウィザードを使用して ActiveX コントロールをユーザーが使用できるようにするには、既存の .cab ファイルをフォーム テンプレートと共にパッケージ化するかどうかを指定する必要があります。 この .cab ファイルを使用すると、ユーザーのコンピューターにコントロールをインストールして登録できます。 フォーム テンプレートに .cab ファイルを含める場合、ユーザーに ActiveX コントロールがまだインストールされていない場合、InfoPath は、フォーム テンプレートに基づいてフォームを初めて開いたときにコントロールをインストールするように求められます。
InfoPath は、次の両方の要件が満たされている場合に、ユーザーのコントロールを自動的にインストールして登録します。
- .cab ファイルは、ファイルにデジタル署名を作成するデジタル証明書で署名されます。
- デジタル署名は、フォーム開発者またはその他の信頼された発行元からの署名です。 .cab ファイルが署名されていても、発行元がまだユーザーのコンピューターで信頼されていない場合、InfoPath はセキュリティ アラートを表示し、発行元の信頼を有効にする必要があります。
互換性に関する考慮事項
InfoPath でフォーム テンプレートを設計する場合は、ブラウザー互換のフォーム テンプレートを設計できます。 ブラウザー互換のフォーム テンプレートを設計する場合、ActiveX コントロールは Web ブラウザーで表示できないため、[ コントロール ] 作業ウィンドウでは使用できません。
さらに、ActiveX コントロールはテンプレート パーツでは使用できません。
フォーム テンプレートに ActiveX コントロールを挿入する
フォーム テンプレートに ActiveX コントロールを追加する前に、[ コントロール ] 作業ウィンドウで使用できるようにする必要があります。 InfoPath にはカスタム コントロールの追加ウィザードが含まれており、必要に応じてフォーム テンプレートを使用したインストール .cab ファイル、ActiveX コントロールのバインド オプションやその他のプロパティの指定など、ActiveX コントロールを選択するプロセスがガイドされています。
ActiveX コントロールを [コントロール] 作業ウィンドウに追加する
InfoPath で使用する独自の ActiveX コントロールを開発する場合は、次の手順を完了する前に、そのコントロールを初期化しても安全であり、スクリプトを作成しても安全であると識別する必要があります。
[コントロール] 作業ウィンドウが表示されていない場合は、[挿入] メニューの [コントロールの選択] をクリックするか、Alt キーを押しながら I キー、C キーの順に押します。
[コントロール] 作業ウィンドウの下部にある [カスタム コントロールの追加と削除] をクリックします。
[ カスタム コントロールの追加と削除 ] ダイアログ ボックスで、[ 追加] をクリックします。
カスタム コントロールの追加ウィザードの最初のページで、[ ActiveX コントロール] をクリックし、[ 次へ] をクリックします。
ウィザードの次のページで、[コントロールの選択] ボックスの一覧で目的の コントロールを クリックし、[ 次へ] をクリックします。
注
[ コントロールの選択] リストには、現在コンピューターに登録されている ActiveX コントロール (Microsoft Windows に含まれる ActiveX コントロールなど) が表示されます。 独自のカスタム ActiveX コントロールを作成した場合は、[コントロールの選択] ボックスの一覧に表示されるように、カスタム ActiveX コントロールを登録する 必要があります。 ActiveX コントロールが InfoPath と互換性がない場合、または安全でないと見なされた場合、InfoPath にコントロールを追加することはできません。
ウィザードの次のページで、次のいずれかの操作を行います。
- インストール .cab ファイルをフォーム テンプレートに含める場合は、[ .cab ファイルを含める] をクリックし、使用するファイルを指定して、[ 次へ] をクリックします。
- カスタム インストール プログラムを使用して ActiveX コントロールをインストールするか、ユーザーのコンピューターに ActiveX コントロールが既にインストールされている場合は、[ .cab ファイルを含めない] をクリックし、[ 次へ] をクリックします。
[ バインド] プロパティ の一覧で、次のいずれかの操作を行います。
ActiveX コントロールのプロパティをデータ ソースのフィールドにバインドするには、項目をクリックします。
注
ActiveX コントロールに Value プロパティが含まれている場合、InfoPath によって自動的に選択されますが、変更することもできます。
ActiveX コントロールをバインド解除するには、[ (バインドしない)] をクリックします。
[次へ] をクリックします。
追加を選択した ActiveX コントロールの種類によっては、 Enable プロパティまたは Disable プロパティ リストが表示される場合があります。 この場合は、プロパティをクリックし、[ 次へ] をクリックします。
注
コントロールに Enabled プロパティが含まれている場合、InfoPath によって自動的に選択されますが、変更することもできます。
手順 7 でバインド プロパティを指定した場合は、必要なバインド オプションを指定します。
どう。
[ フィールドまたはグループの種類 ] の一覧で、次のいずれかの操作を行います。- ActiveX コントロールを単純なデータ型のフィールドにバインドするには、[ フィールド (要素または属性)] をクリックします。 この種類のバインドは、Microsoft Windows に含まれるスライダー コントロールなど、単純な ActiveX コントロールによって使用されます。 このオプションを選択する場合は、ActiveX コントロールの既定のデータ型と、ActiveX コントロールをバインドできるその他のデータ型を指定する必要があります。
- ActiveX コントロールをカスタム データ型のフィールドにバインドするには、[ フィールド] (カスタム データ型の要素) をクリックします。 この種類のバインドは、MathML を編集する数式エディターなど、特定の種類のコンテンツのエディターとして機能する ActiveX コントロールによって使用されます。 このオプションを選択する場合は、編集する XML の名前空間も指定する必要があります。
- ActiveX コントロールをフィールドまたはグループにバインドするには、データ型に関係なく、 フィールドまたはグループ (任意のデータ型) をクリックします。 この種類のバインドは、グラフやグラフなど、他の場所に入力された情報を分析する ActiveX コントロール、または XML データを直接操作する ActiveX コントロールによって使用されます。
[完了] をクリックします。
確認メッセージを確認し、[ 閉じる ] をクリックしてウィザードを終了します。
[ カスタム コントロールの追加と削除 ] ダイアログ ボックスで、[ OK] をクリックします。
ActiveX コントロールが [ コントロール ] 作業ウィンドウに表示されたら、フォーム テンプレートに挿入できます。
新しい空のフォーム テンプレートに ActiveX コントロールを挿入する
フォーム テンプレートに Microsoft ActiveX コントロールを挿入すると、InfoPath は、カスタム コントロールの追加ウィザードで指定したオプションに応じて、データ ソース内のフィールドまたはグループにバインドされたカスタム コントロールを挿入します。
注
organizationの他のフォーム テンプレート デザイナーがフォーム テンプレートで同じ ActiveX コントロールを使用する必要があり、そのコントロールがコンピューターにまだインストールされていない場合は、Microsoft Windows インストーラー パッケージ (.msi) ファイルなどのカスタム セットアップ プログラムを作成できます。 このカスタム セットアップ プログラムは、フォーム テンプレート デザイナーの ActiveX コントロールをすばやくインストールして登録できます。
フォーム テンプレートで、コントロールを挿入する場所にカーソルを置きます。
[コントロール] 作業ウィンドウが表示されていない場合は、[挿入] メニューの [コントロールの選択] をクリックするか、Alt キーを押しながら I キー、C キーの順に押します。
[ コントロールの挿入] で、挿入する ActiveX コントロールの名前をクリックします。
注
フォーム テンプレートに ActiveX コントロールを追加する場合は注意が必要です。 ActiveX コントロールは、その使用がセキュリティ リスクを伴う可能性がある方法で設計できます。 信頼できるソースからのコントロールのみを使用することをお勧めします。
ActiveX コントロールに固有のプロパティ ページは、ActiveX コントロールの標準の InfoPath プロパティ ページと共に表示されます。 これらのプロパティ ページを表示するには、フォーム テンプレートの ActiveX コントロールをダブルクリックします。
既存のデータ ソースに基づくフォーム テンプレートに ActiveX コントロールを挿入する
既存の拡張マークアップ言語 (XML) ファイル、データベース、または Web サービスを基にしたフォーム テンプレートのデザインにした場合、InfoPath では、[データ ソース] 作業ウィンドウのフィールドおよびグループをその既存のデータ ソースから導出します。 このシナリオでは、次の手順で説明するように、[ データ ソース ] 作業ウィンドウからフォーム テンプレートにフィールドをドラッグするか、代わりに [コントロール] 作業ウィンドウから ActiveX コントロールを挿入することで、ActiveX コントロール を挿入できます。
- フォーム テンプレートで、コントロールを挿入する場所にカーソルを置きます。
- [コントロール] 作業ウィンドウが表示されていない場合は、[挿入] メニューの [コントロールの選択] をクリックするか、Alt キーを押しながら I キー、C キーの順に押します。
- [ コントロールの挿入] で、挿入する ActiveX コントロールの名前をクリックします。
- [ コントロール バインド ] ダイアログ ボックスで、コントロールのデータを格納するフィールドを選択し、[OK] をクリック します。
セキュリティに関するヒント
ActiveX コントロールを含むフォームを設計するときは、次のセキュリティの問題に留意する必要があります。
- InfoPath で使用される ActiveX コントロールには、Windows インターネット エクスプローラーで使用される ActiveX コントロールよりも厳しい制限があります。 たとえば、InfoPath では、ActiveX コントロールをスクリプト作成に安全と初期化の安全の両方としてマークする必要があります。 フォーム テンプレートで使用するカスタム ActiveX コントロールを開発する場合は、IObjectSafety インターフェイスを実装して、InfoPath が特定のコントロールがスクリプト作成に安全とマークされ、初期化に安全であるとマークされるようにする必要があります。
- フォーム テンプレートに ActiveX コントロールを追加する場合は注意が必要です。 ActiveX コントロールは、その使用がセキュリティ リスクを伴う可能性のある方法で設計される場合があります。 信頼できるソースからのコントロールのみを使用することをお勧めします。
- ActiveX コントロールは、(デザイン モードの [ フォーム オプション] ダイアログ ボックスで指定されているように) 信頼レベルが制限されているフォーム テンプレートでインストールすることも、実行することもできません。
- より安全な ActiveX コントロールの設計については、Microsoft Developer Network (MSDN) Web サイトを参照してください。