Power Automate Desktop 全てのワークシートからExcelDataを読み取る

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

前回は、Excelブックから1つのワークシートのExcelDataを読み取る方法をご紹介しました。前回の記事

今回は、Excelブックから全てのワークシートのExcelDataを読み取る方法をご紹介します。

使用するアクション

1.特別なフォルダーを取得
2.新しいリストの作成
3.Excelの起動
4.すべてのExcelワークシートの取得
5.Loop
6.アクティブなExcelワークシートの設定
7.Excelワークシートから読み取り
8.項目をリストに追加
9.End
10.Excelを閉じる

給与一覧のExcelブックから4月、5月、6月のワークシートをループ処理して、Power Automate Desktopに読み取ります。

使用するExcelブック

読み取りデータ4月
読み取りデータ5月
読み取りデータ6月
読み取りデータワークシート

すべてのワークシートからExcelDataを読み取り、変数に格納します。

ExceldataListの変数の値
ExceldataListの変数の値4月
ExceldataListの変数の値5月
ExceldataListの変数の値6月

作成するフロー

複数のExcelワークシートの読み取りフロー

順を追って説明します。

1.特別なフォルダーを取得

Excelブックの保存場所を指定します。

1.アクションの「フォルダー」から「特別なフォルダーを取得」をワークスペースにドラッグ&ドロップします。

特別なフォルダーを取得のパラメータ選択

私の場合はデスクトップのフォルダーにファイルを保存しているので、「特別なフォルダーの名前:デスクトップ」にしました。

特別なフォルダーを取得の詳しい説明は別の記事に掲載しております。該当記事はこちら

2.新しいリストの作成

Loopを使用して、ワークシートの数だけ読み取りを行うと、Loopする度に、ExcelDataが上書されてしまうので、「新しいリストの作成」で生成した変数にExcelDataを格納します。

7.で使用する「Excelワークシートから読み取り」で取得したExcelDataを、ワークシートの数だけ「新しいリストの作成」で生成された変数に追加するアクションを設定します。

1.アクションの「変数」から「新しいリストの作成」をワークスペースにドラッグ&ドロップします。

新しいリストの作成に変数名を入力する

※今回は区別しやすいように、生成された変数を任意の名前(ExcelDataList)に変更しました。

3.Excelの起動

Power Automate Desktopに読み取るExcelブックを選択します。

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

Excelの起動

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

すべてのExcelワークシートの取得からワークシートの数を取得します。

5.Loopアクションでワークシートの数だけ、ループ処理してExcelDataを取得するため、「すべてのExcelワークシートの取得」から生成されたSheetNames.Countを使用します。

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

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

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

フローの実行後

SheetNamesの変数の値

5.Loop

Loopアクションでワークシートの数だけ、ループ処理してExcelDataを取得します。

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

Loopのパラメータの選択

開始値:1
6.で使用する「アクティブなExcelワークシートの設定」のワークシートインデックスに今回生成された変数LoopIndexを使用します。

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

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

終了:%SheetNames.Count%

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

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

SheetNames.Countを選択します。

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

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

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

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

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

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

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

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

7.Excelワークシートから読み取り

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

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

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

取得:ワークシートに含まれる使用可能なすべての値

今回は単純な表形式で、タイトルや他に余計な数値も無いので、セル範囲ではなく、ワークシートに含まれる使用可能なすべての値を選択しました。

詳細:範囲の最初の行に列名が含まれています 

列名を取得したいので、チェックを入れます。

8.項目をリストに追加

Excelワークシートから読み取り」で取得した「ExcelData」を、ワークシートの数だけ「新しいリストの作成」で生成された変数ExcelDataList」に追加するアクションを設定します。

1.アクションの「変数」から「項目をリストに追加」をワークスペースにドラッグ&ドロップします。

項目リストに追加

項目の追加:%ExcelData%

追加先リスト:%ExcelDataList%

新しいリストの作成で別の変数名を入力した場合は、その変数名を入力して下さい。

フローの実行後、ExcelDataListにExcelDataが入ります。

ExceldataListの変数の値
ExceldataListの変数の値4月
ExceldataListの変数の値5月
ExceldataListの変数の値6月

9.End

LoopとEndの中に下記のアクションを移動させます。
アクティブなExcelワークシートの設定
Excelワークシートから読み取り
項目をリストに追加

ループ処理の終了

10.Excelを閉じる

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

Excelを閉じる

今回はドキュメントを保存しないでExcelを閉じます。

以上で複数のExcelワークシートをPower Automate Desktopに読み取る方法をご紹介しました。

次回は複数のExcelブックからワークシートのExcelDataを読み取る方法をご紹介します。

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