フォームの接続状態を検出するようにフォーム テンプレートを構成する

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

フォームは、ネットワーク接続を処理するデータが返されるに依存してフォーム テンプレートをデザインするスクリプトを記述に精通している場合は、フォーム テンプレートに基づくフォームのネットワーク接続の状態を検出するスクリプトを作成することができます。Microsoft Office InfoPath のフォームが、外部データ ソースにクエリを送信する前に、フォームが、外部データ ソースに接続できる場合と新しいフォームがネットワークに接続されている場合に、このスクリプトを使用できます。この記事には、Microsoft JScript、Visual Basic Scripting Edition (VBScript) の場合は、フォーム テンプレートをベースにフォームを判断する例がネットワークに接続されているし、それらのフォームが、外部データ ソースに接続できるかどうかが用意されています。

この記事の内容

概要

JScript の例

VBScript の例

スクリプト例をフォーム テンプレートで使用する

概要

フォーム テンプレートに基づくフォームのネットワーク接続状態を判断するには、Application オブジェクトの MachineOnlineState プロパティを使用します。その後、同じ Application オブジェクトの IsDestinationReachable メソッドを使用して、フォームが外部データ ソースを見つけられるかどうかを判断できます。MachineOnlineState プロパティは、フォームの接続状態を表す値を含みます。このプロパティの値は次のとおりです。

説明

0

コンピュータがネットワークに接続していません。コンピュータがネットワークに接続していない場合、またはコンピュータのネットワーク カードが無効な場合に、この値になることがあります。

1

コンピュータがネットワークに接続しています。コンピュータがネットワーク ケーブルによってネットワークに接続している場合、この値は、コンピュータがネットワーク上に存在することを示します。コンピュータが稼働中の無線ネットワーク カードを備えている場合、この値は、無線ネットワーク カードが稼働していることを示します。ただし、コンピュータは無線ネットワークに接続していないことがあります。

2

コンピュータはネットワークに接続していますが、Windows Internet Explorer がオフラインで稼働するように構成されています。Internet Explorer がオフラインで稼働するように構成されている場合、データベースまたは Web サービスへのデータ接続は正しく機能しないことがあります。

ユーザーのコンピュータがネットワークに接続していることを確認したら、IsDestinationReachable メソッドを使用し、フォームが外部データ ソースと通信できるかどうかを判断できます。このメソッドは、パラメータとして外部データ ソースの URL (Uniform Resource Locator) または URN (Uniform Resource Name) を受け取り、次のブール型 (Boolean) の値を返します。

True    フォームはネットワーク上で外部データ ソースを見つけました。

False    フォームは外部データ ソースを見つけられません。外部データ ソースはオフラインになっているか、ネットワーク上には存在するものの使用不可になっている可能性があります。

ここで紹介するスクリプト例は、フォームがネットワークに接続しているかどうかのみを判断します。ここでは、ユーザーがフォームを最初に開いたときにスクリプト例を使用します。ただし、このスクリプトは操作の実行前にネットワーク接続を確認するために、いつでも使用することができます。たとえば、ユーザーがフォームで特定のボタンをクリックするときにこのスクリプトを使用し、外部データ ソースへのネットワーク接続が存在するかどうかを判断することができます。このスクリプトを使用するタイミングに関係なく、フォームがネットワークに接続しているかどうかに応じて操作を実行するスクリプトを追加することもできます。たとえば、コンピュータがオフラインになっているか、外部データ ソースに接続できない場合に、InfoPath を通じて、外部データ ソースが使用不可であることを示す警告メッセージをユーザーに表示することができます。この警告メッセージをカスタマイズし、外部データ ソースが使用不可である場合にどうするかをユーザーに伝えることができます。たとえば、フォームへの入力を後で行うように伝えたり、サポート サービスに連絡するように指示することができます。

ページの先頭へ

JScript の例

var machineState = Application.MachineOnlineState;
var displayMessage = machineState;
switch(machineState)
{
case 0:
{
displayMessage = "The computer is not connected to a network.";
break;
}
case 1:
{
if (!Application.IsDestinationReachable("http://example"))
{
displayMessage = "The computer is connected to a network, "
+ "but the external data source is not "
+ "available. Contact the data source "
+ "administrator for more information.";
}
else
{
displayMessage = "The computer is connected to a network.";
}
break;
}
case 2:
{
displayMessage = "The computer is connected to a network, but "
+ "Internet Explorer is in offline mode. Some "
+ "data connections may not work until you "
+ "set Internet Explorer to online mode. To "
+ "switch to online mode, on the File menu in "
+ "Internet Explorer, click Work Offline.";
break;
}
default:
{
displayMessage = "An unknown error occurred: Error: "
+ machineState;
}
}
XDocument.UI.Alert(displayMessage);

