イベント ハンドラを作成する

重要:  この記事は機械翻訳されています。機械翻訳についての「免責事項」をお読みください。この記事の英語版を参照するには、ここをクリックしてください。

Microsoft Office InfoPath フォーム テンプレートのスクリプトを記述する場合、通常、フォーム テンプレートまたはデータの入力規則のイベント ハンドラーのいずれかでコードを記述します。イベント ハンドラーは、フォームでのユーザー アクションまたは XML データへの変更に応答する、InfoPath フォーム テンプレート内の関数コードです。イベント ハンドラーを作成する方法は、使用するイベントの種類によって異なります。InfoPath は自動的にスクリプト ファイル内にイベント ハンドラーの宣言を作成して、フォーム テンプレートがこれらのイベント ハンドラーを使用できるようにするフォーム定義 (.xsf) ファイル内にエントリを作成するため、デザイン モードでイベント ハンドラーを作成することが重要です。

注: スクリプト ファイルでイベント ハンドラを手動で作成し、適切な要素を手動で .xsf ファイルに追加することはできますが、お勧めはしません。.xsf ファイルに対して無効な変更を行うと、フォーム テンプレートが使用できなくなる可能性があります。

次の表に、各 InfoPath のイベント ハンドラーとそれらを作成するための手順を示します。フォーム テンプレートのイベント ハンドラーを作成すると、InfoPath によって Microsoft Script Editor (MSE) が起動され、そのイベント ハンドラーのコードにカーソルが配置されます。これでイベント ハンドラーのスクリプトを記述できます。InfoPath のイベントとイベント ハンドラーの詳細については、MSE ヘルプから使用可能な、InfoPath Developer's Reference を参照してください。

イベント ハンドラー

説明

作成手順

OnAfterChange

このイベントは、ユーザーがフィールドにバインドされている指定されたコントロールの値を変更した後に実行されます。たとえば、ユーザーがリスト ボックス コントロール内の項目を選択した後に、カスタム HTML 作業ウィンドウを表示することができます。このイベントは、OnValidate イベントの後に実行されます。

フォーム テンプレート上のコントロールまたは [データ ソース] 作業ウィンドウ内のフィールドを右クリックし、ショートカット メニューの [プログラミング] をポイントし、[OnAfterChange イベント] をクリックします。

OnAfterImport

このイベントは、ユーザーが複数のフォームを 1 つのフォームに正常に結合した後に実行されます。

MSE を使用して、OnAfterImport イベント ハンドラー宣言をスクリプト ファイルに手動で直接追加します。このイベント ハンドラーはデザイン モードでは作成できません。

OnBeforeChange

このイベントは、ユーザーがコントロールの値を変更し、その値がそのコントロールにバインドされている指定したフィールドに追加される前に実行されます。たとえば、ユーザーが繰り返しテーブルの最後の行に入力する前に、行の追加を防ぐことができます。

フォーム テンプレート上のコントロールまたは [データ ソース] 作業ウィンドウ内のフィールドを右クリックし、ショートカット メニューの [プログラミング] をポイントし、[OnBeforeChange イベント] をクリックします。

OnClick

このイベントは、ユーザーがこのイベントに関連付けられているボタンをクリックしたときに実行されます。このイベントは、フォーム テンプレートにボタンを追加すると使用できるようになります。たとえば、ユーザーがボタンをクリックすると、メインのデータ ソースのフィールドの値を使用して複雑な計算を実行することができます。

ボタン コントロールをダブルクリックして、[ボタンのプロパティ] ダイアログ ボックスの [全般] タブで、[フォームのコードを編集] をクリックします。

OnContextChange

このイベントは、フォームでフォーカスが変更されたときに実行されます。たとえば、ユーザーがテキスト ボックスから日付の選択に移動したとき、またはビューを切り替えるときに、このイベントが実行されます。このイベントは、他のすべてのイベントが発生した後に発生します。

[ツール] メニューの [プログラミング] をポイントし、[OnContextChange イベント] をクリックします。

OnLoad

このイベントは、ユーザーが新しいフォームを作成するか、フォーム テンプレートに基づく既存のフォームを開くたびに実行されます。たとえば、ユーザーがフォームを開いたときに、セカンダリ データ ソースからメインのデータ ソースに項目のリストをコピーすることができます。

[ツール] メニューの [プログラミング] をポイントし、[OnLoad イベント] をクリックします。

OnMergeRequest

このイベントは、フォーム テンプレートをベースにしたフォームが結合されるときに実行されます。たとえば、結合操作中に、状態をユーザーに提供するため、結合されたフォームの数を表示することができます。

