Power Automate Desktop(PAD)を使って、Excelやテキストファイルなどを繰り返し(Loop)処理で自動作成する場面はよくあります。
たとえば、
- 顧客データを1件ずつ別ファイルで保存したい
- フォームから取得したデータを毎回別のCSVに書き出したい
- 処理ログを毎回新しいファイルに保存したい
というような用途ですね。
でもそこでよくあるのが、「ファイル名が同じになって上書きされてしまう…」という問題です。
よくある悩み:「ファイルが上書きされて消える!」
❌ ありがちなミス
ループ処理の中でファイルを作成して、固定のファイル名(例:output.xlsx)で保存すると…
1回目のループ:output.xlsx → 作成される
2回目のループ:output.xlsx → 上書きされる
3回目のループ:output.xlsx → また上書き…
💥結果:最後の1件しか残っていない!
これではせっかく作った自動化が**「破壊的な上書き装置」**になってしまいます。
解決策:「ファイルの名前を変更する」+「連番にする」を使おう!
この問題をスマートに解決してくれるのが、PADの**「ファイルの名前を変更する」アクション**です。
さらに、ファイル名の末尾に**連番(カウント番号)**を付けることで、毎回違うファイル名で保存できるようになります。
実際のフロー構成(基本パターン)
以下のような構成でフローを作ることで、ファイルの上書きを防げます。
🔁 ループの前にカウンターを初期化
変数の設定:
Counter = 1
🔁 Loopの中でファイルを作成 or コピー
(例:テンプレートファイルをコピー)
ファイルをコピー:
元ファイル = "テンプレート.xlsx"
コピー先 = "output.xlsx"
✅ ファイルの名前を変更する
元のファイル名:output.xlsx
変更後のファイル名:"output_" + Counter + ".xlsx"
ここで使うのが 「ファイルの名前を変更する」アクションです。
連番は変数Counterを使ってファイル名に組み込みます。
➕ カウンターをインクリメント
Counter = Counter + 1
これをループさせれば、出力結果はこうなります:
output_1.xlsx
output_2.xlsx
output_3.xlsx
...(上書きなし!)
操作手順をさらに詳しく解説(初心者向け)
ステップ①:カウンターを初期化
「変数の設定」アクションを使って、Counterという変数に1を代入します。
%Counter% = 1
ステップ②:Loopアクションを使ってデータ処理を繰り返す
「For Each」や「ループ(1回ずつ)」など、データ件数分のループを作成します。
ステップ③:テンプレートファイルをコピー(またはデータを作成)
ループごとにファイルを新規で作成します。
「ファイルのコピー」アクションを使ってもOK。
ステップ④:「ファイルの名前を変更する」アクションを挿入
- 現在のファイル名:作成した一時ファイル(例:
output.xlsx) - 変更後のファイル名: arduinoコピーする編集する
"output_" & Counter & ".xlsx" - フルパスで書くと: arduinoコピーする編集する
"C:\Users\Username\Documents\output_" & Counter & ".xlsx"
✅ 注意点:文字列連結は & を使います
ステップ⑤:カウンターを1増やす
「変数の増加」アクションを使い、Counterに1を足します。
%Counter% = %Counter% + 1
これで次のループ時には output_2.xlsx になります。
よくある質問(FAQ)
Q1. ファイル名に日付や時間を使うこともできますか?
A. はい、%CurrentDateTime% 変数や「日時の取得」アクションを使えば、"output_" & FormatDateTime(CurrentDateTime, "yyyyMMdd_HHmmss") & ".xlsx" のようにして
一意の名前を付けることができます。
Q2. コピーではなく新しくファイルを作る場合にも使えますか?
A. もちろん可能です。新規作成したファイルを最後に「名前を変更する」でリネームすれば同様に活用できます。
Q3. ファイルが存在するかをチェックするには?
A. 「ファイルの存在を確認」アクションを使えば、同名ファイルがすでにあるかを事前にチェックできます。
これと組み合わせればさらに安全です。
