Power Automate Desktop 複数のExcelブックからExcel転記

タイトル画像
スポンサーリンク
スポンサーリンク
ピピンプイ
ピピンプイ

今回は別の記事に掲載している複数のファイルを取り込むにフローを追加し、複数のExcelブックからセル内容をデスクトップ用PowerAutomateに読み取り、別のExcelブックのセルに転記する方法をご紹介します。

例として、納品した商品一覧のExcelブックから、別のExcelブックの納品書に品名、合計数量、単価、合計金額を転記する方法を掲載しています。

3つのExcelブックの納品内訳を、1つのExcelブックの納品書に転記します。

Excelブック商品A
納品書に転記

追加するフロー

複数フィルに追加するExcel転記のフロー
実行動画

1.使用するExcelブック

今回は例として、毎月の納品一覧表から別の納品書に転記する方法をご紹介します。

別々のExcelブックに保存されている納品一覧表の品名、合計数量、単価、合計金額を別のExcelブックの納品書に転記していきます。

Excelブックのワークシートを全て検索し、該当箇所をPowerAutomateに読み取り、転記します。

納品一覧表(転記するExcelブック)

Excelブック商品A

Excelブック商品123(ワークシート名が商品1、商品2、商品3)

Excelブック商品1
Excelブック商品2
Excelブック商品3

Excelブック商品ABC(ワークシート名が商品A、商品B、商品C)

Excelブック商品A
Excelブック商品B
Excelブック商品C

Excelブック商品あいう(ワークシート名が商品あ、商品い、商品う)

Excelブック商品あ
Excelブック商品い
Excelブック商品う

納品書(転記先のExcelブック)

3つのExcelブックのセル内容を、1つのExcelブックの納品書に転記します。

納品書に転記

2.複数のExcelブックを読み取る(フロー番号1~16)

別の記事に掲載されている「複数のファイルを取り込む」を参照してフローを構築します。

複数のファイルを取り込む

カスタムフォームから転記元のExcelブック(納品一覧表)を選択するフローを構築します。

3.Excelの起動(フロー番号17)転記先のExcelブック

アクション「Excelの起動」で納品一覧表に記載されている内容を転記するために、転記先のExcelブック(納品書)を開きます。

納品一覧表に記載されている内容を転記するために納品書を開きます。

納品書に転記
追加するアクション
Excelの起動のアクション

1.アクションの「Excel」から「Excelの起動」をワークスペースにドラッグ&ドロップします。

Excelの起動(納品書)

Excelの起動:次のドキュメントを開く
ドキュメントパス:転記先のExcelブックの保存先を指定します。

生成された変数をExcelに変更します。
(自分で判りやすい変数名に変更できます。)

4.変数の設定(フロー番号18)

後でフロー番号25のアクション「Excelワークシートに書き込む」の設定時に、「行」の項目で使用します。

納品書のセルB13から書き込みを開始し、次の「」(B14)に自動で移動するように変数を設定します。

追加するアクション
変数の設定

1.アクションの「変数」から「変数の設定」をワークスペースにドラッグ&ドロップします。

変数の設定

変数:NewVar
変数名を変更したい場合は、NewVarをクリックして変数名を入力して変更します。

値:13
セルB13から書き込むので、行の値を13に設定します。

5.Loop(フロー番号19)

Excelブックの数だけ「ループ」で繰り返します。

追加するアクション
Loop

1.アクションの「ループ」から「Loop」をワークスペースにドラッグ&ドロップします。

18のLoopを追加

開始値:0
終了:%File.Count-1%
増分:1

6.Excelの起動(フロー番号20)転記元のExcelブック

カスタムフォームで選択したExcelブック(納品一覧表)が、新しいリストで作成した変数「File」に格納されているので、Excelの起動で開きます。

追加するアクション
Excelの起動

1.アクションの「Excel」から「Excelの起動」をワークスペースにドラッグ&ドロップします。

19のExcelの起動の内容を変更

ドキュメントパス:%File[LoopIndex]%
変数はそのまま使用します。

7.すべてのExcelワークシートの取得(フロー番号21)

Loopアクションでワークシートの数だけ、ループ処理してExcelData(納品一覧表)を読み取るため、「すべてのExcelワークシートの取得」から生成されたSheetNames.Countを取得します。

SheetNames.Countにはワークシートの数が格納されているので、その数を利用してループ回数を自動で決定します。

追加するアクション
すべてのExcelワークシートの取得

1.アクションの「Excel」の「詳細」から「すべてのExcelワークシートの取得」をワークスペースにドラッグ&ドロップします。

すべてのExcelワークシートの取得

Excelインスタンス:%ExcelInstance%

8.Loop(フロー番号22)

LoopアクションでExcelブック(納品一覧表)のワークシートの数だけ、ループ処理します。

追加するアクション
Loop

1.アクションの「ループ」から「Loop」をワークスペースにドラッグ&ドロップします。

