「ファイル」アクションを使いこなす

Power Automate Desktop
「ファイル」アクションを使いこなす

このページでは「ファイル」アクションの操作方法について学習していきましょう。Power Automate Desktopはデスクトップ型のRPAであり、ファイルやフォルダのようなデスクトップ操作は必須と言って良いでしょう。「ファイル」を操作するアクションは全部で14種類用意されています。1つ1つの機能を実際に動かしながら確認していきましょう。

(なお、2022/7/25執筆時点でのアクション数であり、今後、利用できるオプションが増える可能性があります。)

1. ファイルが存在する場合

「ファイルが存在する場合」というアクションではifアクションと同じようにファイルが存在するかどうかで条件分岐を行うことができます。実際のフローイメージとしては下図のようにファイルが存在する場合、中身の操作を実行していきます。また、条件にある「Else」アクションと同時に利用することも可能で、その場合はファイルが存在する場合はAの操作を、存在しない場合はBの操作という風に条件に応じて異なる命令を実行させることができます。

ファイルが存在する場合のフロー例

アクションを追加すると設定画面が現われます。設定項目は2つで「ファイルが次の場合」からはファイルが存在する時に真とするか、存在しないときに真とするかを選べます。ファイルパスはその判定に使いたいファイルを指定してあげましょう。

ファイルが存在する場合設定画面

今回は下図のように「test.txt」は指定したファイルパスに存在するので真となり、中のメッセージを表示されるアクションが実行されます。

エクスプローラでの確認

実際にRPAを動かしてみましょう。下図のようにメッセージが表示されていれば成功です。

実行結果

2. ファイルを待機します

ファイルの待機フロー

続いて「ファイルを待機」アクションについて見ていましょう。このアクションを利用することで、指定したファイルが作成されるか削除されるまでRPAの実行を停止させることができます。

アクションを追加すると下図の設定画面が現われます。「ファイルの次の状態を待機します」から作成されるまで待機するか、削除されるまで待機するかを選択できます。「ファイルパス」では対象となるファイルを選択してください。もしタイムアウトする時間を設定するならタイムアウトエラーで実行できます。

ファイルの待機設定画面

今回は上図のように待機する状態を削除済みで設定しているので、既に「test.txt」というファイルを指定したフォルダパスに作成しています。もし同じように操作していてファイルがない場合は指定したフォルダにファイルを作成するようにしてみてください。中身は空で問題ありません。それでは実行してみましょう。RPAを動かしてみると待機するアクションで処理が止まっているのがわかると思います。ここで、前もって作ったファイルをエクスプローラーで下図のように削除してみてください。削除後に処理が再開されていれば成功です。

エクスプローラでの確認

3. ファイルのコピー

ファイルのコピーフロー

「ファイルのコピー」アクションの動作を確認していきます。このアクションでは指定したファイルを任意のフォルダにコピーすることができます。まずはアクションを追加してみましょう。下図のような設定画面が現われます。設定する項目は3つあります。「コピーするファイル」ではコピー対象とするファイルを選択してください。今回コピーするファイルは「test.txt」で既に指定したパスに作成しております。「宛先フォルダー」ではコピー先のフォルダを選択します。最後に既にコピーするファイルが存在する場合には何もしないか上書きするかを選択します。

ファイルのコピー設定画面

設定を保存したら実行してください。対象のフォルダをエクスプローラで開いた時に下図のようにファイルがコピーされていれば成功です。

エクスプローラで確認 エクスプローラでの確認2

4. ファイルの移動

ファイルの移動フロー

「ファイルの移動」アクションは前項で紹介した「ファイルのコピー」アクションと似ており、コピーではなくてファイルを移動するようにしています。今回は前回コピーしたファイルを別のフォルダに移動してあげましょう。まずはアクションを追加してください。追加すると、コピーの時と同様に移動させるファイル、移動先のフォルダ、ファイルが既にある場合の挙動について選択することができます。移動させるファイルは先ほどコピーしたファイルを選択肢、移動先は今回、「test」フォルダの直下に「test2」フォルダを作ってそこに移動させます。また、既にファイルがある場合は特に何もしないようにします。

