3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Automation 360でフォルダ内のファイル名を取得し、ファイルの数だけ繰り返し処理を行う方法

Last updated at Posted at 2020-10-23

はじめに

あるフォルダにあるファイルをRPAのロボットに処理させたいけれど、
ファイルの数やその名前が変わる場合、どのように処理させたら良いでしょうか。
今回はそんな場合に使えるループアクションの使い方を解説します。

完成イメージ

基本的には、今回やりたいことはアクション2つで実現可能です。
実際は、下記の図でメッセージボックスが入っている部分に、対象のファイルに行いたい処理を入れておくイメージです。
image.png

対象のフォルダー

今回はこのようなファイルが置かれたフォルダを対象としてみます。
image.png
早速やってみます。

ステップ1: ループアクションを置く

左側のアクションメニューから「ループ」アクションを探して、フロー画面へ配置してください。
image.png

ステップ2: ループアクションを設定する

「反復子」を選択する

赤枠の部分をクリック。
image.png

下記の「フォルダーの各ファイルに対して」を選ぶ

image.png

対象のフォルダーパスを記入する

image.png

フォルダにあるファイル名を格納する変数を作成する

こちらのボタンを押します。今回作成される変数は「ディクショナリ変数」です。後ほど解説します。
image.png
好きな名前で結構ですので、記入し、「作成して選択」を押します。
image.png

これでループアクションは設定完了です!

image.png

ステップ3: ループ内にメッセージボックスを置く

image.png

ステップ4: メッセージボックスに作成したディクショナリ変数を挿入する。

ファイル名をメッセージ内に挿入する

こちらのボタンから変数を挿入できます。
image.png

すると、以下のようなポップアップが出ますので、赤枠の部分をクリック。
image.png
さきほど作成したディクショナリ変数が一覧に出てきますので、選択。
image.png

ディクショナリ―キーの入力を求められますので、「name」と入れます。
image.png

このように入っていれば成功です。一度実行してみましょう。
image.png

このように、ファイル名が取得できています。
image.png

ファイル拡張子をメッセージ内に挿入する

今度はファイルの拡張子を取得してみます。
同様にディクショナリ変数を挿入します。
今度はディクショナリキーに「extension」を入力して挿入しましょう。
image.png

仕上げ

こんな感じにメッセージ全体を加工します。
image.png

ステップ4:実行してみる

この通り、ファイル名を取得しながらフォルダにあるファイルの数だけ繰り返し処理をすることができました。
image.png

解説:ディクショナリ変数

概要

ディクショナリ変数はその名の通り、辞書のような変数で、
名前 = "太郎"
苗字 = "座間江"
といった感じで、「キー」と「値」をペアにして格納していくことが出来ます。
(上記の例だと左側が「キー」、右側が「値」)

ループアクションの「フォルダーの各ファイルに対して」により格納される値

今回使用した「ループ」アクションは、「フォルダーの各ファイルに対して」という反復条件を設定しましたが、
このアクションにはループの回ごとに値を取得し、ディクショナリ変数へ格納してくれる機能があります。

この機能でディクショナリ変数に格納される値は、「name」と[extension」というキーが割り当てられています。
例えば、損益計算書20201024.xlsxというファイルを読み取った場合は以下の通りになります。

name = "損益計算書20201024"
extension = "xlsx"

格納先のディクショナリ変数名を「dicFileName」とした場合、以下のように記述するとそれぞれ、ファイル名と拡張子を呼び出すことが出来ます。

$dicFileName{name}$
$dicFileName{extension}$

応用編: 特定の文字列が含まれるファイル名にだけ処理を行う (Ifアクションとの組み合わせ)

今回の対象のフォルダには以下のファイルがありますが、特定の文字列を含むファイルだけ処理したい場合について解説します。

  • test.csv
  • DestinationFile.xlsx
  • temp.xlsx
  • Temp.csv
  • blank.xlsx

例えば、上記でファイル名に「Destination」を含むファイルのみ処理したい場合、先ほど作成したBotにIfアクションを1つ追加すれば実現可能です。

応用編手順 1. Ifアクションを追加する

image.png

応用編手順 2. Ifアクションを設定する

まず、条件の「ディクショナリ」-> 「シングル値をチェック」を選びます。
image.png

以下のように設定します。
image.png

応用編手順 3. Ifアクションの中に実行したい処理を入れる

これで完成です。
image.png

応用編手順 4. 実行してみる

実行ボタンを押してみましょう。
1回だけメッセージボックスが表示され、DestinationFile.xlsxのファイル名が表示されました。
image.png

実際は行いたい処理をメッセージボックスの代わりに入れますので、例えば、特定の文字列を含むこのファイルを読み込んでシステムへ登録する。といった事がこれで可能になります。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?