データを検証するための関数
ユーザーに対してアプリをより動的で直感的にするもう 1 つの方法は、IsBlank、IsBlankOrError、IsEmpty、IsNumeric、IsToday、IsMatch などの検証関数を使用することです。 これらの関数では、フィールド、コントロール、変数、テーブルの条件を検証できます。 どの関数でも、評価の結果に基づいてブール値 (true または false) が返されます。 多くの場合、これらの関数はユーザーにメッセージやオプションを表示するために、If または Switch 関数と併せて使用されます。
たとえば、これらの関数を使用し、フィールドが空白の場合や、フィールドのデータが特定の形式と一致しない場合は、フォームの送信をユーザーに許可しないように構成できます。
数値入力の検証の概要
例を挙げて考えてみましょう。 テキスト入力 コントロール (既定値は空白) と、テキスト ラベル コントロール (Text プロパティに式を入力) の 2 つのコントロールを、上下に並べて配置するとします。 ラベルの Text プロパティに、If ステートメントを含む IsNumeric テストを使用します。 ラベル コントロールの Text プロパティを変更することで、出力を変更できます。
次の画像にある、Text プロパティの If ステートメントに注目してください。 テキスト入力フィールドに入力されたテキストに対する IsNumeric 検証の結果に応じて、ラベル コントロールに異なるテキスト出力を表示するように式が記述されています。
アプリをプレビュー モードに切り替えると、入力フィールドへのテキスト入力が可能になり、その下のラベルに数字の入力を求めるメッセージが表示されます。
数字を入力すると、ラベルのメッセージが変わります。
ヒント
これらの関数では、Not (または !) 演算子も使用できます。 たとえば、IsBlank は空白の条件をテストしますが、!IsBlank は空白以外の条件をテストします。
検証関数をアプリに使用することで、ユーザーによる入力やアプリ全体の対話機能を向上させることができます。
使用可能な検証関数
次に、Power Apps で使用される検証関数をいくつか簡単に紹介します (先述のとおり、出力は常に true または false になります)。
IsBlank - フィールド、プロパティ、または変数をチェックして結果が空白かどうかを確認します。
IsBlankOrError -- 式が空白であるか、エラーが発生したかを確認し、true または false を返します。
IsEmpty -- データのテーブルをチェックして、レコードが含まれているかどうかを確認します。
IsError - 値のエラーをテストします。
IsMatch - テキスト文字列をチェックして、結果が指定されたパターンと一致するかどうかを確認します。 たとえば、入力されたメールや電話番号をテストするために、この関数を使用できます。
IsNumeric - フィールド、プロパティ、または変数をチェックして結果が数値かどうかを確認します (前の例を参照)。
IsToday - 日付または時刻の値をチェックして、現地時間で今日の午前 0 時から明日の午前 0 時までの間にあるかどうかを確認します。
IsUTCToday - IsToday と似ていますが、タイム ゾーン非依存であり、現地時間ではなく協定世界時 (UTC) を使用する点が異なります。
Not() 関数または ! 関数をこれらの検証の前に使用すると、逆の状態を検証できます。 たとえば、
!IsBlankは、値が空白でないことを確認します。 (Not は、引数が false の場合に true を返します。)
IsMatch の例
もう 1 つ、IsMatch 関数を使用する例を見てみましょう。 IsMatch 関数を使用し、テキスト入力 コントロールに入力されたメール アドレスが有効でない場合は、ボタンを無効にします。 電子メールは事前定義のパターンであるため、簡単に使用できます。 ただし、ここではパターンのみをテストし、メール アドレスが実際に使用可能かどうかは検証しません。 デモ アプリを使用して、次の操作を行います。
注
これらのステップを実行しているときに、式でエラーが返される場合は、Power Apps 環境の言語設定 (ローカライズ) が一部の区切り記号や演算子に影響している可能性があります。 たとえば、式 Text(ThisItem.Price, "$ ##.00") は、日本やイギリスなど、ドットまたはピリオドを小数点として使用する言語や地域のものです。 しかし、フランスやスペインなど、小数点にコンマを使用する言語や地域では、式は次のようになります: Text(ThisItem.Price; "$ ##,00")
ThisItem.Price でのプロパティ選択演算子 "." (ドットまたはピリオド) は、小数点に関係なく常に同じですが、小数点とチェーン演算子の区切り文字がそれぞれコンマとセミコロンに変更されていることに注意してください。 内部的には式に違いはなく、異なるのは作成者が式をどのように表示および編集するかという点だけです。
テキスト入力 コントロールをキャンバスに追加します。 "Text Input" を削除して 既定 のプロパティを空白にします。 コントロールの名前を tiEmailEntry に変更します。
ボタン コントロールをテキスト入力フィールドの下に追加します。
ボタン コントロールの DisplayMode プロパティを次の式に変更します。
If(IsMatch(tiEmailEntry.Text, Match.Email), DisplayMode.Edit, DisplayMode.Disabled)このメールを照合する式により、Power Apps は入力フィールドのテキスト値が、"英数字の文字列の後に @ 記号、英数字の文字列、ピリオド (.) が続き、2 文字以上の文字列で終わる" というパターンに一致するかどうかをテストします。 入力文字列がこのパターンに一致しない場合、ボタンは "無効" モードのまま、ユーザーによる操作ができない状態になります。 では、この機能をテストしましょう。
右上隅にある再生ボタンを選択して、アプリをプレビューします。
フィールドが空白か、または不完全なメール アドレスの場合、ボタンは無効になり、グレーで表示されます。 @ やピリオド (.) を除いたメール アドレスを試してください。

適切な形式のメール アドレスを入力すると、ボタンが青色に変わり、選択可能になります。

データ検証機能は、ユーザーが入力したデータの形式調整に役立つツールです。 この機能を使用することで、データ入力エラーをなくし、ユーザー エクスペリエンスを向上することができます。


