Power Automate Desktop(PAD)で、入力ダイアログを数値のみに制限する方法について解説します。
今回の例では、数値かつ、4桁であることのバリデーションチェックを行います。
ラベルとフラグの設定
まず、ラベルとフラグの設定をします。
ラベルの設定
「ラベル」というのは、プログラミングでいうgotoで、指定したラベルに直接遷移するようにすることができます。ラベル名は任意でOKです。
フラグの設定
「変数」はデフォルトだとNewVarとなっていますが、数値かどうかを判定するフラグであることが分かるよう IsNumber と名前を変更しています。
「値」には True を設定します。
入力用のダイアログを追加する
次に、ユーザーからの入力を受け付ける用のダイアログを配置します。
- 入力ダイアログのタイトル:ダイアログのタイトルバーに表示されるテキスト
- 入力ダイアログメッセージ:ダイアログのメッセージテキスト
- 規定値:規定の入力値
- 入力の種類:1行 / パスワード / 複数行 から選択
今回の例では、「入力ダイアログメッセージ」のみ設定しています。
これを実行すると、以下のような入力用ダイアログが表示されます。
入力内容が数値かどうかを判定する
ユーザーがメッセージを入力して、OKが押されたあとに、入力された内容が数値かどうかを判定するようにします。
変数が数値かどうかを判定する方法の詳細は、以下記事にて解説しています。
入力値が数値かどうかを判断する
「テキストを数値に変換」では、数値以外を数値に変換しようとすると例外が発生します。例外発生時に、再度フローの先頭に戻って入力ダイアログが出るようにしたいので、左下の「エラー発生時」を押します。
例外処理モードを「ラベルに移動」にし、フローの先頭に戻るようにします。
「テキストを数値に変換」アクションで、数値にできなかった場合はフローの先頭に戻ります。
入力内容が数値ならフローを進める
入力内容が数値の場合は、以降のフローを進めるようにします。
If を追加して、数値かどうかを判断するIsNumber変数がTrueかどうかチェックします。
数値の桁数をチェックする
さらに、数値が4桁かどうかをチェックします。
先ほど追加した If の中に入れてください。
数値の桁数は、
%UserInput.Length%
で分かります。(厳密に言うとテキスト型のプロパティを使用しています)
桁数が違う場合の処理
桁数が指定した桁でない場合、フローの先頭に戻って再度入力ダイアログを出すようにします。
Elseで、数値の桁が4桁でないときの処理を分岐させます。
そして、「移動先」アクションを追加し、指定したラベルに飛ぶように設定します。
フロー全体
フロー全体は以下のようになります。
これを実行すると、数値以外ではエラーになり、
桁数が4桁でない場合もエラーとなり、
4桁の数値のときのみエラーが発生しません。
まとめ
今回は、Power Automate Desktop(PAD)で、入力ダイアログを数値のみに制限する方法について解説しました。
メッセージボックス自体でバリデーションチェックが出来たら楽なんですが、そのような機能はないので、チェックするためのアクションを自分で追加していく必要があります。
当ブログでは、Power Automate、Power Automate Desktopに関する記事を他にも投稿しています。もし、「このようなことが知りたい」「こんなフローの作り方が知りたい」等ございましたら、問い合わせやコメントからお気軽にご連絡ください。
コメント