ファイルの移動設定画面

設定が終わったら保存して実行してみましょう。下図のように実行前のフォルダから対象のファイルがなくなっていて、指定されたフォルダの中に移動されていたら成功です。

エクスプローラでの確認 エクスプローラでの確認2

5. ファイルの削除

ファイルの削除フロー

それでは前項で移動したファイルを削除してみましょう。ファイルの削除は「ファイルの削除」アクションから実行できます。アクションを追加すると、設定画面が現われます。設定する項目は1つだけで、削除するファイルを指定すれば終了です。

ファイルの削除設定画面

設定を保存したら実行してください。実行後、エクスプローラから指定したファイルのあるフォルダを開いてください。下図のようにファイルがなくなっていれば成功です。

エクスプローラでの確認

6. ファイルの名前を変更する

ファイルの名前を変更フロー

続いて「ファイルの名前を変更する」方法について学習していきましょう。このアクションを追加すると、下図のような設定画面が現われます。設定するパラメータは全部で4つです。「名前を変更するファイル」では対象となるファイルを選択してください。今回は「test2」というフォルダの下に新しく「name.txt」というファイルを作成しています。名前の変更方法で「新しい名前を設定する」を選ぶと、新しいファイル名で具体的に変更したい名前を入力することができます。「拡張子を保持する」をOFFにすると、それまでにつけていた拡張子(今回は.txt)が消えてしまうので、そのままにしておきたい場合はONにするようにしましょう。名前の変更方法はひとつではなく、日時をつけたり、対象ファイルが複数の時は連番にしたりできるなどいくつかの選択肢が用意されています。

ファイルの名前を変更設定画面

設定を保存したら、実行してみてください。下図のように元あったテキストのタイトルが設定した通りに変更されていれば操作成功です。

エクスプローラでの確認 エクスプローラでの確認2

7. ファイルからテキストを読み取ります、テキストをファイルに書き込みます

ファイルの読み取りと書き込みフロー

続いて、テキストファイルの中身を読み込んだり、書き込んだりする方法について考えていきましょう。とは言っても、アクション自体は上記2アクションでどちらも行うことができます。今回は下図のように「read.txt」ファイルを用意しました。この内容を読み込んでまだ存在しない「write.txt」ファイルに書き込んでいきましょう。

読み込みファイル

「ファイルからテキストを読み取ります」アクションを追加すると、下図のような設定画面が現われます。「ファイルパス」には読み取りたいテキストのあるファイルを選択してください。内容の保存方法はテキストとして保存するか、1行毎にリストとして保存するか選ぶことができます。エンコードは読み取る際の文字コードを設定できます。

ファイルの読み取り設定画面

設定を保存すると、FileContenstsという変数が生成され、ここに読み取ったテキストが格納されます。保存方法を単一のテキストにした場合は1つのテキスト値として、リストとして保存した場合は1行毎にテキスト値を持つリストとして保存されています。この値を「テキストをファイルに書き込みます」アクションを利用して別のファイルに書き込んであげましょう。アクションを追加すると下図のような設定画面が現われます。ファイルパスに新しく書き込みたいファイルを選択し、書き込むテキストは先ほど生成された変数を設定してください。新しい行をONにすると、テキストを書き込んだ後、最後に改行してくれます。既に書き込み対象のファイルが存在する場合は、上書きするか何もしないかを選べます。最後に文字コードを設定したら終了です。

ファイルの書き込み設定画面

設定を保存したら実行してみましょう。下図のように読み取りファイルに合った内容が書き込みファイルにコピーされていれば成功です。

書き込みファイル

8. CSVを読み取ります、CSVファイルに書き込みます

このセクションではPower Automate DesktopにおけるCSVファイルの扱う方法を学習していきましょう。CSVファイルを直接扱うアクションは「読み取り」と「書き込み」の2種類あります。下図のように既にあるCSVファイルの値を読み取って、新しいCSVファイルに書き込み事例を通じて、実際の動きを確認していきましょう。

