LoginSignup
3
2

More than 3 years have passed since last update.

PowerAutomateでズンドコキヨシをやってみた

Last updated at Posted at 2020-12-20

Power AutomateのAdvent Calendar用に、ズンドコキヨシをやってみました。
有名らしいのですが、最近初めて知りました > ズンドコキヨシ

全体像

1.Power Appsのボタンを押す
2.Power Automateでランダム数値を発生させて、なんかいろいろ条件分岐する
3.Power Appsのラベルにいまのズンドコ状況を出力する
4.「ずん・ずん・ずん・ずんどこ」がそろったら「き・よ・し!」とPower Appsに表示する
5.そろわなかったら「ずん・ずん・ずん・ずん・ずん 失敗」と出力

PowerAutomate

PowerAppsのラベルを取得して、ズンドコ状況と「き・よ・し」を返却します。

1.Power Appsから値を取得する

スタートは、テンプレートにある「Power Appsボタン」を選択して、
PowerAppsから値を取得します。
「変数を初期化」を選び、「PowerAppsで取得」を選ぶと、自動的に変数が追加されます。
image.png

2.「ずん」「どこ」切り替える用の変数を追加する

ランダムな変数がほしいのでrand(1,10)をとりあえず追加します。
これは1~10の間の整数を取得してくれるものです。
image.png

3.今のずんどこが失敗してたら初期化する

失敗したかどうかはindexof関数で「今のずんどこ」に「失敗」という文字列があるか取得します。
0より大きければ存在するので空白で初期化します。
空文字指定のやり方がわからなかったので、半角空白を設定しました。
image.png

4.次が「ずん」なのか「どこ」なのかで分岐する

2で取得したランダムな数値をmod関数で2で割って余りが1だったら「どこ」にします。
image.png

5.「どこ」ルートを作る

「どこ」は1回しかでてこないので、
「今のずんどこ」が「ずん・ずん・ずん・ずん」であるかどうか確認します。
文字数が11文字かどうかlength関数を使用して確認しています。
image.png

ずんどこきよしが出来ていたら、
zundoko変数に「ずん・ずん・ずん・ずんどこ」、kiyoshi変数に「き・よ・し!」と応答します。
できていなかったら
zundoko変数にconcat(「今のずんどこ」, 'どこ 失敗')、kiyoshi変数は半角空白を応答します。

6.「ずん」ルートを作る

「ずん・ずん・ずん・ずん」のあとに「ずん」が出てきたらエラーなので、
そこで判断して、「ずん・ずん・ずん・ずん」のときは
zundoko変数にconcat(「今のずんどこ」, '・ずん 失敗')、kiyoshi変数は半角空白を応答します。
image.png

そうじゃないときはとりあえず続けて問題ないのですが、
「•」を出すか出さないか判断するので、最初の「ずん」かどうかを判定して、
最初の「ずん」であれば
zundoko変数にconcat(「今のずんどこ」, 'ずん')、kiyoshi変数は半角空白を、
zundoko変数にconcat(「今のずんどこ」, '・ずん')、kiyoshi変数は半角空白を応答します。

PowerAutomate側は以上です。
(今気づいたけど、ズンドコキヨシが成功したときの初期化の検討が漏れてるな・・・)

PowerApps

Power AppsとPower Automateの連携はこちらの動画を参考にさせていただきました
はじめてのPowerApps 第8回

とりあえずボタンをおきます
image.png

あと「今のずんどこ」を表示する用のラベルと、「きよし」を表示する用のラベルもおきます。

ボタンを選択して「アクション」の「PowerAutomate」を選択します。
image.png

さっき選んだPowerAutomateが出てくるので、選択します。
選んだら「PowerAppsボタン.Run」がでてきます。
このRunの引数は、PowerAutomateの1で選んだ変数の数だけ引数が指定できるようになるようですので、
「今のずんどこ」であるLabel1.Textを指定します。
あと、応答を取得する用の変数ZundokoにSetします。
image.png

「今のずんどこ」のラベルのTextにZundoko.zundoko、「きよし」にZundoko.kiyoshiを設定。

これで完成です!!!

12/20 10:50追記

最初の1回目にLabel1.Textが取得できないでエラーになってしまうので、
If(IsBlank(Label1.Text), "", Label1.Text)こういうIf文を追加しました。

やってみる

image.png

ずんどこ失敗、ずんどこ失敗、どこ失敗・・・

image.png
できた!!!

3
2
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
3
2