Get(ModifiedFields)で変更箇所を強調表示
Tips

Get(ModifiedFields)で変更箇所を強調表示

2026年5月22日 admin Tips

変更箇所がどこか、すぐに分かりますか?

複数の項目を編集したあと、「さっきどこを変えたんだっけ?」と迷うことはないでしょうか。特に、入力チェックや承認作業をする人にとっては、「どこが変更されたのか」が一目で分かると、とても便利です。

FileMaker には、レコードを編集したときに「どのフィールドが変更されたか」を教えてくれる Get( ModifiedFields ) という関数があります。これをうまく使うと、変更された項目だけを枠で囲んだり、背景色を変えて強調表示することができます。

ここでは、専門用語はできるだけ避けながら、「変更されたところだけを目立たせる」ための基本的な考え方と、具体的な設定方法を紹介します。

Get( ModifiedFields ) とは?イメージで理解する

Get( ModifiedFields ) は、「今、編集中のレコードで、どのフィールドが変更されたか」を教えてくれる関数です。イメージとしては、次のような感じです。

  • レコードを開いて編集を始める
  • 何かのフィールドの内容を変更する
  • Get( ModifiedFields ) を呼び出すと、「変更されたフィールド名のリスト」が返ってくる

この「変更されたフィールド名のリスト」を利用して、「このフィールドは変更されているかどうか?」を判定し、変更されていたら色を変える、といったことができます。

ポイントは、「どのフィールドが変更されたか」を毎回自分で記録しなくても、FileMaker が自動で把握してくれている、というところです。

変更フィールドを色で強調する基本アイデア

変更箇所を強調表示する一般的な流れは次のとおりです。

  1. 計算フィールドを用意して、Get( ModifiedFields ) の結果を保存しておく
  2. 各フィールドの条件付き書式で、「自分のフィールド名がそのリストに含まれていたら色を変える」ように設定する

こうすることで、編集中のレコードで変更した項目だけが、自動的にハイライトされるようになります。

ステップ1:変更フィールド一覧を保持するフィールドを作成

まずは、どのフィールドが変更されたかを覚えておくためのフィールドを 1 つ作ります。

  1. 管理画面で、対象のテーブルに新しい計算フィールドを作成します。
    例:フィールド名 z_ModifiedFields
  2. 計算式に次のように入力します。
    Let ( [ wFields = Get ( ModifiedFields ) ] ; If ( IsEmpty ( wFields ) ; wFields ; Substitute ( wFields ; "¶¶" ; "¶" ) ) )
  3. 戻り値のタイプは「テキスト」にします。
  4. オプションで、「インデックスを作成しない」を選んでおくと、不要なインデックス作成を防げます(必須ではありません)。

このフィールドは、レコードを編集している間、「変更されたフィールド名のリスト」を持っていてくれます。後で、条件付き書式からこのフィールドを参照します。

ステップ2:条件付き書式で変更箇所をハイライト

次に、実際にフィールドを色や罫線で強調表示する設定を行います。ここでは例として、「変更されたフィールドは背景を薄い黄色にする」方法を紹介します。

1. レイアウトモードでフィールドを選択

  • レイアウトモードに切り替えます。
  • 変更箇所を強調したいフィールド(例:会社名、住所、電話番号など)をクリックして選択します。

2. 条件付き書式を設定

  1. メニューから「書式」→「条件付き書式…」を選びます。
  2. 「条件を追加」をクリックして、新しい条件を作成します。
  3. 「条件」のところに、次のような計算式を入力します。

    PatternCount ( "¶" & z_ModifiedFields & "¶" ; "¶" & GetFieldName ( テーブル名::フィールド名 ) & "¶" ) > 0

ここで、

  • z_ModifiedFields は先ほど作成した計算フィールド
  • テーブル名::フィールド名 は、今、条件付き書式を設定しているフィールド

です。
複数のフィールドに設定するときには、それぞれのフィールド名に合わせてこの部分を書き換えてください。

もし書き方に不安があれば、計算式の編集画面で「フィールド」一覧から該当のフィールドをダブルクリックし、GetFieldName ( ) で囲むようにすると入力ミスを防げます。

3. 強調表示のスタイルを決める

条件が入力できたら、「書式」側でどのように強調するかを選びます。

  • 背景色を薄い黄色にする
  • 文字色を赤にする
  • 太字にする
  • 枠線を太くする

など、確認しやすいスタイルを選んでください。「背景色 + 太字」など、複数の書式を組み合わせることも可能です。

どのタイミングで「変更された」と判断される?

Get( ModifiedFields ) は、基本的には「レコードを編集している間だけ」情報を持っています。レコードを確定する(コミットする)と、内容がリセットされるイメージです。

そのため、この仕組みは編集中の確認に向いています。

  • ユーザーがフォームを開く
  • いくつかの値を変更する
  • 承認者が変更箇所を目で確認する
  • 問題なければ保存(コミット)する

といった流れで、「どこを直したのか」を即座に把握できます。

逆に、「過去の版と見比べて差分を記録しておきたい」といった用途には、別途ログテーブルを用意するなど、もう少し高度な仕組みが必要になります。

運用時のちょっとした工夫

実際に運用する際には、次のような工夫をすると、より使いやすくなります。

  • 見せたいフィールドだけを対象にする
    すべてのフィールドをハイライト対象にすると、かえって見づらくなることがあります。ユーザーにとって重要な項目だけを選んで設定すると、確認が楽になります。
  • 入力中かどうかで表示を切り替える
    「入力モードのときだけハイライト」「閲覧時は通常表示」など、レイアウトを分けたり、別の条件付き書式で切り替えるやり方もあります。
  • レイアウト複製で設定を使い回す
    一度きちんと条件付き書式を組んだレイアウトを複製すると、別の画面でも同じロジックを流用しやすくなります。

まとめ:Get( ModifiedFields )で「どこが変わったか」を見える化

Get( ModifiedFields ) を使うことで、レコード編集時に「どのフィールドが変更されたのか」を簡単に把握できるようになります。この記事で紹介したポイントは以下のとおりです。

  • Get( ModifiedFields ) は「変更されたフィールド名のリスト」を返す
  • その結果を計算フィールドに保持し、条件付き書式から参照する
  • 各フィールドで「自分のフィールド名がリストに含まれているか」を判定して、色などを変える

難しそうに見えますが、実際には「計算フィールド 1 つ」と「条件付き書式」の組み合わせだけで実現できます。まずはテスト用のレイアウトで試してみて、使いやすいハイライト方法を探ってみてください。

※ 本稿は、生成AIを使用して執筆しています。重要な内容については、必ずご自身でマニュアル等をご確認ください。