「if文」と「繰り返し」を使ってショートカットレシピを作成する。(iOS13 ショートカット)

前回作成したショートカットレシピ「ヘルスケアに現在の体温を記録するショートカットを作成する。」の続きです。今回は、if文と繰り返し処理(無限ループ)を使ってショートカットレシピを完成させます。

前回のショートカットをまだ見ていない場合は以下のページをご覧ください。

今回のワークフロー

前回作成したショートカットは単純に入力された数値(体温)をヘルスケアアプリケーションに記録するだけのショートカットでした。今回は、そのショートカットに以下の処理を追加します。

  1. 入力された数値(体温)が、正しい数値(おおよその範囲内)かどうか判定する。(if文)
    • 数値が正しければ、ヘルスケアアプリケーションに数値(体温)を記録する。
    • 数値が間違いなら、アラートを表示し、再度入力画面を表示する。(繰り返し処理)
  2. 素早くシンプルに数値を入力出来る機能を追加する。

それでは早速作っていきましょう。

入力された数値(体温)の判定とその後の処理

前回作成したショートカットレシピでは、入力された数値(体温)が間違っていた場合でも、ヘルスケアアプリケーションにそのまま記録されてしまいます。それではちょっと問題があるので、入力された数値の判定を行ってから、正しければ記録し、間違いなら再度入力画面が表示されるようなワークフローを作成します。

数値(体温)の判定はif文を使います。
具体的には、我々人間は普通の状態なら体温は33℃から42℃の範囲内でしょうから、その範囲内の数値であればヘルスケアに記録をし、それ以外なら再度入力画面を表示させるようにします。

数値の判定
  1. 「if文」のアクションを追加し、「条件」部分をタップ
  2. 「次の範囲内」を選択
  3. 数値を33℃から42℃の範囲に設定します。
  4. 最後に 「ヘルスケアサンプルを記録」アクションを「もし」の下に移動します。

これで、「もし 入力された(指定入力)値が、次の範囲内 33 および 42 ならば ヘルスケアに数値を記録」というワークフローが作成できました。
※日本語的には、33から42ならば…となるのが正しいと思いますけどね。

さて、次は数値が間違い(その他の場合)の時のワークフローを完成させます。

繰り返しのアクション

間違いの場合は、間違いであることをアラートで表示し、続ける場合は最初の入力画面に戻るようなワークフローを作成します。

  1. アラートを表示」アクションをif文「その他の場合」の下に追加
  2. アラートに表示される文言を設定(数値に誤りがあります。続けますか?)
    ※ 「”キャンセル”ボタンを表示」をONにする事で、ショートカットを終了する動作も追加しておきます。
  3. ショートカットを実行」アクションをアラートの下に追加
  4. 実行するショートカットを現在動作しているショートカットに設定します。
③-④ この部分のポイントは、「ショートカットを実行」アクションで、実行させる対象を現在のショートカットに設定して、(無限ループ)繰り返し実行させる事です。

無限ループを作成する
「ショートカット」にはアクションのグループを永遠に繰り返すアクションは用意されていませんが、「ショートカットを実行」アクションを使用することでこの動作をエミュレートできます。「ショートカットを実行」アクションを使用すると、ショートカット内で別のショーカットを実行できます。「ショートカットを実行」アクションで内包されている同じショートカットを実行するように構成すると、ショートカットは停止するまで最初から最後まで繰り返し実行されます。

(ショートカット ユーザーガイドより)
https://support.apple.com/ja-jp/guide/shortcuts/apdc11deb2c1/ios

これで「入力された数値(体温)の判定とその後の処理」は完成しました。
「完了」をタップして、保存しておきます。

素早くシンプルに数値を入力出来る機能を追加

体温は、34.5℃や36.7℃のように、小数点第一位までの数値で入力するのが大方だと思います。わざわざ小数点を打たなくても、「345」と入力すれば、「34.5」と記録されれば入力作業も楽でしょう。
最後のワークフローとして、自動的に小数点を加えた数値にして記録する(数値の整形)機能を追加して、このショートカットレシピを完成させたいと思います。

数値の整形
  1. ここも「if文」アクションを追加して、数値を330 および 420 の範囲内と設定します。
  2. 「計算」アクションを追加して、 330から420 の値の場合には 0.1を掛けます。
  3. 整形された(0.1掛けた)数値をアラート表示して、整形された数値を確認します。

整形された数値が正しければ、ワークフローを続けて、最終的にヘルスケアアプリケーションに数値が記録されます。※仮に330から420以外の数値の場合は、この整形部分は通過して次のワークフローに進みますが、33℃から42℃の範囲内ではないので、再度入力画面が表示されるようになります。(繰り返し処理が行われます。)

判定部分の修正と記録データの修正

さて最後に仕上げです。
新たな機能(数値の整形)を追加したので、「入力された数値(体温)の判定とその後の処理」部分で作成したアクションを修正しなければなりません。

最終調整

の部分で判定する数値や記録する値が「指定入力」のままでは、整形された数値の場合が対象から除かれてしまいます。この部分およびヘルスケアサンプルに記録される値も変更しておかなくてはなりません。

  1. 「指定入力」を一度削除して、
  2. 改めて「マジック変数を選択」から
  3. 直前のワークフロー(直前のワークフローの値である)「”if文”の結果」を指定します。
  4. 最終的に のようにif文で判定する値およびヘルスケアサンプルに記録する値を修正します。

これで完成です。

まとめ(今回作成したショートカットレシピのダウンロード)

今回は、ただ単純に数値を入力するだけのショートカットレシピを、入力された数値のミスを防いだり入力する手間を省く機能を追加したりと、より便利なショートカットレシピとしてカスタマイズをしてみました。

さて、いかがだったでしょうか。

このショートカットは、以下のURLをクリックするとマイショートカットに追加できます。
※2020.04.10 iOS13.xより(iOS14.x対応)
https://www.icloud.com/shortcuts/c58612c1b9c24f819c628e78852878d7
※Web上など、ギャラリー以外から「ショートカット」を追加する場合は、「信頼されていないショートカットを許可」する必要があります。また初めて実行する場合は、それぞれの機能のアクセスを許可する必要があります。
※詳しくはこちらへ「信頼されていないショートカットを許可する

(追記)「if文」アクションの基本的な使い方について

タイトルとURLをコピーしました