![PowerAppsの()、[]、{}の使い方](https://hobby-compass.com/wp-content/uploads/2021/03/247b909204c7394e0fffcc65d0a2cdcc.png)
今回はPowerAppsで何気なく使っている括弧たち。それぞれに意味がありますので今回はその括弧について改めて見直してみて理解を深めていきます。
PowerAppsに必須の知識PowerFX対応の学習本はこちら
PowerApps学習の本命・実際のアプリももらえる学習本
PowerApps学習方法一覧

3種類の括弧
PowerAppsで使う括弧には3種類あります。
- ()・・・丸括弧
- []・・・角括弧
- {}・・・波括弧
と呼ばれていることが多いですが、実際のところは厳密な呼び方の定義があるわけではなく、暗黙的に呼称されているだけですので注意してください。
()丸括弧を深掘り
PowerAppsで一番使う括弧が()になります。これにはどういう意味があるのでしょうか。
関数の宣言
関数の後に()を入れることで関数と文字列を識別します。
例えばToday 関数というものがあります。Today()と入力すると今日の日付を取得してくれます
ラベルを2枚作成し片方のTextにはTodayと入力し、もう片方にはToday()と入力してください。()付きのTodayは今日の日付が表示され、()がないものはエラーになったはずです。
これは、()がないためTodayが変数として認識されてしまっているからです。もちろん、あらかじめ変数Todayに値を入力していればそれが表示されます。
関数を関数たらしめるのは()であるということです。

引数の設定
引数とは関数に値(データ)を渡すものです。関数に値(データ)を渡すことで関数がその値(データ)を処理してくれます。
この引数を設定する場合に複数設定しないといけない場合があります。その場合は , で区切ります。複数の引数を設定する場合は順番が大事な関数もたくさんありますので注意しましょう。
例えばSum関数というものがあります。これは()の中で設定された数字を合計してくれる関数になります。ラベルを作成しTextにSum (1,2)と入力してください。3と表示されたはずです。
ここにおける引数とは1と2になります。複数の引数があるので1,2とすることで1と2の引数をSum関数に渡していることになります。Sum関数に1と2の引数を渡したことでSum関数が引数を処理し合計した値である3を返してくれていることになります。
このSum関数の引数は順番があまり関係ありません。次に順番が大事なIf関数を見てみます。
同じくラベルのTextにIf(1=1,"正解","ハズレ")と入力してください。正解と表示されたはずです。
では次にIf(1=2,"正解","ハズレ")と入力してください。ハズレと表示されたはずです。
If関数では一つ目の引数に条件式、二つ目に条件式が正しかった場合の処理、三つ目に条件式が正しくなかった場合の処理を記入します。
最初に入力したIf(1=1,"正解","ハズレ")では1=1は正しいので正しい場合の処理である二つ目の処理である"正解"が表示されています。一方で二つ目のIf(1=2,"正解","ハズレ")では1=2は間違いなので正しくなかった場合の処理である"ハズレ"が表示されています。
この引数は関数によって必要なものと必要ないものがあります。前項の関数の宣言で例示したToday関数は引数は必要ありませんが、一方で今回のSum関数やIf関数は引数が必要になります。

数式の処理を優先
まず初めに次の問題を解いてください。
1+1÷2
答えは1.5ですね。算数では割り算や掛け算は先に行うという原則があります。もし先に足し算を行いたい場合は
(1+1)÷2
と()で囲う必要があります。
PowerApps で計算をさせる場合にも足し算や引き算を優先したい場合があると思いますがその場合には()で囲う必要があります。小学校の時の算数と同じ使い方ですね。
[]角括弧を深掘り
PowerApps で[]を知っていると色々と便利なことがありますので[]の使い方も知っておきましょう。
リストを作成
[]の中に値を , で区切り複数入力することでリストを作成できます。このリストはPowerApps 内ではテーブルで処理されていますが、実際はリストとなります。
例えばボタンを作成しOnselectにUpdateContext({List:[1,2,3,4]})を入力し実行してみてください。
変数Listにテーブルが作成されValue列に1,2,3,4が格納されています。これはリストとして1,2,3,4が入っていることになります。この状態でドロップボックスを作成しItemsにListと入力すればドロップボックスの項目に1,2,3,4が表示されます。
{}波括弧を深掘り
この{}はあまりマイクロソフトの公式でも説明があまりないですが無茶苦茶重要です。これを知らないと変数の処理やテーブルの作成ができませんのでこれを機会に覚えましょう。

辞書型のリスト作成
{}は次のように使います。
{A:a}
この場合Aとaは対応していることになります。
また、もっと項目を増やしたい場合は
{A:a,B:b,C:c・・・}
のように , で区切って項目を増やすことも可能です。この場合はAとa 、Bとb、Cとcが対応しています。
実際の使い所としては変数の設定があります。
ボタンを一つ作成しOnselectにUpdateContext({A:"a"})と入力し、実行し変数を確認してみてください。UpdateContext関数は変数を作成する関数になりますので変数Aにテキストの「a」が入っているのがわかるはずです。
この場合はAとaが対応し変数Aにaを代入していることがわかります。
同じくボタンを作成しOnselectに今度はUpdateContext({A:"a",B:"b"})と入力し実行してみてください。変数Aにa、Bにbが入っているはずです。{A:"a",B:"b"}とすることでAとa、Bとbが対応しそれぞれに代入されているのが確認できます。
次にボタンを作成OnselectにClearCollect(Table,{A:"A1",B:"B1"},{A:"A2",B:"B2"})と入力し今度はコレクションからテーブルを確認してみてください。ClearCollect関数はテーブルを作る関数になります。
実行することで次のようなテーブルが作成されているはずです。
A | B |
---|---|
A1 | B1 |
A2 | B2 |
今回の{}をみてみると{A:"A1",B:"B1"},{A:"A2",B:"B2"}となっています。一つ目の{}は表の1行目に対応しています。その中身はAとA1が対応し、BとB1が対応しています。次の{}ではAとA2が対応し、BとB2が対応しています。つまり{}一つでテーブルの1行に対応しています。
また:の前の部分が列を表していて:の後の部分がセルの中身であるということがわかります。
このように{}はその役割は関数などの状況によって変わってしまいますが基本は : を基準に前の部分と後の部分が対応しているということです。ここを知っておかないとそれぞれの場合において丸暗記しないといけなくなるので注意してください。
