今回はユーザー側が複数のファイルを選択して、Power Automate Desktopにファイルを取り込む方法をご紹介します。
最初に使用するアクションとフローの完成形を見てみます。
使用するアクション
- カスタムフォームを表示
- 新しいリストの作成
- If
- Else
- ループを抜ける
- 項目をリストに追加
- 変数の設定
- ループ条件
フローの完成形
今回は3つのExcelブックをPower Automate Desktopに取り込みます。
フローの実行動画
1.カスタムフォームを表示
「カスタムフォームを表示」アクションを使用して、ファイルを選択できるフォームを作成します。
1.アクションの「メッセージボックス」から「カスタムフォームを表示」をワークスペースにドラッグします。
2.パラメータ選択の「カスタムフォームデザイナー」をクリックします。
3.フォーム要素の「入力」「要素」「アクション」から必要な要素をドラッグします。
今回使用するフォームの要素は
・テキストブロック(フォームのタイトルに使用)
・ファイル入力(最初と2番目のファイルを選択)
・切り替え入力(さらに別のファイルを選択する)
・送信(ファイル選択後の処理)
テキストブロック
フォーム内容をタイトルでお知らせします。
必要な項目を入力します。
ID:Title
テキスト:PADに読み取るファイルを選択してください。
太さ:ボルダー
ファイル入力
最初と2番目のファイルを選択できるように「ファイル入力」を設置します。
ID:FirstFile
ラベル:最初のファイルを選択します。
検証:必須
エラーメッセージ:ファイルが選択されていません。
ファイルを選択しないで、「OK」ボタンを押した場合にエラーメッセージが表示できるように設定します。
ID:SecondFile
ラベル:2番目のファイルを選択します。
検証:必須
エラーメッセージ:ファイルが選択されていません。
切り替え入力
変数に値のTrueが含まれている場合、別のファイルを選択するように設定します。
ID:AnotherFile
タイトル:さらに別のファイルを選択しますか?
有効時の値:True
無効時の値:False
送信
フォームの最後に「送信」ボタンを押して処理を実行します。
ID:Submit
タイトル:Ok
フロー実行後の変数の値
※さらに別のファイルを選択した場合「AnotherFile」がTrueになります。
2.新しいリストの作成
「新しいリストの作成」で作成した変数に「カスタムフォームを表示」で選択したファイルを取り込みます。
1.アクションの「変数」から「新しいリストの作成」をワークスペースにドラッグします。
2.変数を「File」に変更します。
※自分で解りやすい変数名に変更します。
フローの実行後の変数の値
3.If
次に、上記の「カスタムフォームを表示」で作成したフォームをキャンセルした場合に、それ以降の処理を行わないようにIFで処理します。
1.アクションの「条件」から「If」をドラッグします。
・最初のオペランド:カスタムフォームを表示で生成された変数 %ButtonPressed% を入力します。
{☓}から選択することが出来ます。
・演算子:と等しくない(<>) を選択します。
・2番目のオペランド:Cancel と入力します。
IFの条件分岐で、キャンセルではない(等しくない)場合に処理が実行されます。
キャンセルした場合は、処理が中断されます。
4~5.項目をリストに追加
カスタムフォームを表示した後、選択したファイルを「新しいリストの作成」で作成したリストに保存します。
1.アクションの「変数」から「項目をリストに追加」をドラッグします。
「カスタムフォームを表示」で生成された変数%CustomFormData[‘FirstFile’]%に入っているファイルを「新しいリストの作成」で作成した%File%に格納します。
「カスタムフォームを表示」で生成された変数%CustomFormData[‘SecondFile’]%に入っているファイルを「新しいリストの作成」で作成した%File%に格納します。
6.変数の設定
「カスタムフォームを表示」で生成された変数%CustomFormData[‘AnotherFile’]%を変数の設定でAnotherFileに値(TrueかFalse)を設定して、AnotherFile変数に値Trueが含まれている限り、ループを繰り返すように設定します。
1.アクションの「変数」から「変数の設定」をドラッグします。
「カスタムフォームを表示」で生成された変数%CustomFormData[‘AnotherFile’]%を変数の設定でAnotherFileに値を設定します。
後でIFのアクションを使用して、Trueで処理を実行して別のファイルを選択できるようにします。
7.ループ条件
AnotherFile変数に値のTrueが含まれている限り、ループを繰り返すようにします。
1.アクションの「ループ」から「ループ条件」をドラッグします。
・最初のオペランド:True
・演算子:と等しい(=) を選択します。
・2番目のオペランド:True
8.If
最初の2つのファイルだけ選択して、3つ目のファイルを選択しなかった場合に、「別のファイルを選択する」のループから抜けるか、さらに別のファイルを選択した場合の処理の設定を行います。
AnotherFileにTrueが格納されている場合にファイルの選択を求める処理を行います。
1.アクションの「条件」から「If」をドラッグします。
・最初のオペランド:変数の設定で設定した変数 %AnotherFile% を入力します。
{☓}から選択することが出来ます。
・演算子:と等しい(=) を選択します。
・2番目のオペランド:Trueと入力します。
9.カスタムフォームを表示
別のファイルを選択できるようにします。
1.アクションの「メッセージボックス」から「カスタムフォームを表示」をワークスペースにドラッグします。
2.パラメータ選択の「カスタムフォームデザイナー」をクリックします。
ID:AdditionalFile
ラベル:別のファイルを選択してください。
検証:必須
ID:AnotherFile
ラベル:別のファイルを選択しますか?
タイトル:はい
有効時の値:True
無効時の値:False
ID:Submit
タイトル:Ok
フロー実行時の変数の値
※別のファイルを選択しなかった場合:Falseになります。
10.項目をリストに追加
カスタムフォームを表示した後、選択したファイルをリストに保存します。
1.アクションの「変数」から「項目をリストに追加」をドラッグします。
「カスタムフォームを表示」で生成された変数%CustomFormData2[‘AdditionalFile’]%に入っているファイルを「新しいリストの作成」で作成した%File%に格納します。
11.変数の設定
2回目の「カスタムフォームを表示」で生成された変数%CustomFormData2[‘AnotherFile’]%を変数の設定でAnotherFileに値(TrueかFalse)を設定して、AnotherFile変数に値Trueが含まれている限り、ループを繰り返すように設定します。
1.アクションの「変数」から「変数の設定」をドラッグします。
「カスタムフォームを表示」で生成された変数%CustomFormData2[‘AnotherFile’]%を変数の設定でAnotherFileに値を設定します。
12~13.Elseとループを抜ける
4つ目のファイルを選択しなかった場合に、「別のファイルを選択する」のループから抜けます。
1.アクションの「条件」から「Else」をドラッグします。
2.アクションの「ループ」から「ループを抜ける」をドラッグします。
14~16.End
最後にIfとループ条件の配置を確認します。
フローの実行
フローの実行後、変数「File」に選択したファイルが格納されました。