ADVERTISEMENT

【Power Automate】Forms回答トリガーで困った時の入力値と条件分岐の直し方

【Power Automate】Forms回答トリガーで困った時の入力値と条件分岐の直し方
🛡️ 超解決

Microsoft Formsの回答をトリガーにPower Automateでフローを作成する場面は多いものの、入力値が正しく取得できなかったり、条件分岐が意図通り動かなかったりするトラブルが頻繁に発生します。特に「動的コンテンツが表示されない」「条件式で正しく判定されない」といった問題は、初心者から経験者まで誰でも直面しやすいポイントです。本記事では、Forms回答トリガーにおける入力値の取得方法と条件分岐の修正手順を、具体的な失敗例とともに解説します。原因を正しく切り分けて、すぐに実務で使える対処法を身につけてください。

【要点】この記事で確認すること

  • 最初に見る場所: フローのトリガー設定と動的コンテンツ一覧。Formsの回答が正しく関連付けられているかを確認します。
  • 切り分けの軸: トリガー設定の問題(フォームIDの誤り・権限不足)、動的コンテンツの取得タイミング、条件式の構文ミスの3つに分類します。
  • 注意点: 会社のテナントポリシーによってはFormsとPower Automateの連携が制限されている場合があります。管理者に確認せずに設定を変更しないでください。

ADVERTISEMENT

1. Forms回答トリガーの基本とよくあるトラブル

Power Automateで「Microsoft Forms」コネクタの「新しい応答が送信されたとき」トリガーを使用する場合、トリガーが正しく動作しない原因は大きく分けて3つあります。第一に、対象のフォームが正しく選択されていないこと。第二に、トリガー実行時の権限不足。第三に、動的コンテンツが期待通りに表示されないことです。ここではそれぞれの背景と確認手順を説明します。

トリガーの設定で気をつけるポイント

トリガー設定時に、フォームの選択肢が表示されない場合は、Formsコネクタの接続アカウントにフォームの編集権限があるか確認してください。また、フォームを複数のグループで共有している場合、フローが参照するフォームIDが異なる可能性があります。フローエディターでトリガーの「フォームID」に正しい値が入っているか、手動で貼り付けるのも有効です。なお、トリガーは1分ごとにポーリングして新しい応答を確認しますが、即時実行が必要な場合は「新しい応答が送信されたとき」の代わりに「応答が送信されたとき(V2)」を使用すると応答性が向上することがあります。

2. 入力値の取得方法 – 動的コンテンツの正しい使い方

Forms回答の各質問に対する回答は、動的コンテンツとして後続のアクションで利用できます。しかし、動的コンテンツが表示されない、または空の値が渡されるケースが頻発します。原因として多いのは、トリガー直前のアクションでForms応答の詳細を取得していないことです。正しい手順は次の通りです。

  1. フローエディターでトリガーの下に「応答の詳細を取得する」アクション(Formsコネクタ内)を追加します。
  2. 「応答の詳細を取得する」の「応答ID」に、トリガーから動的コンテンツ「応答ID」を指定します。
  3. アクション実行後、そのアクションの出力から各質問の回答を動的コンテンツとして利用できるようになります。
  4. 質問のタイトルはForms上の表示名と完全一致する必要があります。空白や改行が含まれていないか確認してください。
  5. 選択式の回答の場合、選択された値(ラベル)がそのまま文字列として取得されます。複数選択の場合はセミコロン区切りで連結されます。

動的コンテンツが表示されない場合の対処

動的コンテンツ一覧に応答の詳細が表示されない場合、まず「応答の詳細を取得する」アクションの設定が正しいか確認します。それでも表示されないときは、ブラウザのキャッシュをクリアするか、フローを保存して再読み込みしてください。また、Forms側で質問を追加・削除した後にフローを編集すると、動的コンテンツが古いまま残ることがあります。その場合は「応答の詳細を取得する」アクションを一度削除して再追加することで最新の質問一覧に更新されます。

3. 条件分岐の実装手順と失敗パターン

Formsの回答内容に応じて処理を分岐させたい場合、条件アクション(Condition)を使用します。ここでよくある失敗は、条件式に動的コンテンツをそのまま文字列比較してしまうことです。数値や日付の比較には適切な変換処理が必要です。以下に手順と失敗例を示します。

条件式に適切な関数を使う

