XLSForm はフォームの作成を簡素化するオープン スタンダードです。 作成作業は、スプレッドシートを使用して、判読可能な形式で行われます。 XLSForm の詳細については、https://xlsform.org/ をご参照ください。 Survey123 は、XLSForm 標準のほとんど (すべてではありません) の機能をサポートしています。
XLSForm 準拠のスプレッドシートを作成するには、多くのオプションがあります。 Microsoft Excel が最もよく使用されますが、Kingsoft Spreadsheets、Google Sheets、OpenOffice Calc といったその他のオプションもあります。 さらに、ArcGIS Survey123 で使用できるように XLSForm スプレッドシートをエクスポートするオンラインの XForms ビルダーもあります。
フォームの作成に役立つように、ArcGIS Survey123 には Survey123 Connect デスクトップ ツールが含まれています。このツールは XLSForm 作成ツールと連動して XLS ファイルを作成します。 Survey123 Connect では、XLSForm ファイルの作成または編集時にプレビューを表示し、フォームを ArcGIS Online および ArcGIS Enterprise に公開して、データ収集のためのフォームの仕様に基づいてフィーチャ レイヤーを作成することができます。 ArcGIS Survey123 Connect は Windows で使用できます。
ArcGIS にフォームを公開した後は、Survey123 Web サイトを使用して、ArcGIS 組織サイトのメンバーとフォームを共有できます。 また、Survey123 フィールド アプリを介して収集したデータのマップやテーブルを解析し、調査結果をエクスポートすることもできます。
このトピックの目的上、ここでは ArcGIS Survey123 Connect と Microsoft Excel を使用してフォームを作成すると想定します。
通常、各 Excel ワークブックには、survey と choices という 2 つのワークシートがあります。 3 つ目のワークシート (settings) についても以下で説明します。 ワークシートには、フォームが機能するために存在しなければならない一連の必須の列があります。 さらに、各ワークシートには、フォーム内の各エントリーの動作を詳細に制御できるようにする一連のオプションの列もあります。 必須の列については、どのエントリーもその列に値が存在する必要がありますが、オプションの列は空白のままでもかまいません。 必須とオプションのどちらであっても、Excel ワークブックに追加された列は任意の順序で表示できます。 オプションの列を省略し、任意数の行を空白にしておくことができます。 すべての .xls ファイル形式は無視されるので、分割線、陰影、その他のフォント形式を使用してフォームを読みやすくできます。
survey ワークシート
このワークシートには、フォーム全体の構造が示されます。 ここには質問の完全なリストと、フォームでの表示方法に関する情報が格納されています。 通常は、1 行ごとに 1 つの質問を表しますが、下記に示すその他機能をフォームに追加して、ユーザー エクスペリエンスを向上させることができます。
survey ワークシートには、type、name と、label または hint の 3 つの必須の列があります。
- type 列では、追加する XLSForm 質問のタイプを指定します。 この列で可能な質問タイプには、十分に定義されたリストがあります。
- name 列は、質問に対する回答が保存されるフィーチャ レイヤーのフィールドの名前を決定します。 この列では、スペースや特殊文字を使用することはできません。 各レイヤーですべての質問の名前が一意でなければなりません。
- label および hint 列には質問のテキストが格納されます。 このテキストがフォームに表示されます。 質問には、少なくとも 1 つのラベルまたはヒントを指定する必要があります。警告メッセージが表示されないようにするには、ラベルを指定することをおすすめします。 これらの列では、スペースや特殊文字を使用できます。 または、翻訳の列を使用できます。 ラベルとヒントは、限られた HTML コードと、調査内で別の質問の回答に置き換えられる変数もサポートしています。 詳細については、「メモ」をご参照ください。
次の表に、Survey123 でサポートされているすべての列を示します。 これらの列は、Advanced テンプレートの survey ワークシートに含まれており、ワークシートに表示される順番でテーブルにリストされます。
| 列 | 説明 |
|---|---|
| タイプ | 指定されたリストから質問タイプを選択します。 select_one または select_multiple の質問を使用する場合、有効なリスト名を入力します。 |
| name | フィーチャ レイヤーのフィールド名。 |
| label | 調査で表示される質問のラベル。 |
| hint | 調査の質問に答えるのに役立つ情報。 |
| guidance_hint | アイコンをクリックした後のみ表示される追加の情報。 |
| appearance | 調査内のこのフィールドの表示設定を選択します。 |
| 必須 | [yes] を選択すると、調査を完了する前に、このフィールドに値が必要になります。 |
| required_message | 必須フィールドに回答がない場合、回答を求めるために、この列のメッセージが表示されます。 |
| readonly | [yes] を選択すると、このフィールドの値が読み取り専用に設定されます。 これらの値は、調査内で編集できません。 |
| default | このフィールドのデフォルト値を設定します。 調査にデフォルト値を設定します。 これを使用すると、よく使用される回答を提供するか、予想される回答の選択肢のタイプを示すことで、時間を節約できます。 |
| calculation | 前の質問の値を使用して計算を実行します (例: ${number} * 100)。 計算フィールドを参照して結果を表示します (例: The answer is ${calc})。 |
| constraint | 入力できる数値の範囲を制限します (例: .>0 および .<100)。 すべての質問タイプに使用できます。 |
| constraint_message | 制約条件を満たさない場合、有効な回答を求めるために、このメッセージが表示されます。 |
| relevant | 以前の質問の回答に基づいて、質問をスキップしたり、追加の質問を表示したりすることができます。 relevant 列の条件 (例: ${name} = 'value') を満たすと、質問が表示されます。 この列によって非表示になった質問は、null 値のみを送信します。 |
| choice_filter | カスケード式の選択を使用する場合、このフィールドは、選択タブの追加の属性列と一致する式を保持します (例: attribute = ${value})。 |
| repeat_count | この値は、繰り返しで使用できるレコード数を指定します。 繰り返し数を指定した後は、繰り返しのレコードを追加または削除することはできません。 |
| media::audio | オーディオ ファイルをプロジェクトのメディア サブフォルダーにコピーし、オーディオ ファイルの名前 (例: audio.mp3) を入力して、質問にオーディオを加えます。 |
| media::image | 画像ファイルをプロジェクトの media サブフォルダーにコピーし、画像ファイルの名前 (例: image.jpg) をここに入力して、質問とともに画像を表示します。 |
| bind::type | 質問のデフォルトのフィールド タイプを上書きするフィールド タイプ。 |
| bind::esri:fieldType | フィーチャ レイヤーのターゲット フィールド タイプを定義します。 これを使用して、デフォルト フィールド タイプを上書きできます (たとえば、calculate および select_one フィールドはデフォルトでは文字列です。 フィーチャ レイヤーにこの値を整数で保存するには、esriFieldTypeInteger を選択します)。 |
| bind::esri:fieldLength | フィーチャ レイヤーのターゲット フィールドの長さを定義します。 これを使用して、デフォルトのフィールドの長さを上書きできます。 |
| bind::esri:fieldAlias | フィーチャ レイヤー内のフィールド エイリアスの値を指定します。 これを使用して、質問ラベルから取得されるデフォルトのフィールド エイリアスの値を上書きできます。 |
| body::esri:style | 質問のスタイルや動作を定義するための式を指定します (例: グループや繰り返しの背景色)。 |
| bind::esri:parameters | Survey123 に固有の質問のパラメーターを指定します (例: 調査を編集するときの繰り返しの動作を制御するパラメーター)。 |
| bind::esri:workflow | パラメーターを指定して、距離計計測モードで調査を使用できるようにします。 |
| パラメーター | 質問に対し、標準の XLSForm パラメーターを指定します (例: 範囲の質問の start、end、step の各パラメーター)。 |
| body::accept | ファイルの質問で使用可能なファイル タイプを設定します。 ファイル拡張子を許可します。複数のファイル拡張子はカンマで区切ります (例: .jpg, .png)。 |
| body::esri:visible | 以前の質問の回答に基づいて、質問をスキップしたり、追加の質問を表示したりすることができます。 [body::esri:visible] 列の条件 (例: ${name} = 'value') を満たすと、質問が表示されます。 この列によって非表示になった質問は値を含んだままで、値を送信します。 |
| body::esri:inputMask | 入力マスクを使用する式を指定して、文字とシンボルを使用することで、データ エントリーの設定形式を提供します。 |
| label::language (xx) | 質問のラベルの翻訳を指定します。 言語は、言語名とコードで指定する必要があります (例: label::Español (es))。 言語ごとに新しい列を追加します。 言語のリストは、調査のドロップダウン メニューに表示されます。 |
| hint::language (xx) | 質問のヒントの翻訳を指定します。 言語は、言語名とコードで指定する必要があります (例: hint::Español (es))。 言語ごとに新しい列を追加します。 言語のリストは、調査のドロップダウン メニューに表示されます。 |
| guidance_hint::language (xx) | ガイダンスのヒントの翻訳を指定します。 言語は、言語名とコードで指定する必要があります (例: guidance_hint::Español (es))。 言語ごとに新しい列を追加します。 言語のリストは、調査のドロップダウン メニューに表示されます。 |
| required_message::language (xx) | 必要な質問が回答されていない場合、表示されるメッセージの翻訳を指定します。 言語は、言語名とコードで指定する必要があります (例: required_message::Español (es))。 言語ごとに新しい列を追加します。 言語のリストは、調査のドロップダウン メニューに表示されます。 |
| body::accuracyThreshold | 位置の値を受け入れなくする上限の閾値の数値 (メートル単位) を指定します。 ジオトレースと、ジオシェープおよびジオトレースの質問の頂点に適用されます。 |
| bind::esri:warning | 条件を満たさない場合に警告を表示する式を適用します。 |
| bind::esri:warning_message | bind::esri:warning 条件を満たさない場合にメッセージを表示します。 |
| bind::saveIncomplete | アプリが質問の後に回答を自動的に保存する場合、true に設定します。 |
choices ワークシート
このワークシートは、複数の選択肢の質問の回答の選択肢を指定するために使用します。 各行が回答の選択肢を表しています。 リスト名が同じである回答の選択肢は、関連する選択肢のセットの一部だと見なされ、1 つの質問に対してまとめて表示されます。 これにより、一連の選択肢を複数の質問に再利用することもできます (yes/no の質問など)。
choices ワークシートには、list name、name、label という 3 つの必須の列があります。
- list name 列では、関連する回答の選択肢のセットをグループ化できます。 リスト名が同じである選択肢は、質問に対する一連の回答として表示されます。
- name 列では、ArcGIS で維持される値を指定します。 name 列の値に特殊文字を含めることはできません。 選択リストに重複する選択肢名を含めることはおすすめしません。 重複する選択肢名の詳細については、「複数の選択肢の質問」をご参照ください。
- label 列には、フォームの表示とまったく同じ状態で回答の選択肢が示されます。 または、ラベル翻訳の列を使用できます。
Excel でフォームを作成する場合、使用する構文が正確である必要があります。 たとえば、choices ではなく Choices または choice と記述した場合、フォームは機能しません。
settings ワークシート
settings ワークシートはオプションで、フォームをさらにカスタマイズできます。 フォームの編集時に表示されるタイトル、完成した各フォームを一意に識別するためのインスタンス名、調査の一意のバージョン識別子などをカスタマイズできます。 詳細については、「設定」をご参照ください。
補助ワークシート
Survey123 テンプレートには、フォームで使用できるプロパティ、演算子、および関数を含むワークシートが含まれています。 これらのワークシートは、調査および設定ワークシートのドロップダウン リストやその他のデータの整合チェックのルールを設定するためにも使用されます。 データの整合チェックを正常に動作させるには、補助ワークシートの内容を変更しないことをおすすめします。
質問タイプ
XLSForm は多数の質問タイプをサポートしています。 たとえば、店舗の名前と位置を収集するには、次のように記述します。

