こんにちは!UiPath メンターです。
あなたは、ロボットにこんな動きをさせていませんか?
「デスクトップにある『注文書.xlsx』を読み込んで登録処理をする」
これ、実はとても危険なんです。
もし明日、新しい『注文書.xlsx』が届く前にロボットを動かしてしまったら?
昨日の古いデータを、もう一度二重登録してしまうかもしれません。
プロの現場では、処理が終わったファイルは即座に「処理済みフォルダー」へ移動させます。
今回は、そんな「ファイル移動」と、バックアップに便利な「Zip圧縮」のやり方を学びましょう。
1. ファイルを移動する:「ファイルを移動」
最も基本となる操作です。
読み込み終わったファイルを、別の場所に退避させましょう。
手順
- [アクティビティ] パネルで「ファイル」と検索します。
- [ファイルを移動 (Move File)] をドラッグ&ドロップします。
※「システム > ファイル」カテゴリにあるものが一般的です。
設定項目
- パス (Path): 移動させたい元のファイル(例:
"C:\Users\...\Desktop\注文書.xlsx") - 宛先 (Destination): 移動先のパス(例:
"C:\Users\...\Desktop\処理済み\")
💡 メンターからのアドバイス:フォルダは自動で作れる?
移動先のフォルダ(例:処理済み)が存在しない場合、エラーになってしまうことがあります。
[ファイルを移動] の前に、念のため [フォルダーを作成 (Create Folder)] アクティビティを置いておくと親切です。
このアクティビティは「既にフォルダがある場合は何もしない(エラーにならない)」ので、とりあえず置いておけば安心です。
2. 移動と同時に「名前を変える」
ただ移動するだけだと、翌日また同じ名前のファイルが来た時に「同名のファイルが存在します」とエラーになってしまいます。
そこで、移動するときに「日付」をファイル名に付けるのが定石です。
[ファイルを移動] アクティビティの [宛先] 欄には、フォルダ名だけでなく、新しいファイル名まで含めることができます。
設定例
宛先の欄に以下のように記述します。
"C:\Users\...\Desktop\処理済み\注文書_" + DateTime.Now.ToString("yyyyMMdd") + ".xlsx"
こうすると、移動後のファイル名は 注文書_20231025.xlsx のようになります。
これなら毎日処理しても名前が被りません!
※日付の詳しい操作は、応用編の第4回でじっくり解説します。
3. フォルダ内のファイルを順番に処理する
実務では「フォルダに入っているファイルを全部処理したい」というケースが多いですよね。
そんな時はこのループを使います。
手順
- [アクティビティ] パネルで「フォルダー」と検索します。
- [フォルダー内の各ファイル (For Each File in Folder)] を配置します。
- 対象のフォルダを指定します。
このループの中に「Excel処理」と「ファイル移動」を入れておけば、
「1つ取って処理して移動、次のファイルを取って処理して移動……」
と、フォルダが空になるまで働き続けてくれます。
4. まとめて圧縮:「Zip 圧縮/解凍」
月末に「処理済みフォルダの中身を全部まとめてZipにして、サーバーに保存したい」ということもあります。
UiPathなら圧縮も解凍も一発です。
手順
- [アクティビティ] パネルで「zip」と検索します。
- [ファイル/フォルダーを圧縮 (Compress/Zip Files)] を配置します。
設定項目
- 圧縮する内容 (Content to compress): 圧縮したいフォルダ(例:
"処理済み"フォルダ) - 圧縮後のファイル名 (Compressed file path): 作成したいZipファイルの名前(例:
"2023年10月バックアップ.zip")
これで、フォルダの中身を丸ごと1つのZipファイルにまとめられます。
逆にZipをもらった場合は [ファイル/フォルダーを解凍 (Extract/Unzip Files)] を使えばOKです。
今回のまとめ
- 処理が終わったファイルは [ファイルを移動] で片付けるのが鉄則。
- 移動先に「新しい名前」を指定すれば、リネーム(名前変更)も同時にできる。
- [フォルダー内の各ファイル] ループを使えば、一括処理&お片付けロボットが作れる。
⚠️ つまづきポイント:ファイルが握られている?
ファイルを移動しようとしたら「別のプロセスが使用中です」とエラーになることがあります。
これは、直前の処理(Excel操作など)でファイルを閉じ忘れているのが原因です。
Excelなら [Excel プロセス スコープ] の外側で移動させるか、確実にファイルを閉じる処理が入っているか確認しましょう。
次回は、紙の書類業務をなくすための切り札。
「PDFのテキスト読み取り」です。
画像ではなく「データ」としてPDFの中身を読み取る方法を学びます。請求書処理などの自動化に役立ちますよ!