[ツール] メニューの [フォームのオプション] をクリックします。[分類] ボックスの [詳細設定] をクリックします。[フォームの結合] の [ユーザー設定コードを使って結合する] チェック ボックスをオンにし、[編集] をクリックします。

OnSaveRequest

このイベントは、ユーザーがフォーム テンプレートをベースにしたフォームを保存するときに実行されます。たとえば、ユーザーがフォームを保存する際に、このフォーム テンプレートをベースにしたフォームを複数の場所に保存することができます。InfoPath では、このイベントに 2 行のコードを追加します。1 行はフォームを保存し、もう 1 行は InfoPath でフォームが正常に保存されたかどうかを通知します。

[ツール] メニューの [フォームのオプション] をクリックします。[分類] ボックスの [開く/保存] をクリックします。[保存の動作] の [ユーザー設定コードを使って保存] チェック ボックスをオンにし、[編集] をクリックします。

OnSign

このイベントは、ユーザーがフォームにデジタル署名を適用するときに実行されます。たとえば、ユーザーが経費明細書フォームのデジタル署名に署名したときに、追加のデータを追加できます。

[ツール] メニューの [プログラミング] をポイントし、[OnSign イベント] をクリックします。

OnSubmitRequest

このイベントは、ユーザーが自分のフォーム データを送信するときに実行されます。たとえば、ユーザーが [ファイル] メニューで [送信] をクリックしたときに、フォーム データをセキュリティで保護された Web サービスに送信することができます。InfoPath はセキュリティで保護された Web サービスへのデータ接続をサポートしていないため、セキュリティで保護された Web サービスと連携するカスタム データ接続を追加する必要があります。

[ツール] メニューの [送信オプション] をクリックします。[ユーザーによるこのフォームの送信を許可する] チェック ボックスをオンにして、[コードを使用してユーザー設定操作を実行する]、[コードの編集] の順にクリックします。

OnSwitchView

このイベントは、ユーザーがフォーム テンプレートをベースにしたフォームを開いたり、フォームの別のビューに切り替えるときに実行されます。たとえば、ユーザーが特定のビューに切り替えたときに、フォームのメインのデータ ソースのフィールドからのデータを含む電子メール メッセージを作成できます。

[ツール] メニューの [プログラミング] をクリックし、[OnSwitchView イベント] をクリックします。

OnValidate

このイベントは、ユーザーがフィールドにバインドされたコントロールの値を変更したときに実行されます。たとえば、ユーザーが特定のコントロールの値を変更したときに、ユーザーが入力した数値とスクリプトの数値を使用して、別のコントロールに新しい値を計算できます。このイベントは、OnBeforeChange イベント ハンドラーの実行後に発生します。

フォーム テンプレート上のコントロールまたは [データ ソース] 作業ウィンドウ内のフィールドを右クリックし、ショートカット メニューの [プログラミング] をポイントし、[OnAfterValidate イベント] をクリックします。

OnVersionUpgrade

このイベントは、ユーザーが既存のフォームを開き、その既存のフォームで使用されているフォーム テンプレートのバージョン番号が発行場所のフォーム テンプレートのバージョン番号よりも古い場合に実行されます。ユーザーが既存のフォームを開くと、InfoPath が既存のフォームに関連付けられているフォーム テンプレートのバージョン番号を確認します。フォーム テンプレートに新しいバージョン番号がある場合、ユーザーが既存のフォームを開くと、InfoPath が OnVersion イベント ハンドラーを実行します。たとえば、新しいフィールドを既存のフォーム テンプレートに追加してそれを発行し、ユーザーが既存のフォームを開いた場合に、メインのデータ ソースに新しいフィールドが追加されるようにしたい場合があります。このイベントは、ユーザーが既存のフォームを開いたときに、メインのデータ ソースに新しいフィールドを追加します。

[ツール] メニューの [フォームのオプション] をクリックします。[分類] ボックスの [バージョン管理] をクリックします。[バージョンのアップグレード] 一覧で、[ユーザー設定イベントの使用]、[編集] の順にクリックします。

注: 機械翻訳についての免責事項: この記事の翻訳はコンピューター システムによって行われており、人間の手は加えられていません。マイクロソフトでは、英語を話さないユーザーがマイクロソフトの製品、サービス、テクノロジに関するコンテンツを理解するのに役立てるため、こうした機械翻訳を提供しています。記事は機械翻訳されているため、用語、構文、文法などに誤りがある場合があります。

スキルを磨く
トレーニングの探索
新機能を最初に入手
Office Insider に参加する

この情報は役に立ちましたか?

ご意見をいただきありがとうございます。

フィードバックをお寄せいただき、ありがとうございます。Office サポートの担当者におつなぎいたします。

×