次の表は、XLSForm の type 列に入力できる質問、質問で受け入れられる入力、フォームの公開時にその質問に関連する ArcGIS フィーチャ レイヤーで作成されるフィールド タイプを示しています。 調査の作成者は、これらの質問タイプの多くのフィールド タイプを変更できます。 フィールド タイプの詳細については、「Esri カスタム列」をご参照ください。
| 質問タイプ | 回答の入力 | デフォルトのフィールド タイプ |
|---|---|---|
| integer | 整数の入力。 | esriFieldTypeInteger |
| decimal | 小数の入力。 | esriFieldTypeDouble |
| 範囲 | 指定範囲の数の入力。 | esriFieldTypeInteger |
| text | フリー テキストの回答。 | esriFieldTypeString |
| select_one list_name | 1 つだけ回答を選択できる複数の選択肢の質問。 list_name を選択リストの名前に置き換えます。 フィールド タイプは変更できますが、式で使用する場合、選択名は常にフィールド アプリ内で文字列として処理されます。 | esriFieldTypeString |
| select_multiple list_name | 複数の回答を選択できる複数の選択肢の質問。 list_name を選択リストの名前に置き換えます。 フィールド タイプは変更できます。式で使用する場合、選択名は常にフィールド アプリ内で文字列として処理されます。 | esriFieldTypeString |
| rank list_name1 | ランキングの質問。選択肢のリストのランク順を決定します。 list_name を選択リストの名前に置き換えます。 フィールド タイプは変更できます。式で使用する場合、選択名は常にフィールド アプリ内で文字列として処理されます。 | esriFieldTypeString |
| note | 画面にテキストが表示され、入力は行えません。 非表示の計算も表示できます。 | esriFieldTypeString |
| geopoint | 単一の GPS 座標を収集します。 フィールド タイプは変更できません。 | esriFieldTypeGeometry |
| geotrace | マップ上のラインを収集します。 フィールド タイプは変更できません。 | esriFieldTypeGeometry |
| geoshape | マップ上のポリゴンを収集します。 フィールド タイプは変更できません。 | esriFieldTypeGeometry |
| date | 日付の入力。 | esriFieldTypeDate |
| time | 時間の入力。 | esriFieldTypeString |
| dateTime | 日時の入力を受け入れます。 | esriFieldTypeDate |
| image | 写真を撮影します。 | Attachment |
| begin group | 質問のグループを開始します。 | 該当なし |
| end group | 質問のグループを終了します。 | 該当なし |
| begin repeat | 一連の繰り返しの質問を開始します。 | 該当なし |
| end repeat | 一連の繰り返しの質問を終了します。 | 該当なし |
| 計算 | フォームの値に対して計算を実行します。 このタイプの質問は非表示になっているため、フォーム上に表示されません。 | esriFieldTypeString |
| username2 | ArcGIS Online または ArcGIS Enterprise にサイン インすると、このフィールドにはアカウントのユーザー名が自動的に設定されます。 このタイプの質問は非表示になっているため、フォーム上に表示されません。 | esriFieldTypeString |
| email2 | ArcGIS Online または ArcGIS Enterprise にサイン インすると、このフィールドにはアカウントの電子メール アドレスが自動的に設定されます。 このタイプの質問は非表示になっているため、フォーム上に表示されません。 | esriFieldTypeString |
| hidden | フォームに表示されないフィールド。 bind::esri:fieldType 列と bind::esri:fieldLength 列を使用して、データ スキーマを指定します。 | esriFieldTypeString |
| barcode | バーコードをスキャンします。 | esriFieldTypeString |
| start | 調査の開始日時。 | esriFieldTypeDate |
| end | 調査の終了日時。 | esriFieldTypeDate |
| deviceid | 調査が取得された特定のデバイスを表す Survey123 によって生成された一意の ID。 これはモジュール デバイスの IMEI (International Mobile Equipment Identity) と異なります。Survey123 が実行されるデバイスには IMEI がない場合があります。 このタイプの質問は非表示になっているため、フォーム上に表示されません。 | esriFieldTypeString |
| audio | オーディオ サンプルを記録します。 | Attachment |
| file1 | デバイスにファイルをアップロードします。 | Attachment |
1 - ファイルとランクの質問タイプは現在、Survey123 のフィールド アプリでのみサポートされています。
2 - より柔軟なオプションは、pulldata("@property") 関数を使用して値を取得することです。 「デバイス、ユーザー、調査のプロパティ」をご参照ください。
Survey123 Connect では、質問タイプのサンプルを試して、Survey123 によってサポートされるすべての質問タイプが含まれているフォームを確認します。 これらの質問タイプが Survey123 Web デザイナーでどのように表されるかについては、「質問タイプの参照」をご参照ください。
メタデータ
XLSForm には、メタデータの収集のために次のデータ タイプ オプションが用意されています。
| メタデータ タイプ | 説明 |
|---|---|
| start | 調査の開始日時。 |
| end | 調査の終了日時。 |
| username | ArcGIS Online または ArcGIS Enterprise にサイン インしている現在のユーザーのユーザー名を記録します。 このデータ タイプは、入力は必要ありません。 |
| ArcGIS Online または ArcGIS Enterprise にサイン インしている現在のユーザーの電子メール アドレスを記録します。 このデータ タイプは、入力は必要ありません。 | |
| deviceid | 調査が取得された特定のデバイスを表す Survey123 によって生成された一意の ID。 これはモジュール デバイスの IMEI と異なります。Survey123 が実行されるデバイスには IMEI がない場合があります。 |
注意:
subscriberid、simserial、phonenumber という XLSForm メタデータ エレメントはサポートされていません。
このメタデータをすべて収集するには、調査の最初に次のものを追加します。

