今回は別の記事に掲載している「複数のファイルを取り込む」にフローを追加し、複数のExcelブックからセル内容をデスクトップ用PowerAutomateに読み取り、別のExcelブックのセルに転記する方法をご紹介します。
例として、納品した商品一覧のExcelブックから、別のExcelブックの納品書に品名、合計数量、単価、合計金額を転記する方法を掲載しています。
3つのExcelブックの納品内訳を、1つのExcelブックの納品書に転記します。
別の記事に掲載されている「複数のファイルを取り込む」のフローを使用します。
追加するフロー
- 1.使用するExcelブック
- 2.複数のExcelブックを読み取る(フロー番号1~16)
- 3.Excelの起動(フロー番号17)転記先のExcelブック
- 4.変数の設定(フロー番号18)
- 5.Loop(フロー番号19)
- 6.Excelの起動(フロー番号20)転記元のExcelブック
- 7.すべてのExcelワークシートの取得(フロー番号21)
- 8.Loop(フロー番号22)
- 9.アクティブなExcelワークシートの設定(フロー番号23)
- 10.Excelワークシートから読み取る(フロー番号24)
- 11.Excelワークシートに書き込む(フロー番号25)
- 12.変数を大きくする(フロー番号26)
- 13.End(フロー番号27)
- 14.Excelを閉じる(フロー番号28)
- 15.End(フロー番号29)
- 16.フローの完成
- 17.関連記事
1.使用するExcelブック
今回は例として、毎月の納品一覧表から別の納品書に転記する方法をご紹介します。
別々のExcelブックに保存されている納品一覧表の品名、合計数量、単価、合計金額を別のExcelブックの納品書に転記していきます。
Excelブックのワークシートを全て検索し、該当箇所をPowerAutomateに読み取り、転記します。
納品一覧表(転記するExcelブック)
Excelブック商品123(ワークシート名が商品1、商品2、商品3)
Excelブック商品ABC(ワークシート名が商品A、商品B、商品C)
Excelブック商品あいう(ワークシート名が商品あ、商品い、商品う)
納品書(転記先のExcelブック)
3つのExcelブックのセル内容を、1つのExcelブックの納品書に転記します。
2.複数のExcelブックを読み取る(フロー番号1~16)
別の記事に掲載されている「複数のファイルを取り込む」を参照してフローを構築します。
カスタムフォームから転記元のExcelブック(納品一覧表)を選択するフローを構築します。
3.Excelの起動(フロー番号17)転記先のExcelブック
アクション「Excelの起動」で納品一覧表に記載されている内容を転記するために、転記先のExcelブック(納品書)を開きます。
納品一覧表に記載されている内容を転記するために納品書を開きます。
1.アクションの「Excel」から「Excelの起動」をワークスペースにドラッグ&ドロップします。
Excelの起動:次のドキュメントを開く
ドキュメントパス:転記先のExcelブックの保存先を指定します。
生成された変数をExcelに変更します。
(自分で判りやすい変数名に変更できます。)
4.変数の設定(フロー番号18)
後でフロー番号25のアクション「Excelワークシートに書き込む」の設定時に、「行」の項目で使用します。
納品書のセルB13から書き込みを開始し、次の「行」(B14)に自動で移動するように変数を設定します。
1.アクションの「変数」から「変数の設定」をワークスペースにドラッグ&ドロップします。
変数:NewVar
変数名を変更したい場合は、NewVarをクリックして変数名を入力して変更します。
値:13
セルB13から書き込むので、行の値を13に設定します。
5.Loop(フロー番号19)
Excelブックの数だけ「ループ」で繰り返します。
1.アクションの「ループ」から「Loop」をワークスペースにドラッグ&ドロップします。
開始値:0
終了:%File.Count-1%
増分:1
6.Excelの起動(フロー番号20)転記元のExcelブック
カスタムフォームで選択したExcelブック(納品一覧表)が、新しいリストで作成した変数「File」に格納されているので、Excelの起動で開きます。
1.アクションの「Excel」から「Excelの起動」をワークスペースにドラッグ&ドロップします。
ドキュメントパス:%File[LoopIndex]%
変数はそのまま使用します。
7.すべてのExcelワークシートの取得(フロー番号21)
Loopアクションでワークシートの数だけ、ループ処理してExcelData(納品一覧表)を読み取るため、「すべてのExcelワークシートの取得」から生成されたSheetNames.Countを取得します。
SheetNames.Countにはワークシートの数が格納されているので、その数を利用してループ回数を自動で決定します。
1.アクションの「Excel」の「詳細」から「すべてのExcelワークシートの取得」をワークスペースにドラッグ&ドロップします。
Excelインスタンス:%ExcelInstance%
8.Loop(フロー番号22)
LoopアクションでExcelブック(納品一覧表)のワークシートの数だけ、ループ処理します。
1.アクションの「ループ」から「Loop」をワークスペースにドラッグ&ドロップします。
開始値:1
「次と共にワークシートをアクティブ化」をインデックスに設定する場合、インデックス番号は1から始まりますので、開始値に1を入力します。
終了:%SheetNames.Count%
SheetNames.Countのカウント数だけ、ループさせます。
%SheetNames.Count%の選択方法
①パラメータ選択の終了:右側の{☓}をクリックします。
②SheetNamesの▷をクリックします。
③.Countをクリックして選択した状態にします。
④選択をクリックします。
増分:1
ループの数を1ずつ増やしていきます。
フロー番号23で使用する「アクティブなExcelワークシートの設定」のワークシートインデックスに今回生成された変数LoopIndexを使用します。
9.アクティブなExcelワークシートの設定(フロー番号23)
Excelブックから読み取りたい、ワークシートを設定します。
今回は全てのワークシートからExcelDataを取得します。
1.アクションの「Excel」から「アクティブなExcelワークシートの設定」をワークスペースにドラッグ&ドロップします。
Excelインスタンス:%ExcelInstance%
次と共にワークシートをアクティブ化:インデックス
ワークシートを左から順番にインデックス番号で開いていきます。
ワークシートインデックス:%LoopIndex%
すべてのワークシートを開くために、ワークシートインデックスにLoopで生成された変数LoopIndexを使用し、ループの回数でインデックスの番号を取得します。
10.Excelワークシートから読み取る(フロー番号24)
Excelブックのワークシートから、読み取りたいセル範囲を設定します。
1.アクションの「Excel」から「Excelワークシートから読み取る」をワークスペースにドラッグ&ドロップします。
今回はセル範囲「B25からE25」のセル内容を取得します。
Excelインスタンス:%ExcelInstance%
取得:セル範囲の値
先頭列:B
先頭行:25
最終列:E
最終行:25
11.Excelワークシートに書き込む(フロー番号25)
納品一覧表に記載されている内容を納品書に転記していきます。
セルのB13から行単位で転記していきます。
1.アクションの「Excel」から「Excelワークシートに書き込む」をワークスペースにドラッグ&ドロップします。
Excelインスタンス:%Excel%
フロー番号17「Excelの起動」で設定した変数Excelを入力します。
書き込む値:%ExcelData.ColumnHeadersRow%
行単位で転記するために、ExcelData.ColumnHeadersRowを使用します。
ColumnHeadersRowには、行単位のデータが格納されています。
書き込みモード:指定したセル上
列:B
行:%NewVar%
フロー番号18の「変数の設定」で設定した変数を使用します。
12.変数を大きくする(フロー番号26)
上記のExcelワークシートに書き込む(フロー番号25)で設定した行:%NewVar%に「変数を大きくする」でLoopする都度NewVarに+1していき、行番号を増やしていきます。
行番号を増やすことで、次の「行」(B14)に自動で移動するように設定します。
1.アクションの「変数」から「変数を大きくする」をワークスペースにドラッグ&ドロップします。
変数名:%NewVar%
大きくする数値:1
13.End(フロー番号27)
フロー番号27にEndを持っていきます。
14.Excelを閉じる(フロー番号28)
カスタムフォームから選択したExcelブック(納品一覧表)を閉じます。
1.アクションの「Excel」から「Excelを閉じる」をワークスペースにドラッグ&ドロップします。
Excelインスタンス:%ExcelInstance%
Excelを閉じる前:ドキュメントを保存しない
15.End(フロー番号29)
フロー番号19のLoopのEndをフロー番号29に持っていきます。
16.フローの完成
17.関連記事
1つのExcelブックの転記方法は別記事に掲載しています。
Power Automate DesktopにExcelデータを取り込み、別のExcelブックに様式を作成しておき、そこに取り込んだExcelのデータを転記する方法をご紹介します。
複数ファイルの取扱については、こちらの記事をご参照願います。
次回はExcelブックの納品一覧から、別のExcelブックの請求書に自動で転記する方法をご紹介します。
納品数が多く1枚の請求書では書ききれない場合に、自動で2枚目の請求書に転記する方法もご紹介します。
次回の記事はこちら:複数のExcelブックから複数の様式にExcel転記