トップページ › Forums › Q&A › 超初心者向け › For eachについて › 返信先: For eachについて
-
コメント失礼いたします!
Excel内に作成したいフォルダ名が並んで記載されている場合、
「Excelワークシートから読み取る」でフローを作成できるかと存じます。取得:ワークシートに含まれる使用可能なすべての値
生成された変数:ExcelData上記の設定で、データテーブル型のExcelDataには、下記のようになります。
※A1のセルにABC-A、
A2のセルにDEF-Aのように縦に並んでいる場合、#|Column1
0|ABC-A
1|DEF-A
2|GHI-A
3|JKL-A
…次に「For each」アクションを使用し、
反復処理を行う値:%ExcelData%を設定します。「For each」と「End」の間に「フォルダの作成」アクションを挟みます。
※「For each」アクションで生成される変数:%CurrentItem%は、
ABC-Aから降順に入れ替わり最後まで処理を行います。パラメーター
新しいフォルダ-を次の場所に作成:作成したいフォルダーパスを指定
新しいフォルダー名:%CurrentItem%上記の方法でフォルダを作成できるかと存じます。
ーーーーーーーーーーーーーーーーー
【画像の振り分けについて】
画像の格納されているフォルダが一箇所であれば、「フォルダ-内のファイルを取得」アクションで、振り分ける画像の情報をまとめて取得できます。パラメーターのファイルフィルターで取得したい画像の形式合わせて絞り込むことができます。
※png形式の画像の場合
パラメーター
ファイルフィルター:*.png
生成された変数:Files#|アイテム
0|C:Users\ユーザー名\Desktop\振り分け用\画像データ¥ABC-A.png
1|C:Users\ユーザー名\Desktop\振り分け用\画像データ¥DEF-A.png
2|C:Users\ユーザー名\Desktop\振り分け用\画像データ¥GHI-A.png
3|C:Users\ユーザー名\Desktop\振り分け用\画像データ¥JKL-A.png
…次に、先に作成したフォルダに画像を振り分けていきます。
「フォルダ内のサブフォルダーを取得」アクションで、新しいフォルダを作成した階層を指定し、フォルダの情報を取得します。パラメーター
フォルダ-:新しいフォルダを作成した階層パスを指定
生成された変数:Folders#|アイテム
0|C:Users\ユーザー名\Desktop\振り分け用\ABC-A
1|C:Users\ユーザー名\Desktop\振り分け用\DEF-A
2|C:Users\ユーザー名\Desktop\振り分け用\GHI-A
3|C:Users\ユーザー名\Desktop\振り分け用\JL-A
…
これにより、画像のパスと格納先のフォルダパスを取得できました。ここから、取得した画像リスト(Files)に対して「For each」アクションを使用します。
パラメーター
反復処理を行う値:%Filse%
保存先:CurrentItem2続けて、「For each」アクションを使用します。
今度は、取得したフォルダリスト(Folders)を設定します。反復処理を行う値:%Folders%
保存先:CurrentItem3 ※同じ変数名には自動的に末尾に数字が付き区別されます。さらにその中に、「if」アクションを設定します。
パラメーター
最初のオペランド:%CurrentItem2.NameWithoutExtension%
演算子:次を含む
2番目のオペランド:%CurrentItem3.name%%Currentltem2.NameWithoutExtension%⇒ABC-A
%CurrentItem3.Name%⇒ABC-A
(CurrentItem3は、フォルダのため拡張子はありません)※補足
.FullName ⇒ファイルのフルパス。
.Name ⇒拡張子を含むファイル名。
.NameWithoutExtension ⇒拡張子を含まないファイル名。フォルダ名に対して、ファイル名が含まれているかを判定しています。
次に「if」アクションの間に「ファイルの移動」アクションを入れます。
これにより、ファイル名が含まれていた場合、フォルダに格納されます。パラメーター
移動するファイル:%Currentltem2.name%
宛先フォルダ-:
C:\Users\ユーザー名\Desktop\振り分け用\%CurrentItem3.Name%
ファイルが存在する場合:何もしない
生成された変数:MovedFiles【重要】
ファイルの移動と合わせて、「ループを抜ける」アクションを設定します。これにより、画像ファイル1つを対象として、
ファイル名と各フォルダ名を比較し、フォルダ名にファイル名が含まれなければ、
次のフォルダ名と比較し、一致する場合は、「ファイルの移動」アクションにより画像ファイルを格納し、「ループを抜ける」で次の画像ファイル処理に移行します。※「ループを抜ける」一つのループから抜けます。
文章のみ、かつ長文で恐れ入りますが、
お役立ちできれば、幸いでございます。よろしくお願いいたします。