ページの先頭へ

VBScript の例

Dim machineState, displayMessage, returnValue
machineState = Application.MachineOnlineState
displayMessage = machineState
returnValue = False
Select Case machineState
Case 0
displayMessage = "The computer is not connected to a network."
Case 1
returnValue = Application.IsDestinationReachable("http://example")
If returnValue = False Then
displayMessage = "The computer is connected to a network, but "
displayMessage = displayMessage + "the external data source is "
displayMessage = displayMessage + "not available. Contact the "
displayMessage = displayMessage + "data source administrator "
displayMessage = displayMessage + "for more information."
Else
displayMessage = "The computer is connected to a network."
End If
Case 2
displayMessage = "The computer is connected to a network, but "
displayMessage = displayMessage + "Internet Explorer is in "
displayMessage = displayMessage + "offline mode. Some data "
displayMessage = displayMessage + "connections may not work "
displayMessage = displayMessage + "until you set Internet "
displayMessage = displayMessage + "Explorer to online mode. "
displayMessage = displayMessage + "To switch to online mode, "
displayMessage = displayMessage + "on the File menu in "
displayMessage = displayMessage + "Internet Explorer, click "
displayMessage = displayMessage + "Work Offline."
Case Else
displayMessage = "An unknown error occurred: Error: "
displayMessage = displayMessage + machineState + "."
End Select
XDocument.UI.Alert(displayMessage)

ページの先頭へ

スクリプト例をフォーム テンプレートで使用する

フォーム テンプレートで使用する前にスクリプト例をテストする場合は、次の手順を使用して空白のフォーム テンプレートを作成し、ここで紹介しているスクリプト例のいずれかを OnLoad イベントにコピーします。OnLoad イベント内のスクリプトは、フォーム テンプレートに基づく新しいフォームが作成されるたびに実行されます。その後、フォーム テンプレートをプレビューし、ネットワークに接続したコンピュータ、ネットワークに接続していないコンピュータ、またはネットワークに接続しているものの Internet Explorer がオフライン モードに設定されているコンピュータで、スクリプト例をテストすることができます。

  1. ここで紹介したスクリプト例のいずれかをコピーし、Microsoft メモ帳などのテキスト エディタに貼り付けます。

    注: スクリプトをフォーム テンプレートに追加する前にテキスト エディタにコピーすることで、HTML (Hypertext Markup Language) の書式設定記号がスクリプトに現れるのを防ぐことができます。

  2. InfoPath で、[ファイル] メニューの [フォーム テンプレートのデザイン] をクリックします。

  3. [フォーム テンプレートのデザイン] ダイアログ ボックスの [新しくデザイン] で、[フォーム テンプレート] をクリックします。次に、[空白] をクリックし、[OK] をクリックします。

  4. 既定では、新しいフォーム テンプレートはスクリプト言語として JScript を使用するように構成されます。スクリプト言語として VBScript を使用するには、フォーム テンプレートのスクリプト言語を変更します。

    操作方法

    1. [ツール] メニューの [フォームのオプション] をクリックします。

    2. [カテゴリ] ボックスの一覧の [プログラミング] をクリックします。

    3. [プログラミング言語] の [フォーム テンプレートのコード言語] の一覧で [VBScript] をクリックし、[OK] をクリックします。

  5. [ツール] メニューの [プログラミング] をポイントし、[OnLoad イベント] をクリックします。Microsoft Script Editor が、カーソルが OnLoad イベントに置かれた状態で起動します。

  6. Microsoft Script Editor の OnLoad イベントで、テキスト // Write your code here (JScript) または ' Write your code here (VBScript) を、テキスト エディタにコピーしたスクリプト例で置き換えます。

  7. 自分の環境に合うようにスクリプト例を修正します。たとえば、メッセージを修正したり、http://example を外部データ ソースの URL または URN に変更したりすることができます。

  8. Microsoft Script Editor で、[ファイル] メニューの [保存] をクリックします。

  9. 変更内容をテストするには、[標準] ツール バーの [プレビュー] をクリックするか、Ctrl キーと Shift キーを押しながら B キーを押します。

ページの先頭へ

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

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

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

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

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

×