上記のメタデータ エントリーは、ArcGIS Survey123 によって自動的に取得されます。 これらはフォームに質問としては表示されませんが、調査の送信後に値が表示されます。
start または end タイプの質問を追加すると、ArcGIS Survey123 によって調査のフィーチャ レイヤーが自動的に時間対応になります。 この方法で、データの送信日付に基づいて調査のコンテンツをフィルタリングできます。 start および end エントリーの追加は、フォームを開いた時点から完了済みのフラグが立った時点までの正確な経過時間を知りたい場合にも有用です。
ヒント
フォーム上の質問にヒントを追加して、質問の回答方法を手引きしたいけれど、ヒントを質問の一部にはしたくない場合があります。 XLSForm では質問にヒントを追加できます。 hint 列を追加してヒントのメッセージを追加します。 次の例をご参照ください。

注意:
ヒントは、begin repeat と begin group の質問ではサポートされません。
guidance_hint 列を使用して、質問にガイダンス ヒントを追加することもできます。 ガイダンス ヒントは質問の回答方法を詳しく手引きするものですが、ヒントの横に表示されるガイダンス ヒントのボタンをユーザーがタップするまで非表示になっています。 ガイダンス ヒントは、質問に対するヒントがすでに用意されている場合のみ使用できます。

プレースホルダー テキスト
[body::esri:style] 列で placeholderText パラメーターを設定すると、入力した内容 (テキスト、整数、小数の質問、オートコンプリートの表示設定が指定された選択式の質問など) を受け入れる質問に対し、プレースホルダー テキストを提供することもできます。 placeholderText=@[hint] または placeholderText=@[guidance_hint] を使用すると、ヒントまたはガイダンス ヒントは非表示になり、ヒント テキストは質問の入力エリアの中に配置されます。 質問が空の場合、プレースホルダー テキストは入力エリアに表示されます。
注意:
プレースホルダー テキストは、Survey123 Web アプリではサポートされていません。
テンプレートの更新
注意:
このセクションでは、Survey123 Connect でのみ利用可能な機能について説明します。 この機能は、Survey123 Studio では利用できません。
[高度なテンプレート] には Survey123 のフィールド アプリでサポートされているすべての XLSForm フィーチャが含まれており、Survey123 Connect の [新しい調査] ダイアログ ボックスで使用できます。 このテンプレートは定期的に更新され、新機能が追加されて調査作成エクスペリエンスが強化されます。 以前のバージョンのテンプレートも引き続き問題なく使用できますが、最新の変更を活用するために、最新の XLSForm テンプレートに既存の調査を更新することをおすすめします。
[XLSForm テンプレートの更新] ツールでは、調査の既存の XLSForm が最新バージョンの高度なテンプレートに更新されます。 [survey]、[choices]、[settings] の各ワークシートの内容を新しいテンプレートの対応する行と列にコピーすることで更新が行われます。 新しいテンプレートだけでなく、外部選択を使用している場合は [external_choices] ワークシートにも追加した列がコピーされます。
ツールを実行するには、Python 環境を Survey123 Connect で構成する必要があります。 詳細については、「Python の構成」をご参照ください。
更新する調査を Survey123 Connect で開きます。 [ツール]、[XLSForm テンプレートの更新] の順にクリックします。 ツールが実行中であることを示すメッセージがダイアログ ボックスに表示されます。 処理が完了すると、調査フォルダーの .xlsx ファイルが最新のテンプレートに更新され、フォームのプレビューが Survey123 Connect で再ロードされます。 ツールの実行中にエラーが発生した場合は、既存の XLSForm が保持されます。
注意:
調査の XLSForm は .xlsx ファイルである必要があります。 [XLSForm テンプレートの更新] ツールは .xls ファイルに対して実行できません。
元の XLSForm の列、データ整合チェック、セルの形式、フォント スタイルが更新された XLSForm にも引き継がれていることを確認することをおすすめします。 ツールによって、既存の XLSForm のバックアップとログ ファイルが C:\Users\<username>\ArcGIS\My Survey Designs\<surveyName>\debug\template_updater に作成されます。 バックアップから調査を復元するには、.xlsx ファイルを template_updater フォルダーから調査のルート フォルダーにコピーします。 既存の XLSForm を削除し、元の XLSForm と同じになるようにバックアップの名前を変更します。
注意:
各行の先頭列のセルの塗りつぶし色が更新されたテンプレートの行全体に適用されます。
多言語調査の場合、label::language (xx) や hint::language (xx) などのデフォルト言語列が更新されたテンプレートから除外されます。
特殊文字
質問の名前と選択肢の名前には、空白、カンマ、ハイフン、括弧、ブラケットなどの特殊文字や、$、%、# のような文字を使用できません。 select_multiple の質問の選択肢の名前には空白とカンマを使用しないことが重要です。