# フォームの設定

シートの「フォーム」（検索フォーム）機能を利用すると、シート上部のツールバーにレコード検索のためのフォーム入力要素を配置し、レコードを絞り込んで表示できます。

![](https://2817247209-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FS2wT6ommdiuYru74JEtd%2Fuploads%2Fgit-blob-2c4024082d2d547199763023487812006ff3873d%2Fopp_search_form_on_toolbar.png?alt=media)

## フォーム要素の追加 <a href="#add_form_element" id="add_form_element"></a>

フォーム要素をツールバーに追加するには、以下の手順に従います。

1. シート設定のオプションタブから「検索フォームを有効にする」のチェックを有効にします
2. シート上部のツールバーに「検索する列のヘッダをドラッグ＆ドロップ」というメッセージとともにフォーム領域が表示されます。すでにビュー切り替えを有効化している場合はビュー切り替えコントロールの右側にフォーム領域が表示されます。
3. 検索したい列の列ヘッダをドラッグし、ツールバーのフォーム領域にドロップします。
4. 列のデータ型がテキスト型の項目の場合には、入力値を検索して比較する方法を選択するポップアップメニューが表示されるので、適切な比較方法を選択します。
5. 列に含まれるデータ型に応じて適切なフォーム要素が追加されます。
6. ドロップした列には自動的にフィルタが設定され、追加されたフォーム要素の値をフィルタの条件値として参照します。

![](https://2817247209-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FS2wT6ommdiuYru74JEtd%2Fuploads%2Fgit-blob-765d70a4fe59d9c58ad9c86202ad47b4863cb5e9%2Fdrag_drop_search_form_creation.png?alt=media)

![](https://2817247209-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FS2wT6ommdiuYru74JEtd%2Fuploads%2Fgit-blob-4733d1dfc360bf16727ab6ebdc68f28dd2b4a196%2Fsearch_form_created.png?alt=media)

### 追加可能なフォーム要素の種別

以下の入力種別のフォーム要素がフォームに追加できる要素としてサポートされています。追加されるフォーム要素の入力種別はドロップされた列のデータ型に依存して決定されます。

* **テキスト入力** - 任意のキーワード文字列を入力して検索可能なフォーム要素です。区切り方法を指定して複数のキーワードを入力することも可能です。
  * 列のデータ型 - テキスト/テキストエリア/ロングテキストエリア/ID/メール/電話/URL型など
* **数値入力** - 数値情報を入力して検索可能なフォーム要素です
  * 列のデータ型 - 数値/通貨/パーセント型 など
* **日付入力** - 日付情報を入力して検索可能なフォーム要素です。カレンダーで特定の日付を選択可能ですが相対的な日付（例：今日、来年、過去Nヶ月、など）も指定可能です。
  * 列のデータ型 - 日付/日付時間型
* **時間入力** - 0:00 - 24:00 までの時間情報を入力して検索可能なフォーム要素です
  * 列のデータ型 - 時間型
* **チェックボックス** - チェックボックスを表示してチェック状態を切り替え可能なフォーム要素です
  * 列のデータ型 - チェックボックス型
* **選択リスト** - プルダウン形式で選択肢を選んで検索条件を指定可能なフォーム要素です。単数選択/複数選択の切り替えが可能です。
  * 列のデータ型 - 選択リスト/選択リスト（複数選択）型

{% hint style="info" %}
テキスト入力フォーム要素に複数のキーワードが入力された場合、デフォルトではキーワードの「いずれかの値」に一致するように検索が実行されます。この動作を変更するには検索対象の列のフィルタ設定において適合モードを変更する必要があります。フィルタにおける適合モードの詳細は「[フィルタ](https://docs.mashmatrix.com/mashmatrix-sheet/ja/functions_about_displaying_data/filter)」を参照してください。
{% endhint %}

### 範囲を指定するフォーム要素の追加

日付/日付時刻/時間/数値/通貨/パーセント型のデータ型をもつ列をフォーム領域にドロップした場合は、値の範囲を指定して検索できるように開始(下限)/終了(上限)の２つの入力フォーム要素が作成されます。

## フォーム要素の並び替え/サイズ変更 <a href="#order_and_resize_form_element" id="order_and_resize_form_element"></a>

追加したフォーム要素は、並べ替えたり、サイズを変更することが可能です。フォーム要素のラベル **\[A]** をドラッグすることで要素を移動し、右端のリサイズバー **\[B]** を掴んで幅を調整できます。またフォーム要素メニュー **\[C]** からフォーム要素の詳細設定を行うことも可能です。

![](https://2817247209-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FS2wT6ommdiuYru74JEtd%2Fuploads%2Fgit-blob-d7475e5ca3bcdfa8be59262a06a35793baee0852%2Fform_element_detail.png?alt=media)

## フォーム要素の編集 <a href="#edit_form_element" id="edit_form_element"></a>

フォーム要素メニューをクリックして「編集」を選ぶことで、フォーム要素設定変更ダイアログが表示され、フォーム要素の詳細設定を編集できます。

![](https://2817247209-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FS2wT6ommdiuYru74JEtd%2Fuploads%2Fgit-blob-8f174ea69c549dd0b646e760c1674aac5e51afbc%2Fform_element_setting_dialog.png?alt=media)

* **\[A] 表示ラベル** - フォーム要素の左側にラベルとして表示する文字列を指定します
* **\[B] 要素の参照名** - フォーム要素を外部から参照する際に利用されるフォーム内で一意となる名前を指定します。参照名として利用できる文字は英数字と\_$のみです。
* **\[C] プレースホルダ文字列** - フォーム要素の入力欄が空欄の際にプレースホルダとして表示される文字を指定します。チェックボックス以外のフォーム要素で指定可能です。
* **\[D] 複数選択を可能にする** - 選択リストフォーム要素の場合にのみ指定可能です。選択肢を複数件選択できるようになります。
* **\[E] デフォルトの値(デフォルトで選択する選択肢/デフォルトでチェック状態にする)** - フォーム要素のデフォルトの値/状態を指定します。シートの初回ロード時/ビュー切り替え時にはこの設定で利用したデフォルト値が適用され検索されます。
* **\[F] 選択肢を編集** - 選択リストフォーム要素の場合にのみ表示されます。クリックすると選択肢編集ダイアログが表示されフォーム要素で選択できる選択肢が編集できます。
* **\[G] チェックされていないときはFALSE値として処理** - チェックボックスフォーム要素の場合のみ指定可能です。フォーム要素がチェックされていない場合にFALSE値が指定されていると解釈されます。この設定が未指定の場合、フォーム要素がチェックされていない場合はフォーム要素には値が未設定であると解釈され、フィルタの条件から外れます。
* **\[H] キーワードの区切り方法** - テキスト入力フォーム要素の場合のみ指定可能です。フォーム要素に入力されたテキストを複数のキーワード入力として利用する場合の区切り方法について、以下の候補から選択します
  * **空白文字**（デフォルト）- 空白文字（半角スペース/全角スペースなど）を区切り文字として入力されたテキストを分割し、複数のキーワードとして検索に用います
  * **コンマ** - コンマ `,` を区切り文字として入力されたテキストを分割し、複数のキーワードとして検索に利用します
  * **(区切りなし)** - テキストの区切りを行わず、入力されたテキスト全体を１つのキーワードとして検索に利用します

## フォーム要素の削除 <a href="#delete_form_element" id="delete_form_element"></a>

フォーム要素メニューから「削除」を選ぶことでフォーム要素をフォームから削除できます。

## フォーム要素の入力種別の変換 <a href="#convert-form-element-type" id="convert-form-element-type"></a>

テキスト入力あるいは選択リストフォーム要素の場合、フォーム要素メニューからお互いの入力種別に途中で変換することが可能です。

テキスト入力から選択リストに変換した場合は、選択肢から選んでテキスト型の列の検索を行うことができるようになります。選択リストからテキスト入力に変換した場合は、一致する文字列をテキスト入力に直接入力して検索を行うことができるようになります。

<figure><img src="https://2817247209-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FS2wT6ommdiuYru74JEtd%2Fuploads%2Fgit-blob-b359c1d149afdf383e462b725ccf7c2b8f6c0209%2Fimage%20(4).png?alt=media" alt=""><figcaption></figcaption></figure>

## フォーム要素への列のリンク <a href="#link_column_to_form_element" id="link_column_to_form_element"></a>

列をフォーム要素に重ね合わせてドラッグ＆ドロップすることにより、既存のフォーム要素に列をリンクさせ、検索条件の入力として共通利用できます。

![](https://2817247209-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FS2wT6ommdiuYru74JEtd%2Fuploads%2Fgit-blob-7b0046f95930b28e068a14bd5a61d9f545822361%2Fcolumn_link_to_form_element.png?alt=media)

列をフォーム要素にリンクした結果として同一のフォーム要素を参照する列が2つ以上できた場合には、それらの列のフィルタは自動的にフィルタグループの対象となり、いずれかの列に対して条件に一致すればレコードがリストされる（OR条件）ように検索が実行されます。すべての列が条件を満たすもののみを抽出したい（AND条件）場合は、列のリンク後にフィルタグループの設定を解除する必要があります。フィルタグループについての詳細は「[シートの設定 - フィルタ](https://docs.mashmatrix.com/mashmatrix-sheet/ja/change_sheet_setting/filter#firutagurpu)」を参照してください。

### リンク可能なフォーム要素 <a href="#linkable_form_element" id="linkable_form_element"></a>

ドラッグ＆ドロップで列をリンク可能なフォーム要素は、その列のデータ型と互換性のあるフォーム要素のみに限られます。各データ型をもつ列がリンク可能なフォーム要素を以下に示します。

| 列のデータ型                                | リンク可能なフォーム要素の種類    |
| ------------------------------------- | ------------------ |
| テキスト/テキストエリア/ロングテキストエリア/ID/メール/電話/URL | **テキスト**/**選択リスト** |
| 選択リスト/選択リスト(複数選択)                     | **テキスト**/**選択リスト** |
| 数値/通貨/パーセント                           | **数値**             |
| 日付/日付時間型                              | **日付**             |
| 時間型                                   | **時間**             |
| チェックボックス型                             | **チェックボックス**       |

### リンク時の比較方法の選択 <a href="#select_comaring_method_in_linking" id="select_comaring_method_in_linking"></a>

列をフォーム要素にリンクする際に、どの条件比較方法で検索を行うかが明らかでない場合には、比較方法を選択するように促すポップアップメニューが表示されます。この設定はリンク後に各列のフィルタ設定から変更することも可能です。

#### テキスト/テキストエリア/ロングテキストエリア/メール/電話/URLデータ型の場合

* 入力値に完全一致 - フォーム要素に入力された文字列と等しい値を持つものを検索します
* 入力値に前方一致 - フォーム要素に入力された文字列で始まる値を持つものを検索します
* 入力値に部分一致 - フォーム要素に入力された文字列を含む値を持つものを検索します

#### 数値/通貨/パーセント/日付/日付時刻/時間データ型の場合

* 入力値以上(>=) - フォーム要素に入力された値以上の値を持つものを検索します
* 入力値より大きい(>) - フォーム要素に入力された値より大きい値を持つものを検索します
* 入力値以下(<=) - フォーム要素に入力された値以下の値を持つものを検索します
* 入力値より小さい(<) - フォーム要素に入力された値より小さい値を持つものを検索します
* 入力値と等しい (=) - フォーム要素に入力された値と等しい値を持つものを検索します

## ビューによるフォームの切り替え <a href="#switch_form_using_view" id="switch_form_using_view"></a>

ビューによる切り替えを有効にしている場合、ビューの保存内容にはフォーム要素の配置および設定についても含まれます。そのため、ビューを切り替えることでフォームの内容を変更することも可能です。

プライベートビューを有効にしており、かつフォームのカスタマイズを許可している場合には、ブック所有者以外の閲覧ユーザであっても自分自身の検索フォームを作成しプライベートビュー設定として保存することが可能です。

## フォームのカスタマイズ <a href="#customize_form" id="customize_form"></a>

シート設定のオプションタブで「ユーザによるフォームのカスタマイズを許可する」にチェックを入れている場合には、そのシートの検索フォームをブック所有者以外のユーザがカスタマイズすることが可能です。

「ユーザによるフォームのカスタマイズを許可する」がチェックされていない場合、ブック所有者以外のユーザは、そのシートのフォームに新しくフォーム要素を追加したり、すでにフォーム内に追加されている要素を設定変更したり削除することはできません。