Loopのパラメータの選択

開始値:

次と共にワークシートをアクティブ化」をインデックスに設定する場合、インデックス番号は1から始まりますので、開始値に1を入力します。

アクティブなExcelワークシートの設定

終了:%SheetNames.Count%

SheetNames.Countのカウント数だけ、ループさせます。

%SheetNames.Count%の選択方法
①パラメータ選択の終了:右側の{☓}をクリックします。
②SheetNamesの▷をクリックします。
③.Countをクリックして選択した状態にします。
④選択をクリックします。

SheetNames.Countを選択します。

増分:1
ループの数を1ずつ増やしていきます。

フロー番号23で使用する「アクティブなExcelワークシートの設定」のワークシートインデックスに今回生成された変数LoopIndexを使用します。

9.アクティブなExcelワークシートの設定(フロー番号23)

Excelブックから読み取りたい、ワークシートを設定します。

今回は全てのワークシートからExcelDataを取得します。

追加するアクション
アクsティブなExcelワークシートの設定

1.アクションの「Excel」から「アクティブなExcelワークシートの設定」をワークスペースにドラッグ&ドロップします。

アクティブなExcelワークシートの設定

Excelインスタンス:%ExcelInstance%

次と共にワークシートをアクティブ化:インデックス
ワークシートを左から順番にインデックス番号で開いていきます。

ワークシートインデックス:%LoopIndex%
すべてのワークシートを開くために、ワークシートインデックスにLoopで生成された変数LoopIndexを使用し、ループの回数でインデックスの番号を取得します。

10.Excelワークシートから読み取る(フロー番号24)

Excelブックのワークシートから、読み取りたいセル範囲を設定します。

追加するアクション
Excelワークシートから読み取る

1.アクションの「Excel」から「Excelワークシートから読み取」をワークスペースにドラッグ&ドロップします。

Excelワークシートから読み取る

今回はセル範囲「B25からE25」のセル内容を取得します。

Excelブック商品あ

Excelインスタンス:%ExcelInstance%
取得:セル範囲の値
先頭列:B
先頭行:25
最終列:E
最終行:25

11.Excelワークシートに書き込む(フロー番号25)

納品一覧表に記載されている内容を納品書に転記していきます。

セルのB13から行単位で転記していきます。

納品書に転記
追加するアクション
Excelワークシートに書き込む

1.アクションの「Excel」から「Excelワークシートに書き込む」をワークスペースにドラッグ&ドロップします。

Excelワークシートに書き込む

Excelインスタンス:%Excel%
フロー番号17「Excelの起動」で設定した変数Excelを入力します。

書き込む値:%ExcelData.ColumnHeadersRow%

行単位で転記するために、ExcelData.ColumnHeadersRowを使用します。
ColumnHeadersRowには、行単位のデータが格納されています。

ExcelData.ColumnHeadersRowを設定

書き込みモード:指定したセル上
列:B
行:%NewVar%
フロー番号18の「変数の設定」で設定した変数を使用します。

12.変数を大きくする(フロー番号26)

上記のExcelワークシートに書き込む(フロー番号25)で設定した行:%NewVar%に「変数を大きくする」でLoopする都度NewVarに+1していき、行番号を増やしていきます。

行番号を増やすことで、次の「」(B14)に自動で移動するように設定します。

追加するアクション
変数を大きくする

1.アクションの「変数」から「変数を大きくする」をワークスペースにドラッグ&ドロップします。

変数を大きくする

変数名:%NewVar%

大きくする数値:1

13.End(フロー番号27)

フロー番号27にEndを持っていきます。

LoopからEndまで

14.Excelを閉じる(フロー番号28)

カスタムフォームから選択したExcelブック(納品一覧表)を閉じます。

追加するアクション
Excelを閉じる

1.アクションの「Excel」から「Excelを閉じる」をワークスペースにドラッグ&ドロップします。

Excelを閉じる

Excelインスタンス:%ExcelInstance%
Excelを閉じる前:ドキュメントを保存しない

15.End(フロー番号29)

フロー番号19のLoopのEndをフロー番号29に持っていきます。

16.フローの完成

複数のエクセルブックの読み取り完成フロー
複数フィルに追加するExcel転記のフロー

17.関連記事

1つのExcelブックの転記方法は別記事に掲載しています。

Power Automate DesktopにExcelデータを取り込み、別のExcelブックに様式を作成しておき、そこに取り込んだExcelのデータを転記する方法をご紹介します。

複数ファイルの取扱については、こちらの記事をご参照願います。

次回はExcelブックの納品一覧から、別のExcelブックの請求書に自動で転記する方法をご紹介します。
納品数が多く1枚の請求書では書ききれない場合に、自動で2枚目の請求書に転記する方法もご紹介します。

次回の記事はこちら:複数のExcelブックから複数の様式にExcel転記

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