Power AutomateでExcelファイルを「まとめてコピー&名前変更」する方法:報告書作成やデータ整理を効率化!
「毎月、特定のExcel(エクセル)ファイルを複数コピーして、日付を入れて名前を変える作業が面倒だな…」「テンプレートのExcelファイルを、プロジェクトごとにまとめて複製して、それぞれにプロジェクト名をつけて管理したいんだけど、どうすれば自動でできるの?」「Power Automate(パワー オートメイト)を使って、大量のExcelファイルを自動で複製して、名前も自動的に変えたいな…」
こんな風に感じたことはありませんか? Excelファイルは、報告書、請求書、プロジェクトの計画書、データ集計表など、日々の業務で繰り返し使われたり、複製されて新しい名前で管理されたりすることが非常に多いです。これらの「まとめてコピーして名前を変更する」という作業を手作業で行うのは、ファイルの数が増えれば増えるほど時間も手間もかかり、コピーし忘れや名前の付け間違いといった人為的なミスも発生しがちですよね。
Microsoft Power Automateを使えば、SharePoint(シェアポイント)やOneDrive(ワンドライブ)に保存されているExcelファイルを、あなたが設定したルールに基づいて、自動的にまとめてコピーし、新しい名前を付けて保存する仕組みを簡単に構築できます。これにより、手作業でのファイル管理から解放され、ドキュメントの生成や整理の効率と正確性が飛躍的に向上します。
Excelファイルを「まとめてコピー&名前変更」するってどんなこと?その大きなメリット
Power AutomateでExcelファイルを「まとめてコピー&名前変更する」とは、あなたが指定した複数の既存Excelファイルに対して、それぞれを複製し、新しい保存先に、元のファイル名に特定の情報(例: 日付、連番、プロジェクト名など)を追加したり、完全に新しい名前を付けたりして保存することです。
なぜ自動で「まとめてコピー&名前変更」したいのか?その主なメリット
Excelファイルをまとめてコピーし、名前を変更する作業を自動化することには、たくさんの良い点があります。
- 定型レポートの自動生成毎月、毎週作成する定型レポートのひな形Excelファイル(例: _月次報告書テンプレート.xlsx)を、自動的に複数コピーし、それぞれに日付や部門名(例: 2025年07月_営業部_月次報告書.xlsx)をつけて保存するといった自動化が可能です。これにより、レポート作成の第一段階にかかる手間が大幅に削減されます。
- プロジェクト開始時の資料準備の自動化新しいプロジェクトが始まるたびに、テンプレートフォルダにある複数のExcelファイルをコピーし、それぞれに新しいプロジェクト名(例: 「PJ_A_進捗管理.xlsx」→「PJ_B_進捗管理.xlsx」)をつけて準備するといった作業を自動化できます。これにより、プロジェクトの立ち上げを効率化し、準備時間を短縮できます。
- データ集計ファイルの自動振り分けあるフォルダに集められたExcelファイル(例: 各支店からのデータ)を、内容に応じて別のフォルダーにコピーし、ファイル名に識別子を追加して整理するといった、データ整理の自動化が可能です。
- 手作業の削減とヒューマンエラー防止大量のファイルを一つずつコピーしたり、名前を変えたりする手間から解放されます。コピーし忘れや、ファイル名の付け間違い、保存場所の誤りといった人為的なミスを根本から防ぐことができます。
- 業務プロセスの標準化ファイル管理のプロセスが自動化され、常に同じルールに基づいてファイルが複製・命名されるため、業務の標準化が図れます。これにより、誰が作業しても同じ品質でファイルが管理されるようになります。
Excelファイルをまとめてコピー&名前変更する主要なアクション
Power AutomateでExcelファイルの一括コピーと名前変更を行うには、主に以下の二つのステップを組み合わせます。
1. コピーしたいExcelファイルの「一覧」を取得する
まず、Power Automateに「どのExcelファイルをコピーしたいのか」を教える必要があります。これは、特定のフォルダーにある全てのExcelファイルを読み込んだり、あるいは特定の条件(ファイル名の一部、更新日時など)に合致するExcelファイルを検索したりして行います。
- 「フォルダー内のファイルの一覧表示 (SharePoint)」: 指定したSharePointのフォルダー(例: テンプレートが置いてある場所)にある全てのファイル情報を取得します。
- 「ファイルの検索 (SharePoint)」: 特定のキーワードを含むファイル名や、特定の条件に合致するファイルをSharePoint内から検索して取得します。
2. 取得した各ファイルを「コピー」し、その際に「新しい名前」を付ける
一覧で取得した各Excelファイルに対して、それぞれコピーし、新しい名前で保存する操作を行います。
- 「Apply to each(各項目に適用)」: 一覧で取得した各Excelファイルに対して、同じコピー操作を繰り返すために使います。
- 「ファイルのコピー (SharePoint)」: Excelファイルを新しい場所にコピーする際に使用します。このアクションで、新しいファイル名を指定できます。
- 「ファイルの作成 (SharePoint)」: Excelファイルの内容を取得し、その内容を使って新しいファイルを作成する際に使用します。このアクションでも、新しいファイル名を指定できます。
Excelファイルを「まとめてコピー&名前変更」する具体的な手順
ここでは、「SharePointの特定のフォルダーにあるExcelファイルをまとめてコピーし、それぞれに今日の日付を追加した新しい名前で別のフォルダーに保存する」というフローを例に、具体的な作成手順をステップバイステップで解説します。
事前準備:Excelファイルのテンプレートと保存先のフォルダーを作成
- コピー元のExcelファイル(テンプレート)をSharePointに準備します。SharePointサイトのドキュメントライブラリ(例: 「ドキュメント」)の中に、「テンプレート」というフォルダーを作成します。その中に、コピーしたいExcelファイル(例: 「月次報告書ひな形.xlsx」)を保存しておきます。
- コピー先のフォルダーをSharePointに準備します。同じSharePointサイトのドキュメントライブラリの中に、「月次報告書_2025年」といった、コピーしたファイルを保存するためのフォルダーを新しく作成しておきます。
ステップ1:Power Automateで新しいフローを作成します。
今回は、手動で起動してファイルをコピーするフローを例にします。スケジュール設定やファイル作成トリガーなど、他のトリガーでも同様の操作が可能です。
- ウェブブラウザでPower Automate(https://www.google.com/search?q=make.powerautomate.com)にアクセスし、あなたのMicrosoft 365アカウントでサインインします。
- 左側のメニューから「作成」をクリックします。
- 表示されるフローの種類の選択肢の中から「インスタント クラウド フロー」(手動でボタンを押して動かすフロー)を選択してください。
- フローに分かりやすい名前を付けます(例:「Excelテンプレート_月次報告書コピー」)。
- 「フローのトリガーを選択してください」の検索ボックスに「手動」と入力し、「フローを手動でトリガーします」を選択してください。
- 「作成」ボタンをクリックします。
ステップ2:コピーしたいExcelファイルの「一覧」を取得します。
テンプレートが置いてあるフォルダー内のファイル情報を取得します。
- 「フローを手動でトリガーします」アクションの下に「新しいステップ」をクリックします。
- 検索ボックスに「SharePoint」と入力し、「フォルダー内のファイルの一覧表示 (SharePoint)」アクションを選択してください。
- サイトのアドレス: コピーしたいExcelテンプレートが保存されているSharePointサイトのURLを選択または入力します。
- フォルダー: Excelテンプレートが保存されているフォルダー(例: 「共有ドキュメント/テンプレート」)を選択します。
ステップ3:各Excelファイルをコピーし、新しい名前で保存するループを設定します。
取得した各Excelファイルに対して、コピーと名前変更の処理を繰り返します。
- 「フォルダー内のファイルの一覧表示」アクションの下に「新しいステップ」をクリックします。
- 検索ボックスに「制御」と入力し、「Apply to each」(各項目に適用)アクションを選択してください。これは、「フォルダー内のファイルの一覧表示」で取得したExcelファイルの情報を一つずつ処理するためのループです。
- 「以前の手順から出力を選択」フィールドにカーソルを置き、動的なコンテンツから「フォルダー内のファイルの一覧表示」アクションの「値」(読み取ったファイルのリスト全体)を選択します。
- 「Apply to each」ブロックの中に「アクションの追加」をクリックします。
ステップ4:個々のExcelファイルを「コピー」し、「新しい名前」を付けて保存するアクションを追加します。
ループ内で、それぞれのファイルに対してコピーと名前変更の操作を行います。
- 検索ボックスに「SharePoint」と入力し、「ファイルをコピーします (SharePoint)」アクションを選択してください。
- アクションの詳細を設定します。
- 現在のサイトのアドレス: コピー元のExcelテンプレートがあるSharePointサイトのURLを選択または入力します。
- コピー元ファイル: 動的なコンテンツから「Apply to each」ループの「現在の項目」の中から「ファイル識別子」(コピーしたいファイルのID)を選択します。
- 移動先サイトのアドレス: コピーしたファイルを保存したいSharePointサイトのURLを選択または入力します。
- 移動先フォルダー: コピーしたファイルを保存したいフォルダー(例: 「共有ドキュメント/月次報告書_2025年」)を選択します。
- 新しいファイル名: ここが「名前変更」の肝です。動的なコンテンツと「式(Expression)」を組み合わせて、新しいファイル名を生成します。
- 新しいファイル名の生成例(ファイル名に今日の日付を追加):「式」タブを選択し、以下のように入力します。
concat( substring(items('Apply_to_each')?['FileLeafRef'], 0, sub(length(items('Apply_to_each')?['FileLeafRef']), 5)), '_', formatDateTime(utcNow(), 'yyyyMMdd'), '.xlsx' )式の解説:
items('Apply_to_each')?['FileLeafRef']: 現在処理中のファイルのファイル名(例:月次報告書ひな形.xlsx)を取得します。substring(..., 0, sub(length(...), 5)): ファイル名から拡張子(.xlsx)を取り除く部分です。FileLeafRefの長さから5文字(.xlsxの長さ)を引いたところまでを抜き出します。concat(...): 複数の文字列を結合する関数です。formatDateTime(utcNow(), 'yyyyMMdd'): フローが実行された現在の日付を「YYYYMMDD」形式(例:20250729)で取得します。_,.xlsx: 日付と拡張子を結合します。- 結果: 例えば「
月次報告書ひな形_20250729.xlsx」のような新しいファイル名が生成されます。 - 【注意】:
Apply_to_eachの部分は、あなたのフローで自動的に割り当てられた「Apply to each」アクションの正確な名前に置き換えてください。また、拡張子を自動で認識して付与するより汎用的な式も存在しますが、上記は特定の拡張子.xlsxが分かっている場合の例です。
- 新しいファイル名の生成例(ファイル名に今日の日付を追加):「式」タブを選択し、以下のように入力します。
- 「ファイルが存在する場合」の処理: このアクションの詳細設定を展開すると、「ファイルが存在する場合」という項目が出てきます。ここで「新しい名前でコピー」を選択すると、同じ名前のファイルがコピー先に存在しても、自動的にユニークなファイル名(例:
ファイル名 (1).xlsx)で保存されます。もし常に上書きしたい場合は、「上書き」を選択してください。
- フローを保存し、テストします。フローに名前を付けて保存します。そして、コピー元のフォルダーにExcelテンプレートファイルが置かれていることを確認し、フローを手動でテスト実行してみてください。コピー先のフォルダーに、新しい名前でExcelファイルが複製されていることを確認します。
Excelファイルの一括コピー&名前変更をスムーズに実現するための「大切なポイント」
Power AutomateでExcelファイルの一括コピーと名前変更を行う機能は非常に便利ですが、そのメリットを最大限に引き出し、スムーズな運用を実現するためには、いくつかの重要な注意点を理解し、適切に対処する必要があります。
1. コピー元のExcelファイルの「内容」を事前に確認する
コピー元のExcelファイルがテンプレートとして使われる場合、その内容が本当にまっさらなテンプレート状態であるか、あるいは必要な情報だけが含まれているかを確認してください。もし、不要なデータが残っていると、コピー先のファイルにもそれが引き継がれてしまいます。
2. 新しいファイル名の「命名ルール」を明確にする
新しいファイル名を自動生成する際、どのようなルールで名前を付けたいかを事前に明確に決めておくことが非常に重要です。
- ユニーク性: ファイル名が重複しないように、日付、時刻、連番などを組み込むと良いでしょう。
- 分かりやすさ: 後からファイルを見た人が、そのファイルが何であるかをファイル名だけで理解できるように、簡潔で分かりやすい命名規則を設定します。
- ファイルの種類(拡張子): ファイル名の最後に、必ず正しい拡張子(例:
.xlsx、.pdfなど)を含めるようにしましょう。これを忘れると、ファイルが正しく開けなくなることがあります。
3. 大量のファイルを処理する際のパフォーマンスとAPI制限に注意
コピーするファイルの数が多い場合や、個々のファイルサイズが大きい場合、フローの実行に時間がかかったり、Power Automateや連携先のSharePoint/OneDriveのAPIリクエスト制限(429エラーなど)に達したりする可能性があります。
対策
- 「Apply to each」ループの「コンカレンシー制御」(並列処理)を有効にし、並列度を低めに設定(例: 5〜20)することで、一度に送信されるAPI要求の集中を避けます。
- API呼び出しが連続するアクションの間に、数秒の「遅延」アクションを挿入することも有効です。
- Power Automateのライセンスプランが、想定されるAPIリクエスト数に対応しているか確認してください。
4. ファイルのコピー元とコピー先の「権限」を確認する
Power AutomateがExcelファイルをコピーするには、フローが使用するアカウントが、
- コピー元のフォルダー/ファイル: 「読み取り」権限が必要です。
- コピー先のフォルダー: 「書き込み」権限(または「共同作成者」以上の権限)が必要です。
権限が不足していると、ファイルの読み取りや作成が拒否されてエラー(401や403エラーなど)になります。
5. エラー通知と監視を設定する
ファイルの一括コピーと名前変更は、重要な操作です。予期せぬ問題(例: ファイルが見つからない、コピー先の容量不足、ネットワークエラー、名前生成の重複など)でフローが失敗した場合に備えて、必ず「エラーハンドリング」を設定してください。
設定方法
ファイルコピーアクションやその前後のアクションを「スコープ」で囲み、もしスコープ内で失敗したら、自動で管理者へ通知メールを送ったり、エラーログを記録したりするアクションを追加します。これにより、問題発生時にすぐに気づき、対応することができます。
6. テスト環境での十分な検証
本番環境で実際にファイルの一括コピーと名前変更を行う前に、必ずテスト環境でフローを十分にテストしてください。様々なシナリオ(例: コピー元にファイルがない場合、コピー先に既に同名のファイルがある場合、生成されるファイル名が長すぎる場合など)を想定してテストを行うことで、本番稼働後のトラブルを未然に防ぎ、スムーズな運用を保証できます。
Power AutomateでExcelファイルの管理を自動化し、作業を効率化しよう!
Power AutomateでExcelファイルの一括コピーと名前変更を行うことは、手作業でのファイル管理から解放され、ドキュメントの生成や整理の効率と正確性を飛躍的に向上させるための強力な手段です。
- まず「フォルダー内のファイルの一覧表示」アクションでコピーしたいファイルを特定します。
- 次に「Apply to each」ループで各ファイルを処理し、「ファイルをコピーします」アクションでコピーを実行します。
- 新しいファイル名は、「式(Expression)」を使って動的に生成し、ファイル名が重複しないように工夫しましょう。
これらの知識と手順を上手に活用して、あなたのExcelファイル管理プロセスを自動化し、日々の業務をよりスムーズで効率的なものに変えてくださいね。

