Microsoft Formsのファイルアップロード機能は、申請や報告の際に便利な一方、Power Automateで自動化しようとすると権限エラーが発生し、フローが停止してしまうケースが多くあります。このエラーは単純な権限不足だけでなく、Forms側の設定や条件分岐の欠如が原因になることも少なくありません。本記事では、権限エラーの根本的な原因を特定し、正しい入力値の設定と条件分岐の追加によって問題を解決する方法を、会社のポリシーを考慮しながら詳しく解説します。
【要点】この記事で確認すること
- 最初に見る場所: Formsの「設定」でファイルアップロードが許可されているか、Power Automateのトリガー設定で正しいフォームが選択されているかを確認します。
- 切り分けの軸: エラーが「Formsの応答の受信時」に発生するのか、「ファイル保存アクション」で発生するのかで原因を分けます。前者はForms設定、後者は保存先の権限やコネクタ認証が原因です。
- 注意点: 会社のポリシーでFormsの外部共有が制限されている場合や、OneDrive/SharePointの権限が委任されていないと、自分で変更できない設定があります。管理者に連絡する前に、自分で確認できる範囲を特定することが重要です。
ADVERTISEMENT
目次
権限エラーの原因を特定する
権限エラーが発生した場合、まずはエラーメッセージを確認し、どのアクションで停止しているかを特定します。Power Automateのフロー実行履歴を開き、失敗したアクションに表示されるエラー内容を読み取ってください。代表的なエラーとその原因は以下のとおりです。
- 「ファイルのアップロードが許可されていません」:Formsの設定でファイルアップロードが無効になっているか、許可するファイルの種類やサイズ制限を超えています。
- 「アクセスが拒否されました」:保存先(SharePointまたはOneDrive)に対する書き込み権限が不足しています。コネクタの認証アカウントに適切な権限が付与されていない可能性が高いです。
- 「ファイルが見つかりません」:Formsの応答にファイルが添付されていないのに、ファイルの内容を取得しようとしています。この場合、条件分岐で添付ファイルの有無をチェックしていないことが原因です。
これらのエラーは、それぞれ対処方法が異なります。次のセクションで、入力値の設定と条件分岐の直し方を具体的に説明します。
ファイルアップロード時の入力値の正しい設定方法
Power AutomateでFormsのファイルアップロードを扱う際、トリガーから取得できる「ファイルの内容」や「ファイル名」といった動的な値が正しく設定されていないと権限エラーが発生することがあります。Formsの質問で「ファイルのアップロード」を追加した場合、その質問のIDをPower Automateが自動的に認識しますが、手動で指定する必要があるケースもあるため注意が必要です。
Forms側の設定確認
まず、Formsの編集画面で「ファイルのアップロード」質問を追加し、その質問のプロパティを確認します。設定項目には「ファイルの最大サイズ」「許可するファイルの種類」があり、これらが厳しく制限されているとアップロード自体が失敗します。特に会社のテナント全体のポリシーで、Formsのファイルアップロードが無効にされている場合、Power Automateではどうにもできません。その場合は管理者に問い合わせる必要があります。
Power Automateでの正しい入力値の指定
フローエディターで、「新しい応答が送信されたとき」トリガーの後に「応答の詳細を取得」アクションを追加します。このアクションでは、フォームIDを指定し、応答の詳細を取得します。その後、ファイルの内容を保存するために、通常は「ファイルの内容」という動的な値を使用しますが、この値が空の場合に権限エラーになることがあります。正しい設定手順は以下のとおりです。
- トリガー「新しい応答が送信されたとき」で、対象のフォームを選択します。
- アクション「応答の詳細を取得」を追加し、フォームIDと応答IDを指定します。応答IDはトリガーの出力から選択します。
- ファイル保存アクション(「ファイルを作成」や「ファイルの内容をアップロード」など)を追加します。保存先はOneDriveまたはSharePointを選択します。
- 「ファイルの内容」フィールドには、動的な値の中から「ファイルの内容」を選択します。ただし、Formsの質問名が日本語の場合、動的な値の名前が「ファイルの応答内容」などと表示されることがあるため、実際の質問名を確認して選択してください。
- 「ファイル名」フィールドには、動的な値の「ファイル名」を指定します。これがないと拡張子なしのファイル名になるか、エラーが発生します。
このとき、ファイルの内容が空(添付なし)の場合に権限エラーになるのを防ぐために、次の条件分岐が必要です。
条件分岐でエラーを回避する直し方
権限エラーの多くは、添付ファイルが存在しない状態でファイル保存アクションが実行されることで発生します。Power Automateは空のファイル内容を保存しようとして「ファイルが見つからない」や「アクセス拒否」のエラーを返すことがあります。これを防ぐには、条件分岐を使ってファイルが添付されている場合のみ保存処理を行うようにします。
基本的な条件分岐の設定
フロー内で、「応答の詳細を取得」アクションの後に「条件」アクションを追加します。条件式には以下のように設定します。
- 左辺: 動的な値「ファイルの内容」(Formsのファイルアップロード質問に対応するフィールド)
- 演算子: 「次の値と等しくない」
- 右辺: 空白(空の文字列)
これにより、ファイルが添付された応答の場合のみ「はい」の分岐に進み、ファイル保存アクションが実行されます。「いいえ」の分岐では何もしないか、メール通知など別の処理を行います。
複数ファイルアップロードへの対応
Formsで複数ファイルのアップロードを許可している場合、動的な値は配列になります。この場合、条件分岐の前に「それぞれに適用」アクションを使ってループ処理を行い、各ファイルに対して条件チェックと保存を行います。配列が空の場合でもエラーにならないように、ループの前に「長さ」関数を使って配列のサイズを確認する条件を追加すると安全です。
実際の修正手順
それでは、権限エラーを解消するための実践的な手順を5つにまとめます。フローを編集する前に、必ずフローのコピーを作成してから作業してください。
- Formsの設定を確認する:対象フォームの編集画面を開き、「設定」→「ファイルのアップロードを許可する」がオンになっているか、ファイルの最大サイズや許容される拡張子が適切かを確認します。必要に応じて緩和します。
- Power Automateのトリガー設定を確認する:フローエディターでトリガーのフォームが正しく選択されているか確認します。間違っている場合は、正しいフォームに変更します。
- 動的な値のマッピングを見直す:「応答の詳細を取得」アクションの後、ファイル保存アクションに設定している動的な値が、Formsの質問IDと一致しているか確認します。特に「ファイルの内容」が空の状態で保存しようとしていないかチェックします。
- 条件分岐を追加する:ファイル保存アクションの直前に「条件」アクションを挿入し、上記の条件式を設定します。これにより、添付ファイルがない場合のエラーを防止します。
- 保存先の権限を確認する:OneDriveまたはSharePointの保存先フォルダーに対して、フローを実行するサービスアカウント(通常はフロー所有者のアカウント)に書き込み権限があることを確認します。必要に応じてフォルダーの共有設定を変更するか、管理者に権限付与を依頼します。
- テスト実行して検証する:フォームにテスト応答を送信し、フローの実行結果を確認します。エラーが解消されたら、実際の運用に反映します。
失敗しやすいパターンとその対策
実際の現場で見られる失敗パターンをいくつか挙げ、具体的な対策を示します。
| 失敗パターン | 原因 | 対策 |
|---|---|---|
| ファイルサイズ超過エラー | Formsの最大サイズ(デフォルト10MB)を超えている | Forms設定でサイズ上限を引き上げるか、ファイル分割を促す |
| 許可されていない拡張子エラー | Formsで許可する拡張子が設定されているが、アップロードされたファイルが該当しない | Formsの拡張子許可リストに追加するか、制限を緩和する |
| 保存先の権限不足エラー | OneDrive/SharePointのフォルダーに書き込み権限がない | フロー所有者にフォルダーへの編集権限を付与する |
| 空のファイル内容エラー | 添付ファイルがないのにファイル保存アクションが実行される | 条件分岐でファイルの有無をチェックする |
| 認証期限切れエラー | フローで使用しているコネクタの認証が古くなっている | フローを再認証する(トリガーやアクションの「接続」を更新) |
管理者に確認すべき設定
会社のテナント全体のポリシーによっては、ユーザー権限で変更できない設定もあります。以下の項目は管理者に確認または依頼してください。
- Formsの外部共有設定:組織外のユーザーがファイルをアップロードできるようにするには、管理者がFormsの外部共有を許可する必要があります。
- OneDrive/SharePointのゲストアクセス:外部ユーザーからのアップロードを受け付ける場合、ゲストアクセスが有効である必要があります。
- Power Automateのデータ損失防止(DLP)ポリシー:組織のDLPポリシーでFormsや保存先のコネクタが制限されている場合、それを解除してもらう必要があります。
- サービスアカウントの権限:フローを実行するアカウント(ユーザーアカウントまたはサービスプリンシパル)に、Formsの応答を読み取る権限とOneDrive/SharePointに書き込む権限が付与されているか確認します。
よくある質問
Formsでファイルアップロードが許可されているのにエラーになるのはなぜ?
Forms側の設定は正しくても、Power Automateのコネクタが対象のフォームを認識していない可能性があります。一度フローを無効にして再度有効にするか、コネクタを再接続してください。また、ファイルサイズが大きすぎる場合もエラーになります。
条件分岐でファイルの有無をチェックする具体的な式は?
動的コンテンツで「ファイルの内容」を選択し、演算子は「次の値と等しくない」、値は「空」を選びます。式エディターで直接記述する場合は @not(equals(triggerOutputs()?['body/ファイルの回答ID'], null)) のようにしますが、実際の回答IDはFormsの質問に依存するため、動的コンテンツピッカーから選択するほうが安全です。
複数ファイルを一度にアップロードしたい場合の設定は?
Formsで複数ファイルを許可する設定にした上で、Power Automateでは「応答の詳細を取得」の後に「それぞれに適用」アクションを使用し、その中でファイル保存アクションを入れます。このとき、配列が空の場合の条件分岐を忘れずに追加してください。
まとめ
Power AutomateでFormsのファイルアップロードに伴う権限エラーは、Forms設定、コネクタ認証、保存先権限、そして条件分岐の有無という4つの要素を順番に確認することで解決できます。特に、添付ファイルがない状態で保存アクションを実行させない条件分岐は必須の対策です。会社のポリシーが絡む場合は管理者と連携し、適切な権限設定を整えてください。本記事で紹介した手順を参考に、フローの安定運用を実現してください。
ADVERTISEMENT
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
Office・仕事術の人気記事ランキング
- 【Outlook】添付ファイルが「Winmail.dat」に化ける!受信側が困らない送信設定
- 【神技】保存せずに閉じたExcel・Wordファイルを復元する!消えたデータを復活させる4つの救出法
- 【Teams】メッセージを「保存済み」にして後で読む!重要なチャットをブックマークして整理する技
- 【Word】差し込み印刷で数字の桁を整える!金額にカンマ(桁区切り)を入れる設定
- 【Word】校閲機能の基本!赤字(変更履歴)とコメントで修正を見える化する
- 【PDF】PDFに入力した文字の「フォント・サイズ・色」を変更するプロパティ設定
- 【PDF】結合するPDFの「用紙サイズ」がバラバラな時、すべてを「A4サイズ」に強制リサイズしてから結合する
- 【Excel】矢印キーで「セルが動かず画面がスクロールする」!ScrollLockの解除方法(ノートPC対応)
- 【Teams】会議の「参加者リスト」を出席後にダウンロードする!誰が参加したか確認する手順
- 【Teams】画面共有時に「音声」も共有する方法!音が流れない時の設定手順