CSVの読み取り、書き込みフロー

今回は以下のように「data1.csv」というファイルを用意しました。2列でできていて、1行目は列になっています。各時間毎の消費電力量を集計したデータです。このファイルをtestフォルダの下に用意しました。このCSVファイルの文字コードは「UTF-8」となっています。

読み取りファイル

まず「CSVを読み取る」アクションを追加しましょう。設定画面ではファイルパスとエンコードの指定、詳細から更に細かな設定ができるようになっています。ファイルパスは最初に用意したCSVファイルがあるパスを指定してください。また、文字コードを「UTF-8」で作成しているので、エンコードも「UTF-8」で設定します。

CSVの読み取り設定画面

なお、文字コードの確認についてはメモ帳やサクラエディタなどのテキストエディタで確認することができます。下図はメモ帳でCSVファイルを開いた例ですが、右下に「UTF-8」と表示されていることが確認できます。Power Automate Desktopは「Shift_JIS」には対応していないので、もじここが「SJIS」と書かれているようであれば「名前を付けて保存」する時に文字コードを設定できるので、「UTF-8」で上書き保存をするようにしてください。日本では「Shift_JIS」がよく使われますが、グローバルスタンダードでは「UTF-8」が使われることが多いです。「Shift_JIS」は日本語を含む文字列を表現するためのローカル文字コードですが、同じように中国語では「EUC_CN」、韓国語では「EUC_KR」など各国の言語に応じてローカルな文字コードがあったりします。

CSVファイルをメモ帳で開いた時

詳細メニューを開いて、詳しい設定をしていきましょう。フィールドのトリミングをONにすると自動で先頭と末尾の空白を削除してくれます。間の空白は削除されません。また、最初の行に列名が含まれている場合は1行目を列名として別に認識してくれます。ここがOFFになっていると、列名はデフォルト値(Column1、Column2 ..)が設定されます。また列区切り記号は普段CSVファイルをExcelアプリで開いていると気付かないですが、CSVファイルは一般に各列がカンマ(,)で区切られています。なので「定義済み」の「システム規定値」として特に問題はないのですが、ここは自由にカスタマイズすることも可能です。

CSVの読み取り詳細設定画面

一度、きちんと読み取れているか実行してみましょう。実行後であればデザイナー画面右側のフロー変数という所から読み取りによって生成され変数の中身を確認することができます。ダブルクリックして詳細を見てみるとdatatable型の変数としてきちんと値を取得することができているようです。

CSV読み取り実行後に生成される変数

続いて「書き込み」アクションについて見ていきましょう。設定画面では書き込む変数、書き込むファイル、書き込む際の文字コードを設定できます。書き込む変数は読み取りで生成された変数と、ファイルパスはtestフォルダの中に「copy1.csv」というファイルを指定します。この段階ではまだ「copy1.csv」ファイルはできていません。エンコードは「UTF-8」を設定します。

CSVの書き込み設定画面

次に詳細を設定していきましょう。詳細メニューを開くと、列名を含めるかどうかとファイルが存在するときに上書きするかどうか、区切り記号の指定ができます。読み取ったデータは列名があり、カンマで区切られているので、列名を含めるをON、区切り記号はデフォルトのままにしておきます。ファイルが存在する場合は上書きする設定としました。

CSVの書き込み詳細設定画面

ここまで来れば後は実行するだけです。「書き込み」アクションを保存したら実行してみてください。指定したフォルダに下図のように読み取ったCSVファイルと全く同じデータがコピーされていれば正解です。もし文字化けなどしてしまった場合は文字コードが合っているかをもう一度確認してみてください。

書き込み結果

9. ファイル パス部分の取得

パスの取得フロー

「ファイル パス部分の取得」アクションについて見ていきましょう。このアクションでは指定したファイルのパスについての情報を取得することができます。今回は下図の「test.txt」というファイルのパスを取得してみましょう。

