LoginSignup
8
5

はじめに

Power Appsの中で文字列を作成するときに、Excelと同様&を使ってしまうことが、しばしば登場します。
理解しやすい反面、慣れてくると美しくないなと思うかもしれません。

要素が多くなってくると読みづらくもなるので、できればスッキリできる方法が知りたい。

そこで登場するものが$を用いた文字列の補間です。

$(文字列補間)の使い方

文字列補間は、先頭に$を付けたうえで文字列を記載します。
サンプルとして下記の例を挙げます。

Text
$"Good morning🐟{User().FullName}
今日は{Today()}です!"

User 関数Today 関数が、あいさつ文の間に良い感じで入っています!
中括弧 {}で囲まれた部分に、変数や数式を設定でき、非常に便利です。

Concatenate 関数&よりも式がスッキリまとまります!

// &で無理やりくっつけた例
- "Good morning🐟" & User().FullName & "
-今日は" & Today() & "です!"

+$"Good morning🐟{User().FullName}
+今日は{Today()}です!"

Pythonのf文字列のようなイメージ

この使い方はPythonでいうf文字列(フォーマット済み文字列リテラル)の使い方に非常に似ています。

Pythonの場合
from datetime import datetime

user_name = "ガツオ 出戻り"
today_date = datetime.today().strftime('%Y-%m-%d')

message = f"Good morning🐟 {user_name}\n今日は {today_date} です!"
print(message)

f"Good morning🐟 {user_name}\n今日は {today_date} です!"に注目すると、
ほとんどf$に置き換わっただけと理解できます。

Power Appsの場合
$"Good morning🐟{User().FullName}
今日は{Today()}です!"

関数でサクっとユーザー情報をとれることが嬉しかったりしますね。

文字列補間を使ったチュートリアルの作成

よくアプリケーションが始まると、Welcome!!みたいなメッセージが出たりします。
OnVisibleの操作を仕込んだりもしますが、時間別に画面を変えるものを作ってみましょう。

  • 早朝
    image.png

  • 朝・昼
    image.png

  • 夕方
    image.png


  • image.png

  • 深夜
    image.png

画像はPower Appsのストック画像を使っています。
Now()関数で対処したいところですが、記事を一気に書き上げたいことから、コンテキスト変数で関数は宣言します。

テキストラベルとイメージ コントロール

主題は$の文字列補間ですが、イメージ コントロールも同様に時間に合わせて画像を変えます。

image.png

赤枠rgb(255,0,0)テキストラベル 、青枠rgb(0,0,255)イメージ コントロールです。

Text
$"{Switch(
    true,
    And(
        Hour(_nowTime) >= 5,
        Hour(_nowTime) < 9
    ),
    "早起きですねおはようございます",
    And(
        Hour(_nowTime) >= 9,
        Hour(_nowTime) < 14
    ),
    "おはようございます",
    And(
        Hour(_nowTime) >= 14,
        Hour(_nowTime) < 18
    ),
    "夕方ですね",
    And(
        Hour(_nowTime) >= 17,
        Hour(_nowTime) < 20
    ),
    "こんばんは",
    And(
        Hour(_nowTime) >= 18,
        Hour(_nowTime) < 23
    ),
    "遅くまでお疲れ様です",
    "こんな時間までお疲れ様です"
)} {User().FullName}🐟
時刻は{_nowTime}です!"
Image
Switch(
    true,
    And(
        Hour(_nowTime) >= 5,
        Hour(_nowTime) < 9
    ),
    '182654618',
    And(
        Hour(_nowTime) >= 9,
        Hour(_nowTime) < 14
    ),
    '530053449',
    And(
        Hour(_nowTime) >= 14,
        Hour(_nowTime) < 18
    ),
    '589001480_super',
    And(
        Hour(_nowTime) >= 18,
        Hour(_nowTime) < 23
    ),
    '855936706_medium',
    '922707200'
)

イメージは今回の主題から逸れてしまっていますが、一切&が登場していないことがわかります。

すらっと書いて、関数を美しくまとめる!
そんなことができますね!

おわりに

今回は$を用いたテクニックを紹介しました!
マラソン🏃はまだまだ続く・・・💦

8
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
5