入力ダイアログで文字を受け取る(空欄・キャンセルを分ける)
会社名を入力し、OK・空欄・キャンセルを分けるDesktopの練習です。前後の空白を除いてから、入力がある場合だけ確認メッセージへ進みます。
画面上の名前は、表示言語やバージョンによって異なる場合があります。Desktopの例は、フロー作成時に「Power Fx を有効にする」をオフにした標準構文です。Power Fx対応フローでは式・変数参照・インデックスの書き方が異なります。このページでは変数を %変数名% と表記します。出力変数の名前を入力する欄では、前後の % は付けません。
実行前に確認
- Desktopを利用できるWindows環境での有人・手動実行を想定しています。この例にクラウドサービスへの接続は不要です。クラウドからの起動や無人実行のライセンス・環境条件は別に確認してください。
- 練習には架空の会社名を使います。通常の入力欄へパスワードや個人情報を入力しないでください。
- 先にButtonPressedを判定し、キャンセル時はUserInputを使いません。OKでも空欄なら受け付けない構成です。トリミングは両端の空白を除く処理で、会社名の途中のスペースは残ります。
- ダイアログは人の応答を待ちます。空欄やキャンセルの「正常に」終了は、会社名を受け付けた意味ではありません。入力失敗を正常入力として続行させないでください。
1使うアクション
- アクション 1入力ダイアログを表示会社名と押されたボタンを受け取る
- アクション 2IfButtonPressed が OK と等しくない
- アクション 3フローを停止する正常に終了。入力値は使わない
- アクション 4Endボタン判定の終わり
- アクション 5テキストのトリミングTrim text。先頭と末尾の空白を除く
- アクション 6IfTrimmedText が空である
- アクション 7メッセージを表示「会社名が空欄です」を表示
- アクション 8フローを停止する正常に終了。確認メッセージへ進まない
- アクション 9End空欄判定の終わり
- アクション 10メッセージを表示入力がある場合だけ TrimmedText を表示
図で見る処理のイメージ
概念図同じ入力ダイアログでも、押したボタンと入力内容で次の処理が変わります。まずボタンを確認し、OKのときだけ前後の空白を取り除きます。
「OKを押した」だけで、入力済みとは限らない
1 最初に、押したボタンを確認
Cancel(OK以外)
入力値を使わず終了
文字が入力されていても
受け付けない
OK
空である
空欄の注意 → 終了
「会社名が空欄です」
半角スペースだけの入力も、ここで止まる空ではない
受け取った会社名を表示
「テスト株式会社」
この先の処理で使うのは TrimmedTextキャンセルと空欄は、別の分かれ道どちらも最後の確認メッセージへ進みません。空欄の場合だけ、注意を表示します。
Aだけが最後の確認メッセージへ進みます。B・Cは空欄の注意を表示して終了、Dは入力文字を使わず終了します。
狭い画面では、表を横にスクロールして結果まで確認できます。
| ケース | 入力欄に入れるもの | 押すボタン | 結果の期待値 |
|---|---|---|---|
| A・通常入力 | テスト株式会社 | OK | 「受け取った会社名」にテスト株式会社を表示 |
| B・未入力 | 何も入力しない | OK | 「会社名が空欄です」を表示して終了 |
| C・空白のみ | 半角スペース3個 | OK | トリミング後は空。「会社名が空欄です」を表示して終了 |
| D・取り消し | テスト株式会社 | キャンセル(出力はCancel) | 入力文字を使わず終了。確認メッセージは表示しない |
A〜Dは、それぞれ別の実行で確認する期待値です。実際のPower Automateフローを実行して確認した結果ではありません。
設定と処理を説明する模式図です。実際の設定画面や実行結果のスクリーンショットではありません。
2実際の設定内容
入力する値・操作手順を確認する8ステップの設定と確認方法
- 1
準備:Power Automate for desktopで、ほかの処理を含まない練習用フローを作ります。「Power Fx を有効にする」はオフ。本人が画面を操作できるWindows環境で手動実行します。会社名は架空の「テスト株式会社」を使い、Excel・ファイル・メールへは書き込みません。
- 2
入力ダイアログを表示:タイトル「会社名」、メッセージ「会社名を入力してください」、既定の値は空欄、入力タイプは「単一行」にします。出力変数の名前は UserInput と ButtonPressed。アクションが値を作るため、先に空の変数を作る必要はありません。
- 3
最初のIf:第1オペランドを %ButtonPressed%、演算子を「等しくない」、第2オペランドを文字列 OK にします。内側に「フローを停止する」を置き、[フローの終了]を「正常に」にしてEndで閉じます。これでCancelなら停止し、OKのときだけ次へ進みます。ボタンの表示が日本語でも、比較する出力値は英語の OK / Cancel です。
- 4
テキストのトリミング(Trim text):最初のEndの後に置き、対象を %UserInput%、調整の対象を「先頭と末尾の空白文字」、出力を TrimmedText にします。開始位置や長さで切り出す別のアクションではなく、出力が TrimmedText のものを選びます。後続では %TrimmedText% を使います。
- 5
2つ目のIf:第1オペランドを %TrimmedText%、演算子を「空である」にします。空かどうかの判定なので第2オペランドは不要です。内側に「メッセージを表示」を置き、タイトル「入力の確認」、メッセージ「会社名が空欄です」、ボタンOK、自動で閉じる設定はオフ、出力変数の名前は NoticeButton にします。その直後に「フローを停止する」を置き、[フローの終了]を「正常に」にしてEndで閉じます。
- 6
最後のメッセージを表示:2つ目のEndの後に置きます。タイトル「受け取った会社名」、表示するメッセージ %TrimmedText%、ボタンOK、自動で閉じる設定はオフ、出力変数の名前は ResultButton にします。ここまで来るのは「OKを押した」「空欄ではない」の両方を満たした場合だけです。通知用のボタン出力を別名にすると、入力時の ButtonPressed を上書きせず確認できます。
- 7
失敗時:入力ダイアログやメッセージを表示できない場合は、既定のエラー時の停止を維持します。「次のアクションに移動する」などで続行させず、この練習をOn block errorで囲みません。表示できなかった場合は、本人が画面を操作できる実行環境かを確認してからやり直します。
- 8
確認:下のA〜Dを1回ずつ、フローの先頭から別々に実行します。B・Cは空欄の注意をOKで閉じると終了、Dはキャンセルを押すと終了し、最後の「受け取った会社名」は出ません。値を調べるときは入力ダイアログの直後にブレークポイントを置き、UserInputとButtonPressedを変数ペインで確認します。Dでは入力文字が見えても使用しません。空欄を自動で再入力させるループは、この例にはありません。
- 対象環境
- Power Automate for desktop(Windows)
- 更新日
- 2026年10月12日