# (Excel で行われるように) 値を計算してその他のタスクを実行するだけでなく、(アプリが必要とするように) ユーザー入力に応答する数式を利用して、アプリを構成します。

  • Excel では、たとえばセルに入力を行ってテーブルとグラフを作成する数式を構築します。
  • PowerApps では、セルではなくコントロールを構成し、同様の数式を構築します。 さらに、スプレッドシートではなく特定のアプリに適用される数式を構築します。

たとえば、ボタンの選択、スライダーの調整、またはその他の入力がユーザーによって行われた場合にアプリがどのように応答するかを決定する数式を構築します。 これらの数式により、異なる画面を表示したり、アプリの外部にあるデータ ソースを更新したり、既存のテーブルに存在するデータのサブセットが含まれたテーブルを作成したりできます。

数式は、さまざまなシナリオで利用できます。 たとえば、Location.LatitudeLocation.Longitude が使用される数式、デバイスの GPS、マップ コントロールを使って、現在の場所を表示できます。 移動すると、マップによって場所が自動的に追跡されます。

このトピックでは、数式の操作の概要のみを示します。 詳しい情報のほか、使用できる関数、演算子、その他の構成要素の完全な一覧については、数式のリファレンスを参照してください。

前提条件

単純な値の表示

## Excel では、「42」という数字や「Hello World」というフレーズなど、特定のデータをセルに打ち込んで入力できます。 このセルには、常に入力したとおりにデータが表示されます。 PowerApps では、同じように変更されないデータを指定できます。これを行うには、ラベルの Text プロパティに目的の一連の文字を二重引用符で囲んで正確に設定します。

  1. (画面の左端にある) [File (ファイル)] メニューの [New (新規)] を選択します。

  2. [Create an app (アプリの作成)] で、[Blank app (空のアプリ)] タイルの [Phone layout (Phone レイアウト)] を選択します。

    数式バーは画面の最上部にあります。

    数式バー

    このバーには、2 つの部分があります。

    • "プロパティの一覧": 各コントロールと画面にはプロパティがあります。 この一覧を使って特定のプロパティを選択します。
    • "数式": 上記のプロパティの計算に使用される数式。値、演算子、関数で構成されます。

    数式バーで、選択したコントロールのプロパティを表示して編集できます。また、コントロールが選択されていない場合は、画面のプロパティを表示して編集できます。 選択されたコントロールの名前は、[Content (コンテンツ)] タブで確認できます。

    現在選択されているコントロールを表示するコンテンツ バー

    [Content (コンテンツ)] タブで名前をクリックして、選択されているコントロールの名前を変更できます。

  3. 画面にラベル コントロールを追加します。

    テキスト ボックス コントロールの追加

    ラベルを追加すると、プロパティの一覧に Text プロパティが自動的に表示されます。このプロパティで、コントロールに表示される内容が決まります。 既定では、このプロパティの値は "Text" になっています。

  4. Text プロパティの値を "Hello World" に設定します。このとき、この文字列を二重引用符で囲んで数式バーに入力します。

    ラベル "Hello World" の使用

    入力が済むと、新しいこの値がラベルに反映されます。 入力中、黄色の感嘆符アイコンが画面に表示される場合があります。 これらのアイコンはエラーを示します。しかし、有効な値の入力を完了すると、表示されなくなります。 たとえば、両側に二重引用符のない文字列は無効です。

    Excel では、42 などの数値を表示するには、その数値をセルに入力したり、その数値が解となる数式 (=SUM(30,12) など) を入力したりします。 PowerApps では、ラベルなどのコントロールの Text プロパティに 42 または Sum(30,12) を設定することで、同じ結果を得ることができます。 ワークシートまたはアプリのその他の変更に関係なく、セルとラベルにはいつもこの数値が表示されます。

    注: PowerApps では、Excel で行うように数式の前に等号またはプラス記号を使用しません。 数式バーでは、そこに入力したものはすべて既定で数式として処理されます。 さらに、先ほどテキストの文字列を指定したときのように、二重引用符 (") で数式を囲むことはしません。

  5. ラベルの Text プロパティで、"Hello World"Sum(1,2,3) に置き換えます。

    「Sum(1,2,3」のように部分関数を終わりかっこなしで入力すると、エラーが発生します。

    入力中、数式バーにこの関数の説明と必要な引数が表示されます。 "Hello World" の末尾の二重引用符と同様に、この数式の末尾のかっこを入力するまで、画面にはエラーを示す黄色の感嘆符が表示されます。

    完全な数式 Sum(1,2,3) の使用

入力に基づいた値の変更

## Excel では、「=SUM(A1:A2)」とセルに入力すると、セル A1 と A2 に含まれている値の合計が表示されます。 これらの値の一方または両方が変更されると、数式が含まれているセルには、更新された結果が自動的に表示されます。

2 つの数値の合計を再計算する Excel の図

PowerApps では、コントロールを追加してそのプロパティを設定することで、同様の結果を得ることができます。 次の例には、前の手順で使用したラベルのほか、TextInput1TextInput2 という名前の 2 つのテキスト入力コントロールが示されています。

2 つの数値の合計を再計算する PowerApps の図

テキスト入力コントロールにどのような数値を入力しても、ラベルにはいつもその数値の合計が表示されます。これは、Text プロパティに次の数式が設定されているためです。
TextInput1 + TextInput2

2 つの数値の合計を再計算する PowerApps の図

Excel では、たとえば負の値を赤色で表示するなど、条件付き書式を使用できます。 PowerApps では、If 関数が含まれた数式を使用して、Excel と同様の動作を実現します。

  1. ラベルの Color プロパティに次の数式を設定します。
    If( Value(TextBox1.Text) < 0, Red, Black )

    注: 数式では、コントロールのプロパティを指定する際に、コントロールの名前、ピリオド、プロパティの名前を順番に入力します。 たとえば、TextBox1Text プロパティは、「TextBox1.Text」と入力して指定します。

    値に基づいてラベルの色の変更を再計算する PowerApps の図

  2. TextInput1TextInput2 に、合計すると負の数値になる 2 つの数値を指定します。

    値に基づいてラベルの色の変更を再計算する PowerApps の図

    ラベルの値が赤色で表示されます。

ユーザー入力に基づいた色の変更

## ユーザーがアプリの外観または動作を変更できるように、数式を使用してアプリを構成できます。 たとえば、フィルターを作成してユーザーが指定したテキストの文字列が含まれたデータのみを表示したり、データ セット内のある特定の列に基づいて一連のデータをユーザーが並べ替えられるようにしたりできます。 この手順では、1 つ以上のスライダーを調整することで、ユーザーが画面の色を変更できるようにします。

  1. 前の手順のコントロールを削除します。または、先ほど行ったように空のアプリを作成します。その後、3 つのスライダー コントロールを追加します。

    スライダー コントロールの挿入

  2. 重ならないようにスライダーを配置し、3 つのラベルを追加して、RedGreenBlue と表示されるように構成します。

    スライダーの配置と各色コンポーネントのラベルの追加

  3. 各スライダーの Max プロパティを 255 に設定します。この値は、RGBA 関数の色コンポーネントの最大値です。

    Max プロパティを [Content (コンテンツ)] タブまたはプロパティの一覧で選択することで指定できます。

    各スライダーの最大値の変更

  4. コントロールから離れた場所をクリックして画面を選択し、画面の Fill プロパティに次の数式を設定します。
    RGBA( Slider1.Value, Slider2.Value, Slider3.Value, 1 )

    既に説明したとおり、コントロール プロパティへのアクセスには . 演算子を使用します。 Slider1.Value はスライダーの Value プロパティを参照し、ユーザーが MinMax の間の値で設定したスライダーの位置が反映されます。 この数式を入力すると、数式に含まれている各コントロールには画面と数式バーで同じ色が付きます。

    画面の背景塗りつぶし色に関する数式の変更 (未完了)

    閉じかっこを入力すると、各スライダーの既定の値 (50) に基づいて、画面の背景が濃い灰色に変わります。 数式の入力が完了した瞬間に計算が行われ、背景塗りつぶし色の値として使用されます。 既定のワークスペースでアプリを対話的に操作でき、プレビューを開く必要がありません。

    各スライダーの最大値の変更

  5. スライダーを調整し、変更が背景色に与える影響を確認します。

    各スライダーを変更すると、RGBA 関数が含まれている数式が再計算され、画面の表示がすぐに変更されます。

    画面の背景塗りつぶし色に関する数式の変更 (完了)

アプリの動作の管理

## 数式は、計算の実行と外観の変更だけでなく、アクションの実行にも利用できます。 たとえば、ボタンの OnSelect プロパティに、Navigate 関数が含まれた数式を設定できます。 ユーザーがこのボタンを選択すると、数式で指定されている画面が表示されます。

Navigate 関数や Collect 関数など、いくつかの関数は動作の数式でのみ使用できます。 このコンテキスト内のみで関数を使用できる場合に、数式参照による呼び出しが行われます。

セミコロン (;) で関数を分離すると、動作の数式で複数のアクションを実行することができます。 たとえば、コンテキスト変数を更新してデータ ソースにデータをプッシュし、最後に別の画面に移動することができます。

カテゴリ別のプロパティの一覧表示

## プロパティの一覧では、プロパティがアルファベット順で表示されます。しかし、[View (表示)] タブの [Advanced (詳細)] オプションを選択すると、(カテゴリ別に整理して) コントロールのプロパティをすべて表示することもできます。

[Advanced (詳細)] ビュー

このビューの中で直接数式を編集できます。 ウィンドウの最上部にあるコントロール セレクタ―では、操作するコントロールをすばやく見つけることができます。 また、プロパティの検索を使用すると、そのコントロールのプロパティをすばやく見つけることができます。

最初に、このビューには最も重要なプロパティが表示されます。 すべてのプロパティを表示するには、ウィンドウの下部にある下向き矢印をクリックします。 各コントロールには、コントロールの動作と外観のあらゆる要素を制御するプロパティの長い一覧があります。 一覧をスクロールしたり、ウィンドウの上部にあるボックスに入力してプロパティを検索したりできます。

数式の構文

## 数式バーに数式を入力すると、異なる構文要素がそれぞれ別の色で表示され、読みやすさが向上し、長い数式をより簡単に理解できるようになりました。 PowerApps のカラー コードの一覧を示します。

構文の強調表示