ExcelワークシートをPower Automate Desktopに読み取る方法をご紹介します。
使用するアクション
・特別なフォルダーを取得
・Excelの起動
・アクティブなExcelワークシートの設定
・Excelワークシートから最初の空の列や行を取得
・Excelワークシートから読み取り
・Excelを閉じる
順を追って説明します。
1.特別なフォルダーを取得
最初に特別なフォルダーを取得のアクションを設定しておきます。
1.アクションの「フォルダー」から「特別なフォルダーを取得」をワークスペースにドラッグ&ドロップします。
Excelブックの保存場所を指定します。
私の場合はデスクトップのフォルダーにファイルを保存しているので、「特別なフォルダーの名前:デスクトップ」にしました。
※特別なフォルダーを取得の詳しい説明は別の記事に掲載しております。該当記事はこちら
2.Excelワークシートの読み取り
次にExcelワークシートのセル内容をPower Automate Desktopに読み込みます。
例として上記のExcelブック(昇給表)を読み込みます。
アクションの流れは
1.Excelの起動
2.アクティブなExcelワークシートの設定
3.Excelワークシートから最初の空の列や行を取得
4.Excelワークシートから読み取り
5.Excelを閉じる
6.Excelデータの確認
順を追って説明します。
1.Excelの起動
1.アクションの「Excel」から「Excelの起動」を特別なフォルダーを取得の下にドラッグ&ドロップします。
2.Excelの起動が表示されたら、Excelの起動:の右にある下向きの矢印をクリックして、「次のドキュメントを開く」を選択します。
3.次にドキュメントパス:右側にある{×}をクリックします。
今回は「特別なフォルダーを取得」を使用してパスを入力します。
特別なフォルダーを取得で生成された変数:「SpecialFolderPath」をダブルクリックします。
ドキュメントパスに「SpecialFolderPath」が追加されました。
今回の場合はSpecialFolderPathが:\Users\〇〇〇〇\デスクトップの代わりになります。
4.次に%SpecialFolderPath%の後ろに、ファイルの置いてあるパス(ファイルの保存場所)を入力します。
ファイルの保存場所 %SpecialFolderPath%\PADフロー\昇給通知\昇給表.xlsx
(特別なフォルダ)\(フォルダ名)\(フォルダ名)\(ファイル名)
5.ドキュメントパスにExcelファイルの保存場所を指定したら、「保存」をクリックします。
生成された変数はExcelInstanceです。
この他にも、最初からExcelブックを指定しないで、ユーザー側が選択して、Excelブックを開くこともできます。
※ユーザーがファイルを選択して開く方法の詳しい説明は別の記事に掲載しております。該当記事はこちら
2.アクティブなExcelワークシートの設定
次に開いたExcelファイルの、どのワークシートを使用するか設定します。
今回はワークシート名(昇給表)を使用します。
1.アクションの「Excel」から「アクティブなExcelワークシートの設定」を「Excelの起動」の下にドラッグ&ドロップします。
2.アクティブなExcelワークシートの設定のパラメータを選択します。
・「Excelインスタンス」は先ほどExcelの起動で、生成された変数が自動的に入っていますので、そのままにします。
・「次と共にワークシートをアクティブ化」はワークシート名を使いたいので、「名前」を使用します。
・「ワークシート名」を上記の昇給表のワークシート名(昇給表)を使います。
※他にもインデックス番号でワークシートをアクティブ化することも出来ます。
3.設定が終わったら保存をクリックします。
3.Excelワークシートから最初の空の列や行を取得
1.アクションの「Excel」から「Excelワークシートから最初の空の列や行を取得」を「アクティブなExcelワークシートの設定」の下にドラッグ&ドロップします。
Excelワークシートから最初の空の列や行を取得とは、データが入っている列と行の、最初の空の列と行を自動的に取得できるアクションです。行や列にデータを追加入力や削除されても、自動的にセル範囲を拡大縮小してくれます。
2.Excelワークシートから最初の空の列や行を取得の設定画面が表示されます。
生成された変数 FirseFreeColumn(列) FirseFreeRow(行)は次のアクションで使用します。
今回はこのまま「保存」をクリックします。
4.Excelワークシートから読み取り
1.アクションの「Excel」から「Excelワークシートから読み取り」を「Excelワークシートから最初の空の列や行を取得」の下にドラッグ&ドロップします。
Excelワークシートから読み取りとは、先ほど入力したExcelブックの値が入力されているセル範囲を指定して、データを読み込んで、Power Automate Desktopにデータを取り込み、変数に格納します。
2.Excelワークシートから読み取りのパラメータの選択を設定します。
・Excelインスタンス:Excelの起動で生成された変数 %ExcelInstance% をそのまま使用します。
・取得:データが入ったセル範囲を取得したいので「セル範囲の値」を選択します。
・先頭列:「B」を入力します。セルに最初の値が入っている列を指定します。
・先頭行:「2」を入力します。セルに最初の値が入っている行を指定します。
・最終列:%FirseFreeColumn-1%
・最終行:%FirseFreeRow-1%
・詳細をクリックして、列名を指定できるように「範囲の最初に列名が含まれています」にチェックを入れます。
セルB2からデータが入力されている最終行や列を設定します。
先ほど生成された変数の最初の空の列と行をそのまま使用すると、空白のセルまで取得してしまうので空白のセルの1行と1列前のセルを取得するために、-1を設定します。
データが入っている最終列と最終行のセルが取得できるようになります。
・生成された変数ExcelDataに読み取った昇給表のデータが格納されます。
3.設定が終わったら「保存」をクリックします。
5.Excelを閉じる
「Excelの起動」で開かれたファイルを閉じます。
1.アクションの「Excel」から「Excelを閉じる」を「Excelワークシートから読み取り」の下にドラッグ&ドロップします。
2.「EXCELを閉じる」の設定画面が表示されたら、下記の項目を入力します。
・EXCELインスタンス:%ExcelInstance%
・EXCELを閉じる前:ドキュメントを保存しない
今回はファイルのデータを取り込むだけなので、「ドキュメントを保存しない」を選択しました。
6.Excelデータの確認
実行テストを行い、フロー変数にExcelデータが格納されたか確認します。
1.▷実行をクリックします。
2.フロー変数の{☓}ExcelDataをダブルクリックして確認します。
以上でExcelファイルのデータをPower Automate Desktopに取り込む方法をご紹介しました。
頻繁に使用するアクションなので、サブフローに設定しておいて、サブフローの実行で呼びだすこともできます。