SharePoint と OneDrive のファイル操作は、Power Automate(パワーオートメイト)でいちばん効果が見えやすい自動化です。フォルダを作る、メールの添付を決まった場所に保存する、見積書を PDF にする、といった毎日の手作業がなくなります。この記事では、社員15名ほどの「サンプル工務店」の工事案件サイトを例に、ファイルを扱うアクションの一覧、案件フォルダの自動作成、PDF 変換、ファイル名の付け方、共有リンクまでを書きます。Microsoft 365 Business Standard に含まれる標準コネクタだけで作れる範囲を中心にし、Premium が要るところはその都度書きます。
この記事の内容
先に決めること
SharePointとOneDriveのどちらに置くか
会社のファイルは SharePoint のドキュメント ライブラリに置きます。OneDrive は個人の作業場所で、持ち主が退職するとファイルの扱いに困ります。Power Automate の OneDrive for Business コネクタは、接続したアカウント自身の OneDrive しか扱えません(公式の既知の制限)。ほかの人の OneDrive や SharePoint のファイルを OneDrive コネクタで直接触ることはできないので、置き場所は最初から SharePoint にそろえます。
OneDrive を使うのは、後で書く PDF 変換の作業場所としてだけです。
フォルダの形を決める
サンプル工務店の工事案件サイトには、「図面」「見積」「写真」の3つのドキュメント ライブラリがあります。案件ごとに、3つのライブラリそれぞれに同じ名前のフォルダを作ります。
| ライブラリ | 案件フォルダの下 |
|---|---|
| 図面 | K-2026-031_山田様邸 の下に 01_計画 02_確認申請 03_施工図 |
| 見積 | K-2026-031_山田様邸 の下に 見積書 発注書 |
| 写真 | K-2026-031_山田様邸 の下に 着工前 施工中 完成 |
フォルダ名は「案件番号_施主名」にします。案件番号を頭に付けると、並べたときに番号順になり、名前が同じ施主がいても重なりません。
ファイル名の決まり
ファイル名は「案件番号_書類の種類_日付」の形にそろえます。例は K-2026-031_見積_20261031.pdf です。日付は yyyyMMdd の8けたにすると、名前の順がそのまま日付の順になります。
OneDrive・SharePoint のファイル名とフォルダ名には、" * : < > ? / \ | の文字は使えません。先頭と末尾の空白、~$ で始まる名前、CON PRN AUX NUL .lock _vti_ desktop.ini といった名前も使えません。施主名や件名をそのままファイル名に使うときは、ここで止まりやすいので後の式で置き換えます。
ファイルを扱うアクションの一覧
主なアクションです。名前は公式ドキュメントの表記で、画面の表示とは少し違うことがあります。
| やりたいこと | SharePoint | OneDrive for Business |
|---|---|---|
| ファイルを作る | 「ファイルを作成する」 | 「ファイルを作成する」 |
| 中身を読む | 「ファイル コンテンツの取得」 | 「ファイル コンテンツの取得」 |
| コピーする | 「ファイルのコピー」 | 「ファイルのコピー」 |
| 移動する | 「ファイルの移動」 | 「ファイルの移動または名前変更」 |
| 名前を変える | 新しい名前の欄はない。「ファイルを作成する」で別名のファイルを作り、元を削除する | 「ファイルの移動または名前変更」 |
| フォルダを作る | 「新しいフォルダーを作成する」 | フォルダを作るアクションはなし |
| フォルダごとコピー・移動 | 「フォルダーのコピー」「フォルダーの移動」 | なし |
| ライブラリの列を書く | 「ファイルのプロパティを更新する」 | なし |
| PDF などに変換する | なし | 「ファイルの変換」「パスを使用してファイルを変換する」 |
| 共有リンクを作る | 「ファイルまたはフォルダーの共有リンクを作成する」 | 「共有リンクを作成する」 |
| 特定の人に共有する | 「アイテムまたはフォルダーへのアクセスを許可する」 | なし |
トリガーは、SharePoint の「ファイルの作成時 (プロパティのみ)」「ファイルが作成または変更されたとき (プロパティのみ)」、OneDrive の「ファイルの作成時」「ファイルが変更されたとき」がよく使われます。OneDrive のトリガーは、50 MB を超えるファイルを飛ばします(公式の既知の制限)。
SharePoint・OneDrive のコネクタは、どちらも標準コネクタです。Microsoft 365 に含まれる Power Automate の範囲で使えます。
案件が登録されたら案件フォルダ一式を作る
工事案件リストに案件が登録されたら、3つのライブラリに案件フォルダとその下のフォルダを作り、リストの「案件フォルダ」列にリンクを書き戻します。工事案件リストの作り方と列の設計は、SharePointリストとは:作り方と、Excelの台帳をリストに移す判断、で書いています。
フローの全体
| 順 | アクション | 中身 |
|---|---|---|
| 1 | 「アイテムが作成されたとき」 | 工事案件サイトの工事案件リスト |
| 2 | 「作成」(データ操作) | フォルダ名 案件番号_施主名様邸 を作る |
| 3 | 「新しいフォルダーを作成する」×3 | 図面・見積・写真に案件フォルダと下のフォルダ |
| 4 | 「項目を更新する」 | 案件フォルダ列に図面フォルダのURLを入れる |
| 5 | 「チャットまたはチャネルでメッセージを投稿する」 | 工事チームにフォルダができたことを知らせる |
手順
- 「マイ フロー」→「新しいフロー」→「自動化したクラウド フロー」を選び、トリガーに SharePoint の「アイテムが作成されたとき」を選ぶ
- 「サイト アドレス」に工事案件サイト、「リスト名」に工事案件を選ぶ
- 「データ操作」の「作成」を足し、名前を「フォルダ名」にして、入力に次の式を入れる
concat(triggerBody()?['ProjectNo'], '_', replace(replace(replace(triggerBody()?['Client'], '/', '_'), '\', '_'), ':', '_'), '様邸')
- SharePoint の「新しいフォルダーを作成する」を足し、「サイト アドレス」に工事案件サイト、「リストまたはライブラリ」に「図面」を選ぶ
- 「フォルダー パス」に、「フォルダ名」の出力と下のフォルダをつないで
(フォルダ名)/01_計画と入れる - 同じアクションを
(フォルダ名)/02_確認申請(フォルダ名)/03_施工図の分だけ足す - ライブラリを「見積」「写真」に変えて、同じように下のフォルダの分を足す
- SharePoint の「項目を更新する」を足し、「ID」にトリガーの ID、「案件フォルダ」に最初の「新しいフォルダーを作成する」の出力の「フォルダーへのリンク」を入れる(深いフォルダのリンクになるので、案件フォルダまでの URL を式で組んでもよい)
- Teams の「チャットまたはチャネルでメッセージを投稿する」で、「工事」チームに案件名とフォルダのリンクを投稿する
- 保存して、工事案件リストに試しに1件登録する

「フォルダー パス」に folder1/folder2/folder3 の形で書くと、途中のフォルダもまとめて作られます。案件フォルダを先に1回作ってから下のフォルダを作る必要はありません。

書き戻しで二度動かさない
手順8でリストを更新すると、同じリストの「アイテムが作成または変更されたとき」を使った別のフローがあれば、その更新で動きます。このフローのトリガーは「アイテムが作成されたとき」なので、自分の更新でもう一度動くことはありません。トリガーを「作成または変更」にしたいときは、「案件フォルダ」が空のときだけ動くトリガー条件を入れます。
@empty(triggerBody()?['Folder'])
フォルダを毎回作らずにコピーする手もある
決まったフォルダ一式を「テンプレート」フォルダとして作っておき、「フォルダーのコピー」で案件ごとに複製する方法もあります。下のフォルダの数が多いとき、フォルダの中に決まった書式(現場日報のひな形など)も入れておきたいときは、こちらの方が楽です。コピー先に同じ名前があると止まるので、案件番号で名前が重ならないようにしておきます。

メールの添付を決まったフォルダに保存する
取引先から届いた見積や発注の添付を、案件フォルダに保存する形です。メールのトリガーと添付の取り出し方は、Power AutomateでOutlookのメールを自動化:添付の保存・振り分け・定型メールの送信、で書いています。ここでは保存の部分だけ書きます。
- Outlook の「共有メールボックスに新しいメールが届いたとき (V2)」で info@sample-koumuten.example を指定し、「添付ファイルを含める」をはいにする
- 件名から案件番号(
K-2026-031の形)を取り出す - 「Apply to each」で添付ファイルを1つずつ回す
- SharePoint の「ファイルを作成する」で、「サイト アドレス」に工事案件サイト、「フォルダー パス」に
/見積/K-2026-031_山田様邸/発注書、「ファイル名」にK-2026-031_発注_20261031_(元のファイル名)、「ファイル コンテンツ」に添付ファイルの「コンテンツ」を入れる
案件フォルダの名前には施主名が入っているので、件名の案件番号だけでは場所が決まりません。工事案件リストを「アイテムを取得」で案件番号から引き、「案件フォルダ」列の値を使うのが確実です。
署名の画像(image001.png など)まで保存されるのを避けるには、「Apply to each」の中に条件を置き、添付の「インラインですか」がいいえのものだけ保存します。
WordやExcelをPDFにする
方法は2つあります。
| 方法 | コネクタ | 区分 | 向いている場面 |
|---|---|---|---|
| OneDrive の「ファイルの変換」 | OneDrive for Business | 標準 | 作った見積書の Excel や Word をそのまま PDF にする |
| Word の「Microsoft Word テンプレートを設定する」→「Word 文書を PDF に変換する」 | Word Online (Business) | Premium | 決まったひな形に案件名や金額を差し込んで書類を作る |
Word Online (Business) コネクタは、Power Automate では Premium の区分です。PDF への変換だけでも、このコネクタを使うと Premium のライセンスが要ります。Microsoft 365 の範囲で済ませるなら、OneDrive の「ファイルの変換」を使います。
OneDriveの「ファイルの変換」で見積書をPDFにする
OneDrive コネクタは接続したアカウント自身の OneDrive しか扱えないので、SharePoint のファイルは一度 OneDrive に置いてから変換し、できた PDF を SharePoint に戻します。
| 順 | アクション | 中身 |
|---|---|---|
| 1 | 「ファイルの作成時 (プロパティのみ)」 | 見積ライブラリ。拡張子が xlsx のときだけ動かす |
| 2 | SharePoint の「ファイル コンテンツの取得」 | トリガーのファイルの中身 |
| 3 | OneDrive の「ファイルを作成する」 | /PDF変換用 フォルダに一時ファイルを作る |
| 4 | 「遅延」 | 数十秒待つ |
| 5 | OneDrive の「ファイルの変換」 | 対象の種類を PDF |
| 6 | SharePoint の「ファイルを作成する」 | 元のファイルと同じフォルダに PDF を作る |
| 7 | OneDrive の「ファイルを削除する」 | 一時ファイルを消す |
トリガーの設定の「トリガー条件」に次を入れ、Excel のときだけ動かします。手順6で PDF を同じライブラリに作るので、条件がないと PDF の作成でまたトリガーが動きます。
@endsWith(triggerBody()?['{FilenameWithExtension}'], '.xlsx')
手順6のファイル名は、元の名前の拡張子を付け替えて作ります。
replace(triggerBody()?['{FilenameWithExtension}'], '.xlsx', '.pdf')

OneDrive に作った直後に変換すると「Bad gateway」で失敗することがあり、公式でも作成と変換の間に遅延を入れる回避策が書かれています。手順4の「遅延」はそのためです。
変換できる元の形式は、Word(doc・docx)、Excel(xls・xlsx・xlsm)、PowerPoint(ppt・pptx)、rtf、html、メール(msg・eml)などです。署名やパスワードの付いた Word、IRM で保護された文書は PDF にできません。

Wordテンプレートへの差し込み(Premium)
工事請負契約書や完成引渡書のように、決まったひな形に案件名・施主名・金額を入れて作る書類は、Word Online (Business) の「Microsoft Word テンプレートを設定する」を使います。
- Windows の Word デスクトップ版で「開発」タブを表示し、差し込みたい場所にプレーン テキストのコンテンツ コントロールを置く
- コントロールのプロパティでタイトルを「施主名」「工事名」「契約金額」のように付ける(同じタイトルは使わない)
- ひな形を SharePoint のライブラリに保存する
- フローで「Microsoft Word テンプレートを設定する」を足してひな形を選ぶと、コントロールのタイトルが入力欄として並ぶ
- 工事案件リストの値を入れ、できた文書を「ファイルを作成する」で保存し、必要なら「Word 文書を PDF に変換する」で PDF にする
公式の既知の制限では、使えるコントロールはプレーン テキスト・コンボ ボックス・ドロップダウン リスト・画像・繰り返しセクションで、日付選択やチェック ボックスは使えません。入力ファイルは10 MB までで、ひな形を Word for Mac や Word のブラウザ版で作ることはできません。多要素認証の条件付きアクセス ポリシーが有効な環境では、テンプレートを設定するアクションが使えないとも書かれています。Premium を入れる前に、自社の環境で1件試してから決めます。
ファイル名に日付と案件番号を入れる
ファイル名は式で組みます。式の書き方の基本は、Power Automateの式と変数:日付・文字列・配列をよく使う関数で扱う、で書いています。
| 作りたい名前 | 式 |
|---|---|
| 今日の日付(日本時間) | formatDateTime(convertFromUtc(utcNow(), 'Tokyo Standard Time'), 'yyyyMMdd') |
| 日付と時刻 | formatDateTime(convertFromUtc(utcNow(), 'Tokyo Standard Time'), 'yyyyMMdd_HHmm') |
| 案件番号_見積_日付.pdf | concat(triggerBody()?['ProjectNo'], '_見積_', formatDateTime(convertFromUtc(utcNow(), 'Tokyo Standard Time'), 'yyyyMMdd'), '.pdf') |
| 使えない文字を置き換える | replace(replace((元の文字), '/', '_'), ':', '_') を必要な文字の分だけ重ねる |
utcNow() は世界標準時なので、日本時間に直さないと午前9時前の日付が前の日になります。
同じ名前のファイルがあるとき
同じ名前の扱いは、アクションによって違います。
| アクション | 同じ名前があるとき |
|---|---|
| SharePoint の「ファイルのコピー」「ファイルの移動」 | 「別のファイルが既に存在する場合」で、失敗させる・置き換える・別名にするを選ぶ |
| SharePoint の「ファイルを作成する」 | 同じ名前で上書きされる動きになることがある。名前を一意にして避ける |
| OneDrive の「ファイルを作成する」 | 使えない文字はアンダースコアに置き換えられる |
いちばん安全なのは、名前が重ならないようにすることです。同じ日に何度も作る書類は、日付に時刻まで入れます(K-2026-031_見積_20261031_1530.pdf)。上書きされても、ライブラリのバージョン履歴から前の版に戻せます。
共有リンクを作る
協力業者に図面フォルダを見せるときは、SharePoint の「ファイルまたはフォルダーの共有リンクを作成する」でリンクを作ります。
| 設定 | 選べるもの | 決め方 |
|---|---|---|
| リンクの種類 | 見るだけ・編集できる、の種類 | 業者に見せるだけなら見るだけの種類 |
| リンク スコープ | 組織内・すべてのユーザー(匿名)など | 社内だけなら組織内 |
| リンクの有効期限 | 日付(yyyy-MM-dd の形) | 匿名のリンクにだけ付けられる |
「すべてのユーザー」のリンクは、管理者が匿名のリンクを許可しているときだけ作れます。許可されていない組織では、このアクションは失敗します。

社外への共有では、次を守ります。
- 匿名のリンクは、知っている人なら誰でも開ける。メールの転送先にも届くので、図面や契約書には使わない
- 社外の人に渡すときは、「アイテムまたはフォルダーへのアクセスを許可する」で相手のメールアドレスを指定する方が、誰が見られるかがはっきりする
- 工事が終わったら「アイテムまたはファイルの共有を停止する」で共有を止める。引渡の日に動くフローにしておくと止め忘れがない
- 社外共有そのものを許すかは、SharePoint 管理センターの設定で決まる。フローの前に管理者と決めておく
できないことと、その代わり
| できないこと | 代わり |
|---|---|
| OneDrive コネクタでほかの人の OneDrive を触る | 置き場所を SharePoint にする |
| Word のテンプレート差し込みを標準コネクタでする | Excel で書類を作って「ファイルの変換」で PDF にする。差し込みが要るなら Premium |
| PC の同期フォルダのファイルをクラウドフローで直接扱う | SharePoint 上のファイルを扱う。PC 側の作業はデスクトップフローで |
| フォルダごとの細かい権限をフローだけで設計する | 権限はライブラリやサイトで分け、フローは共有リンクと共有の停止だけにする |
| 圧縮ファイルの日本語の名前をそのまま展開する | OneDrive の「フォルダーへのアーカイブの抽出」は日本語などのマルチバイトの名前に対応しない。送り手に圧縮せずに送ってもらう |
よく詰まるところ
| 症状 | 原因 | 直し方 |
|---|---|---|
| OneDrive のトリガーがファイルに反応しない | 50 MB を超えるファイルはトリガーが飛ばす | SharePoint のトリガーを使う |
| PDF 変換が「Bad gateway」で失敗する | 作成直後のファイルを変換している | 作成と変換の間に「遅延」を入れる |
| 大きいファイルの変換が失敗する | 変換の仕組み(Microsoft Graph)の説明には2 MBという上限が書かれている | 画像を圧縮する、ページを分けるなどして小さくする |
| PDF ができたら、またフローが動いた | 同じライブラリへの作成でトリガーが動いた | 拡張子のトリガー条件を入れるか、PDF を別のライブラリに置く |
| 「ファイルを作成する」で名前のエラーになる | / : ? などの使えない文字、先頭・末尾の空白 | replace と trim で直してから渡す |
| フォルダー パスが見つからないと出る | ライブラリの表示名とURL上の名前が違う(「ドキュメント」の実体は Shared Documents など) | 「フォルダー パス」はフォルダの選択ボタンで一度選び、出てきた形をまねる |
| 移動やコピーが失敗する | ファイルを誰かが開いて編集している | 少し待って再試行する設定にするか、時間をずらす |
| 同期しているPCで「ファイルが見つからない」 | 同期中や、クラウドだけにあるファイル | クラウドフローは SharePoint 上のファイルを扱う。デスクトップフローはローカルにコピーしてから扱う |
| パスが長すぎるというエラー | ファイル名を含むパスが400文字を超えた | 案件フォルダの名前を短くし、深さを3段までにする |
| 「URL からファイルをアップロードする」が成功したのにファイルがない | このアクションは20秒たつと成否にかかわらず成功を返す | アップロード後にファイルの有無を確かめる |
| 匿名リンクの作成が失敗する | 管理者が匿名のリンクを許可していない | 組織内のリンクか、相手を指定した共有にする |
| 差し込みのアクションが使えない | Word Online (Business) は Premium。多要素認証の条件付きアクセスで使えないこともある | ライセンスと環境を確かめる。標準コネクタなら Excel から PDF にする |
日本語のフォルダ名やファイル名は、フローの中でそのまま使えます。詰まるのは、「SharePoint に HTTP 要求を送信する」で URL にパスを入れるときで、日本語や空白をエンコードしないとエラーになります。標準のファイル アクションを使っている限りは、気にしなくて済みます。
次にやること
ファイルの置き場所が決まったら、入口と書類を広げます。
- Power AutomateでOutlookのメールを自動化:添付の保存・振り分け・定型メールの送信
- Power Automateのテンプレート:公式テンプレートから作って会社用に直す
- SharePointリストとは:作り方と、Excelの台帳をリストに移す判断
- Power Automateの式と変数:日付・文字列・配列をよく使う関数で扱う
公式テンプレートの「添付ファイルを SharePoint に保存する」のようなものから始め、フォルダー パスとファイル名だけ会社の決まりに合わせて直すと、最初の1本が早く作れます。