エクスプローラでの確認

アクションの設定画面のパラメータは1つだけで取得したいファイルを選択してください。

パスの取得設定画面

設定を保存したら実行してみましょう。実行すると、いくつかの変数が生成され、下図はその中のひとつです。この他にも拡張子が格納される変数、ファイル名が格納される変数、拡張子抜きのファイル名が格納される変数、ルートパスが格納される変数が用意されるので、必要に応じて使い分けてください。

実行後に生成された変数の値

10. 一時ファイルの取得

一時ファイル取得フロー

「一時ファイルの取得」アクションを実行すると、「.tmp」の拡張子がついたファイルが作成されます。tmpはtemporaryの略でソフトウェアがデータを一時的に保管する際などに作成されます。データ形式もテキスト形式の場合もありますが、実際に実行できるプログラムが記述されていたりと、様々な用途で使われます。

ただし、RPAでの設定は特にパラメータがないので簡単に作成できます。設定画面でファイルを保存する変数名を決めて保存したら終了です。

一時ファイル取得の設定画面

11. ファイルをBase64に変換する、Base64をファイルに変換する

Base64とは「a ~ z、A ~ Z、0 ~ 9」の大小英数字と「+、/」などの一部の記号を用いてデータを変換するエンコード方式のことを言います。様々な所で使われていますが、電子メールやBasic認証、ファイルのアップロードなどで用いられています。このBase64が登場するまではASCII文字と呼ばれる文字のみしか使うことができず、日本語や画像などの添付ファイルを扱うことはできませんでした。Base64のデータに変換することをエンコードと言い、Base64に変換されたデータを元のファイルに戻すことをデコードと言います。

ここでは下図の例を通じて使い方を見ていきましょう。と言っても簡単で、ファイルに書かれているデータをBase64でエンコードしてから変数で取得し、その変数をデコードしてから結果ファイルに書き込むという内容です。

Base64フロー

まずは下図のようなファイル(test.txt)をtestフォルダに用意しました。中身は夏目漱石の「坊ちゃん」の一節が書かれています。これをBase64でエンコードしてアルファベットと数字、一部の記号に変換していきます。

Base64でのエンコード元

ファイルが作成できたら、「ファイルをBase64に変換する」アクションを追加しましょう。設定画面ではファイルパスを設定する欄があるので、変換したいファイルを選択して保存を押します。

ファイルをBase64に変換設定画面

保存が終わったら一度実行してみましょう。デザイナー画面右側のフロー変数という所から値を確認できます。下図を見るとわかる通り、見事に坊ちゃんの文章が英数字へ変換されています。枠に収まっていませんが、横一列に長く続いています。これでエンコードができたことになります。

変換後の変数の値

次に「Base64をファイルに変換する」というアクションを追加しましょう。設定画面での入力欄は3つです。1つ目の対象テキストは先ほど生成された変数を選択します。ファイルパスは新しく作りたいファイルをどこのフォルダに作りたいかを考えて設定しましょう。3つ目で指定したファイルが既にある場合の動きを設定できます。上書きを設定すると今までの中身が新しい値に書き換えられ、何もしないを設定すると特に何も行わずに処理を終了します。

Base64をファイルに変換設定画面

保存したら実行してみましょう。実行後、指定したファイルパスに新しいファイルができていると思うので、開いてください。そうすると、最初エンコードした坊ちゃんの文章が同じように書き込まれているはずです。このようにBase64のデータをデコードしてファイルを新しく作成することができます。

Base64のデコード結果

以上、「ファイル」アクションの操作についての解説でした。みなさんの自動化を少しでもお手伝いできていましたら幸いです。

→「Power Automate Desktop」の他の操作も見る

執筆者プロフィール

プロフィール画像

伊藤 丈裕

(株)サムテックのシステムエンジニア。応用情報技術者資格保有。
27歳の時、営業から完全未経験で転職。開発とWebマーケティングを担当。得意言語はJavaとJavaScript。

タイトルとURLをコピーしました