Power AutomateでExcelテーブルの行をロックするフローを設定しても、意図したとおりにロックが適用されないことは珍しくありません。承認フローやデータ編集の制御でロックを利用している場合、この問題は業務に直接的な影響を及ぼします。エラーメッセージが表示されるケースもあれば、何も起きずにスキップされるケースもあります。本記事では、管理者設定と利用条件の両面から原因を切り分け、具体的な解決策を提示します。
【要点】この記事で確認すること
- 最初に見る場所: フローの実行履歴とエラーメッセージ、およびPower Automateのライセンス情報
- 切り分けの軸: 利用者側(アカウント、ライセンス、アクセス権限)と管理者側(SharePoint設定、Power Platform管理センターのポリシー)
- 注意点: 会社PCでPower Automateの設定を変更する場合は、管理者の許可が必要な項目があります。特に環境とデータ損失防止ポリシーの変更は慎重に行ってください。
ADVERTISEMENT
目次
1. 想定どおり進まない代表的な症状と原因
Power Automateの「テーブル内の行のロック」アクションが期待どおり動作しない場合、症状ごとに原因が異なります。まずはフローの実行履歴を開き、どのような結果になったかを確認してください。
症状1: ロックアクションがスキップされる
フローは正常に実行されたが、ロックが適用されないケースです。実行履歴でアクションに「スキップ済み」と表示されている場合、条件が満たされなかった可能性があります。たとえば、ロック対象の行がすでにロック済みだったり、テーブル名や行の指定が誤っていたりすると、アクションがスキップされます。また、フローの実行ユーザーにExcelファイルへの編集権限がないと、アクションはスキップされます。
症状2: 「アクセスが拒否されました」エラーが発生する
実行履歴に「アクセスが拒否されました」や「Forbidden」といったエラーが表示される場合、主に権限の問題です。Power Automateのサービスプリンシパル(実行アカウント)がExcelファイルへのアクセス権を持っていないか、SharePointのアクセス許可が不足している可能性があります。また、Power Platformのデータ損失防止ポリシー(DLP)によってExcel Onlineコネクタがブロックされていることも原因になります。
症状3: ロックは成功するが後続の処理に影響が出る
ロックそのものは成功するものの、後続のフローで予期しないエラーが発生するケースです。たとえば、ロック後に別のフローが同じ行を更新しようとして競合が起きたり、ロックが解除されないまま次のアクションに進んでデッドロックが発生したりします。この場合は、フローの設計(タイミングや並列実行)を見直す必要があります。
2. 利用者側で確認すべきアカウントとライセンスの条件
ロックアクションの実行には、適切なライセンスとアクセス権限が必須です。利用者自身で確認できる項目を順にチェックしてください。
Power Automateライセンスの種類と制限
Power Automateには無料の「Office 365プラン」と有償の「Power Automateプラン」があります。「テーブル内の行のロック」アクションは、有償プラン(Power Automate per user、per flowなど)が必要です。Office 365ライセンスのみのユーザーがフローを実行しようとすると、アクションが無効化されるかエラーが発生します。以下の手順でライセンスを確認してください。
- Power Automateポータル(https://make.powerautomate.com)にサインインします。
- 右上の歯車アイコンから「設定」を開き、「プラン」の項目を確認します。
- 「Power Automate per user」または「Power Automate per flow」と表示されていれば有償プランです。
- 「Office 365」のみと表示される場合、ロックアクションは使用できません。管理者に有償ライセンスの割り当てを依頼してください。
対象のExcelファイルへのアクセス権限
フローを実行するユーザーには、Excelファイルが保存されている場所(SharePoint、OneDrive for Businessなど)への適切な権限が必要です。具体的には、ファイルの「編集」権限が必須です。参照専用の権限ではロックアクションは失敗します。ファイルの権限は、ブラウザでファイルを開き、「共有」画面から確認できます。自分のアクセスレベルが「編集可能」であることを確認してください。
アカウントが適切な環境に属しているか
Power Automateの環境(Environment)は、フローの実行に影響を与えます。特に、既定の環境(Default Environment)以外の環境でフローを作成した場合、その環境内のコネクタやデータソースに制限がかかることがあります。環境の切り替えは、Power Automateポータルの右上にある環境選択ドロップダウンから行えます。自分がどの環境でフローを実行しているかを把握し、必要であれば管理者に確認を仰いでください。
3. 管理者が確認すべき環境設定とポリシー
利用者側で問題がない場合、多くのケースは管理者側の設定に原因があります。Power Platform管理センターとSharePoint管理センターで確認すべきポイントを説明します。
ExcelファイルがSharePointに保存されている場合、サイトのアクセス許可だけでなく、ファイル自体の独自の権限設定も確認する必要があります。フローの実行ユーザーが「サイトメンバー」グループに属していても、ファイルレベルで「表示のみ」に制限されているとロックは失敗します。SharePoint管理センターでサイトの「アクセス許可」を確認し、必要に応じて「編集」権限を付与してください。
Power Platform管理センターのデータ損失防止ポリシー
データ損失防止ポリシー(DLP)は、Power Automateで使用できるコネクタを制限する機能です。Excel Onlineコネクタが「ブロック」または「ビジネスデータのみ」に設定されている場合、ロックアクションを含むフローがエラーになります。管理者はPower Platform管理センター(https://admin.powerplatform.microsoft.com)にアクセスし、「データポリシー」から該当するポリシーを選択し、Excel Onlineコネクタが「許可」に設定されていることを確認してください。
- Power Platform管理センターで「データポリシー」を開きます。
- 影響を受けるフローが属する環境に対応するポリシーを選択します。
- 「コネクタ」タブで「Excel Online (Business)」を検索します。
- 「分類」が「ブロック」以外(「ビジネス」または「非ビジネス」)になっていることを確認します。
- 必要に応じて分類を「ビジネス」に変更し、保存します。
Excel Onlineコネクタのカスタムコネクタ設定
組織でカスタムコネクタを利用している場合、標準のExcel Onlineコネクタの代わりにカスタムコネクタが使用されている可能性があります。この場合、テーブルのロックアクションが正しく実装されていないと動作しません。フローで使用しているコネクタが標準のものかカスタムかを確認し、標準コネクタに切り替えることを検討してください。
4. フロー側の設定ミスによる失敗パターン
環境や権限に問題がない場合、フロー自体の設定ミスが原因であることが多いです。具体的な失敗パターンを挙げます。
テーブル名の指定ミス
ロックアクションでは、対象のExcelテーブルを指定する必要があります。テーブル名はExcelファイル内で定義された名前(例:テーブル1、Table1など)と正確に一致していなければなりません。大文字小文字は区別されない場合もありますが、スペルミスや余分なスペースがあると認識されません。Excelファイルを開き、テーブルデザインタブでテーブル名を確認してください。
ロック対象の行の指定方法
行の指定には「ID」列や「条件」を使用します。よくあるミスとして、ID列の値が重複していたり、条件式が正しくないケースがあります。また、テーブルに行番号を直接指定する方法は推奨されません。代わりに、一意の列(例:行ID)を基準にフィルターをかけて特定の行をロックするように設計してください。
フローのトリガーとアクションの順序
ロックアクションは、テーブルの行に対して排他制御を行うため、フロー内で適切なタイミングで配置する必要があります。たとえば、データを読み込む前にロックをかけなければ、他のフローが同時に編集して競合が発生します。フローの実行順序を見直し、ロックアクションをできるだけ早い段階に移動してください。
5. 状況別のトラブルシューティング比較表
以下の表に、よくある症状とその原因、確認すべき箇所、解決方法をまとめました。フローの実行履歴と照らし合わせて該当する状況を探してください。
| 症状 | 考えられる原因 | 確認する場所 | 対処方法 |
|---|---|---|---|
| アクションがスキップされる | 行が既にロック済み、またはテーブル名が間違っている | フローの実行履歴、Excelテーブル名 | テーブル名を確認し、ロック状態を解除して再実行 |
| 「アクセス拒否」エラー | ライセンス不足、権限不足、DLPブロック | ライセンス情報、SharePoint権限、DLPポリシー | 有償ライセンスの割り当て、編集権限の付与、DLPの設定変更 |
| ロックが成功しない(エラーなし) | 行の指定方法が不適切、条件が一致しない | フローの条件式、Excelの行データ | 一意のキー列を使用し、条件を再設定 |
| 後続のフローで競合が発生 | ロックのタイミングが遅い、並列実行の制御不足 | フローの設計全体 | ロックアクションを先頭に移動、同時実行制御を導入 |
6. よくある質問と回答
ここでは、読者からよく寄せられる質問とその回答をまとめました。
Q1: ロックアクションは一度に複数行をロックできますか?
「テーブル内の行のロック」アクションは1回の実行で1行のみをロックします。複数行を同時にロックしたい場合は、フロー内でループ処理を行い、各行に対してロックアクションを逐次実行する必要があります。ただし、ループ内でロックがかかりすぎるとパフォーマンスに影響が出るため、必要最小限の行に絞ってください。
Q2: ロック解除は別のフローで行う必要がありますか?
ロックの解除は、同じフロー内で後続の処理が完了した後に行うことも、別のフローで独立して行うことも可能です。一般的には、ロックをかけたフロー内で処理終了後に「テーブル内の行のロック解除」アクションを実行することをお勧めします。ロックをかけっぱなしにすると、他のユーザーやフローがその行を編集できなくなるため、適切なタイミングで解除してください。
Q3: オンプレミスのExcelファイルは対象外ですか?
「テーブル内の行のロック」アクションは、Excel Online (Business) コネクタを使用しているため、SharePoint OnlineまたはOneDrive for Businessに保存されたExcelファイルのみが対象です。オンプレミスのファイルサーバーにあるExcelファイルをロックしたい場合は、オンプレミスデータゲートウェイを経由してExcel Onlineコネクタを使う方法は現状サポートされていません。別の方法として、SharePointにファイルを移行するか、別のコネクタ(SQL Serverなど)で代替することを検討してください。
7. まとめ
Power AutomateでExcelテーブルのロックが想定どおり進まない場合、まずはフローの実行履歴を確認し、エラーメッセージやスキップの有無を把握してください。その上で、ライセンスや権限などの利用者側の条件と、DLPポリシーやSharePoint設定などの管理者側の設定を順にチェックすることで、原因を特定できます。フロー自体の設定ミスも多いため、テーブル名や行の指定方法も見直す必要があります。切り分けを効率的に行うために、本記事の比較表を参考にしていただければと思います。
超解決 Excel・Word研究班
企業のDX支援や業務効率化を専門とする技術者チーム。20年以上のExcel・Word運用改善実績に基づき、不具合の根本原因と最短の解決策を監修しています。ExcelとWordを使った「やりたいこと」「困っていること」「より便利な使い方」をクライアントの視点で丁寧に提供します。
Office・仕事術の人気記事ランキング
- 【神技】保存せずに閉じたExcel・Wordファイルを復元する!消えたデータを復活させる4つの救出法
- 【Outlook】添付ファイルが「Winmail.dat」に化ける!受信側が困らない送信設定
- 【Excel】文字が入っているセルの「個数」を数える!COUNTA関数の簡単な使い方
- 【Word】差し込み印刷で数字の桁を整える!金額にカンマ(桁区切り)を入れる設定
- 【Teams】メッセージを「保存済み」にして後で読む!重要なチャットをブックマークして整理する技
- 【Outlook】予定表の「祝日」が表示されない!最新カレンダーの追加と二重表示の修正手順
- 【Copilot】「サービスに接続できません」エラーの原因切り分けと対処法
- 【PDF】PDFに入力した文字の「フォント・サイズ・色」を変更するプロパティ設定
- 【Word】校閲機能の基本!赤字(変更履歴)とコメントで修正を見える化する
- 【PDF】結合するPDFの「用紙サイズ」がバラバラな時、すべてを「A4サイズ」に強制リサイズしてから結合する