例えば「年齢」という質問の回答が数値の場合、条件式で「動的コンテンツ 年齢 is greater than 20」と指定するだけでは正しく比較できないことがあります。Power Automateでは動的コンテンツがデフォルトで文字列として扱われるため、int()関数で数値に変換する必要があります。正しい式は「int(動的コンテンツ 年齢) greater than 20」です。同様に日付の場合は「formatDateTime(動的コンテンツ 日付, ‘yyyy-MM-dd’)」などで整形してから比較します。

複数条件の組み立て方

「回答Aが〇〇かつ回答Bが△△」のように複数条件を組み合わせる場合は、条件アクションの「高度なモード」を使用します。例えば「and(greater(int(動的コンテンツ 年齢), 20), equals(動的コンテンツ 部署, ‘営業部’))」と記述します。よくある失敗として、単一条件でしか判定できないと誤解し、条件アクションを複数入れ子にしてしまうケースがありますが、高度なモードを使えば1つの条件アクションで複数条件を記述できます。また、選択式の回答で「含まれる」判定を行いたい場合は「contains」関数が便利です。

4. 状況別のトラブルシューティング比較表

症状 原因 対処方法
トリガーが実行されない フォームIDの誤り、権限不足 正しいフォームIDを指定し、コネクタのアカウント権限を確認
動的コンテンツが空で表示される 「応答の詳細を取得する」アクションが未追加 アクションを追加し、応答IDを接続
条件分岐が期待通り動かない データ型の不一致(文字列と数値) int(), float() などで型変換
複数選択肢の値が取得できない 区切り文字の認識ミス split()関数で分解して個別に処理
動的コンテンツの表示が古い キャッシュまたはフォーム変更未反映 アクションを再追加、ブラウザキャッシュクリア

5. 管理者に確認すべき設定

会社の環境でFormsとPower Automateを連携する場合、テナント全体のポリシーやコネクタの使用制限が影響することがあります。以下の項目を管理者に確認してください。

  • Power Automateで「Microsoft Forms」コネクタが許可されているか(DLPポリシー)。
  • Formsの外部共有設定がフローのトリガーに影響していないか。
  • 条件アクションで使用する関数(int, contains等)が制限されていないか。
  • フローの所有者がFormsの所有者と同じである必要がある場合があります。
  • 試用版ライセンスでは実行制限に引っかかる可能性があるため、有償ライセンスの必要性を確認します。

6. よくある質問(FAQ)

Q1. 動的コンテンツに質問タイトルが表示されないのですが、なぜですか?
A. 「応答の詳細を取得する」アクションを追加していない可能性が高いです。トリガーの直後にこのアクションを追加し、応答IDを渡してください。それでも表示されない場合は、Forms側の質問を保存し直してからフローを更新してみてください。

Q2. 条件分岐で「値が含まれる」を判定したい場合、どうすればいいですか?
A. 条件式で「contains(動的コンテンツ, ‘検索文字列’)」を使用します。大文字小文字を区別する場合は注意が必要です。また、複数選択の回答に対しては、まずsplit()で配列に変換してからcontains()を適用する方法が確実です。

Q3. フローが突然動かなくなりました。トリガー履歴を見てもエラーがありません。
A. トリガーが実行されていない場合は、Forms側の設定で「すべての応答を記録」が有効になっているか確認してください。また、フローが一時的に無効化されていないか、Power Automateの管理センターで確認します。

Q4. 数値の比較でエラーになります。int()関数を使ってもダメです。
A. 入力値に数字以外の文字(例:単位「歳」など)が含まれている可能性があります。事前にreplace()関数で不要な文字を除去してからint()してください。また、空欄の回答があると空文字列を変換しようとしてエラーになりますので、条件の前に空チェックを入れることも検討します。

7. まとめ

Forms回答トリガーのトラブルは、トリガー設定の確認、動的コンテンツの取得手順、条件式のデータ型変換という3つのポイントを押さえることで大半が解決します。特に「応答の詳細を取得する」アクションを忘れずに追加し、数値比較にはint()関数を使うことが重要です。管理者にはコネクタの利用制限やテナントポリシーを事前に確認してもらいましょう。これらの基本を守れば、FormsとPower Automateの連携はスムーズになり、業務の自動化を安定して運用できます。


ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。

ADVERTISEMENT