【Power Automate】インスタントクラウドフローでOneDriveのファイルを移動

Power Automate
この記事は約8分で読めます。

※本記事は、Power Automate基礎習得パス(#PA基礎)の第3弾です。


インスタントクラウドフローは、「実行」ボタンを手動でクリックすることにより任意のタイミングでフローを実行します。


インスタントクラウドフローで「月末提出物」フォルダにある添付ファイルを「月末提出物_過去分」フォルダに移動するフローを作成しながら、Power Automateの基本をマスターしましょう!


今回解説する「動的なコンテンツ」や「For each」は、仕組みを理解し利用できるようになることで、作成できるフローの幅がぐーーーんと広がります。

この記事でわかること
  • 3種のフロー (自動化 / スケジュール / インスタント) の内、「インスタントフロー」の利用方法
  • 「動的なコンテンツ」とは
  • 繰り返し処理 (for each) の仕組み



作成するフローの内容

本記事では、下記のフローを作成します。
※フォルダはOneDriveフォルダを利用します

インスタントフロでフローを手動で実行し、月末提出物フォルダ内のファイルを過去分フォルダに移動


 フロー全体のショット

今回作成するフローはこのような形です。


 

事前準備

OneDriveフォルダ内に、①移動前のフォルダ と ②移動後のフォルダ を用意します。
本記事では、「月末提出物」フォルダと「月末提出物_過去分」フォルダを用意しました。



移動前のフォルダ内には、移動対象ファイルがあることをご確認ください。


インスタントクラウドフローを作成してみよう

自分の好きなタイミングでフローを実行したい場合、「インスタントクラウドフロー」を利用します。
Power Automateの「作成」ボタンより、「インスタントクラウドフロー」を選択しましょう。



「フローを手動でトリガーする」にチェックを入れ、「作成」をクリックします。

今回の解説ではフローの編集画面でフロー名をつけます。
もちろん、上記の画面でフロー名をつけてもOKです。


「フォルダー内のファイルのリスト」アクションの追加

本フローでは「月末提出物」フォルダ内に入っている全てのファイルを移動したいです。
そのため、フォルダ内にあるファイルの一覧情報を取得するアクションを追加する必要があります。


そこで、「フォルダー内のファイルのリスト」アクションを利用します。
このアクションを利用することで、指定したフォルダ内にあるファイルとサブフォルダの一覧を取得できます。


編集画面の「+」ボタンより「アクションの追加」を選択します。



OneDrive for Businessを選択します。

OneDrive(個人用)とOneDrive for Business(組織用)の選択を間違えないように気を付けてください。



「フォルダー内のファイルとリスト」をクリックします。



フォルダアイコンより、対象フォルダを選択します。



フォルダのパスが自動で入力されました。


 

「ファイルの移動または名前変更」アクションの追加

ファイルを移動するためのアクションとして、「ファイルの移動または名前変更」アクションを追加します。
前ステップ同様、「+」ボタンの「アクションの追加」より、OneDrive for Businessを選択します。



「ファイルの移動または名前変更」を選択します。



そうすると、「ファイル」の項目で「ファイルの一意識別子」を入力するように求められます。
「フォルダ内のファイルのリスト」アクションではフォルダアイコンから指定しましたが、
今回の場合「月末提出物」フォルダ内のファイル全部を一つずつ選択なんて面倒なことしてられません。



せっかく「フォルダ内のファイルのリスト」アクションでファイルの一覧情報を取得できるので、そこで取得した情報を利用してファイルの指定をしたいところです。
そこで利用できるのが、「動的なコンテンツ」です。

「動的なコンテンツ」を利用して移動対象のファイルを指定

「動的なコンテンツ」とは、Power Automateが取得した動的な情報のことです。
トリガーや前のアクションで取得したデータを利用することができます。


例えば今回のフローでは、「フォルダ内のファイルのリスト」アクションで、Power Automateが「月末提出物」フォルダ内のファイル一覧を自動で取得してくれます。


対象フォルダ内のファイルを編集・削除しても、フォルダに他のファイルを追加したとしても、フローを実行する度にPower Automateはいつも最新のファイルの一覧情報を取得してくれます。



それでは、動的なコンテンツを利用して「月末提出物」フォルダ内にあるファイルを指定しましょう。
「ファイル」の項目にカーソルを入れると、「⚡」アイコンが表示されるので、クリックします。
この⚡マークが動的なコンテンツのマークです。



「フォルダー内のファイルのリスト」の一覧に「ID」や「名前」、「パス」などがあります。
この一覧は全て、「フォルダー内のファイルのリスト」アクションでPower Automateが取得できる情報です。
ここでは「ファイルの一意識別子」とある通り、一意識別子 = ID を入力する必要があります。
そのため、「ID」を選択しましょう。



選択後、「ID」と記載されたラベルが自動で表示されました。



同時に、「For each」アクションが自動的についたことがわかります。



この「For each」は、Power Automateを利用する上で欠かせない、「繰り返し処理」の1つです。
詳しく解説していきます。
 
 

For each の仕組み

「For each」は、前述の通り、繰り返し処理で利用されるアクションの1つです。
For each内に入っている全てのアクションに対し、繰り返し処理が実行されます。




例えば今回のフローでは「フォルダー内のファイルのリスト」で取得した全てのファイルを移動したいです。
そこで「For each」を利用すると、フォルダ内のファイル1つ1つに「ファイルの移動」アクションを実行することができます。



「ファイルの移動」アクションではファイルIDが必要のため、動的なコンテンツより「ID」を選択しました。
そうすると、自動的にFor eachアクションが適用されました。


このように動的なコンテンツより選択したものが複数ある要素の場合、自動的にFor eachが追加されますので、「繰り返し処理が適用されたのだな」、と思っていただけたらと思います。

「For each」は「Apply to each」、「それぞれに適用する」と言われることもありますが、全て同じ機能です。


 

文字列と動的なコンテンツを組み合わせてファイルのパスを指定

ファイルIDの指定が完了したら、今度は移動先のパスを指定します。
説明文を見ると、移動先のフォルダパスまでではなく、ファイル名を含めたパスを入力する必要があるようです。



フォルダIDを指定した際と同様、ファイル名を一つずつ指定するなんて面倒なことしてられません。
そのため、文字列と動的なコンテンツを組み合わせてパスを指定しましょう。


まずは、対象フォルダまでのパスを入力します。
エクスプローラーを開き、「OneDrive-XX」より下の赤枠部分のパスを入力します。



このような形で「/」でつなぎ、フォルダパスを指定します。
先頭の「/」も忘れずに入力してください。



続いて、ファイル名は動的なコンテンツを用いて指定します。
フォルダパスの末尾に「/」を入力した後、「⚡」より「名前」を選択します。



完成はこのような形です。


フローの保存とテスト

保存する前に、フローに名前をつけましょう。
こちらの赤枠箇所をクリックします。



なんのフローなのか、後で見た時に思い出しやすいフロー名をつけてください。



フロー名の変更が完了したら、テストを実行してください。
実行方法が不明な場合は、こちらを参照ください。


テストに成功したら、対象ファイルが全て移動先フォルダに移動したことを確認ください。


インスタントフローの実行方法

テストを完了したのは良いものの、次回実際に実行したい場合はどうすれば良いの?
と思う人もいるのではないでしょうか。


Power Automateの「マイフロー」より、作成したフロー一覧が確認できます。



対象のフロー上にマウスを重ねると、「実行」ボタンが表示されるので、ここから実行してください。