PowerAppsは、ノーコード、ローコードなのでスクリプトはそんなにメインではありません。しかしちょっと気の利いたことを実現しようとするとコードを活用する必要が出てくるでしょう。ここでは便利なアクションについてまとめていきます。
アクションの裏技集
複数行のコードを書くには?
「;」で区切ればOKです。
Icon1.Color:RGBA(255,0,0,1);Notify("here");
開発画面上でボタンを押すには?
実行画面にしなくても、Altキーを押しながらボタンを押すとボタンのコードが実行されます。
ボタンが押されているか確認するには?
「Notify」で文字を出力することができます。
これをボタンに書いておけば、押されたときに文字が出て確認できます。
Notify("here");
ボタンを押すと色を変えるには?
普通に考えればボタンを作ってアイコンの色を変えるには、ボタンの「OnSelect」のところで
Icon1.Color=RGBA(255,0,0,1)
のようにすればいいように思います。
しかし実行しても変化はありません。
コードで部品のプロパティを変えるのはうまくいかなくて、「おかしいなぁ」「おかしいなぁ」「こわいなぁ」「こわいなぁ」と探してみたら、ある記事に対処方法が出ていました。
まずアイコン1の「Color」のプロパティに変数「mycolor」と指定します。名前は変数で任意なので違う名前でもいいです。
次にボタンの「OnSelect」に
UpdateContext({ mycolor: Color.Yellow })
とします。
これはmycolor変数を黄色に指定するというものです。
これを実行すると....ボタンが無事黄色になりました。
作り方としては、「先に部品のプロパティを変数にしておいて、その変数を変える」ということになります。こうすると無事切り替わりました。
ボタンを押してプロパティを気軽に変更できないのは、アプリで予期せぬバグが出ないような設計ということなのかな...という気もします。
なお、変数の変更は
Set(myColor, Color.Green)
...のようにSet文を使っても大丈夫でした。
アプリ起動時に変数を初期化する
ツリービューで「App」を選択。すると「OnStart」というプロパティがあるのでそこに変数を初期化するコードが書けます。
ただ開発モードで実行しても変数が実行されません。実行するには、Appをツリービューで選択してからメニューで「OnStartを実行します」を選びます。
OnStartはアプリ開始時に1度だけ実行されるため、このような措置になっていると思います。
ユーザ情報を表示する
ユーザ関数を使うと、ログインユーザの情報がすぐ表示できます。
画像を貼り、
User().Image
でユーザの写真を表示できます。
位置情報・加速度を取得する
位置情報は「Location.Latitude」、加速度センサーは「Acceleration.X」といった具合に取得できます。
Acceleration, App, Compass, Connection, and Location signals - Power Apps | Microsoft Docs
その他の裏技
全画面で実行する
ブラウザで実行中のアプリを全画面で表示させます。
マイクロソフトエッジではF11キーで全画面表示になります。
PowerAppsのキャンバスアプリを実行させた後で、F11キーを押すとアプリだけ全画面で表示させることができます。
PowerAppsの使い方はこちら。