Power Automate Desktopを使ってExcelを操作する方法を見ていきましょう。インストールの仕方や、細かい操作説明は割愛します。
Power Automate Desktopの新規フロー作成
Power Automate Desktopで新規フローを作成すると、以下の画面が表示されます。
それぞれ、アクションペイン、ワークスペース、変数ペインと呼びます。
Excelの起動
アクションペインから「Excelの起動」を選択し、ワークスペースにドラッグ&ドロップすると、以下の画面が表示されます。
Excelの起動の項目では、「空のドキュメントを使用」と「次のドキュメントを開く」が選択できます。既にあるエクセルファイルを開く場合は「次のドキュメントを開く」を選択し、ドキュメントパス欄の右側の「ファイルを開く」アイコンを選択してエクセルファイルを選択します。
今回は、以下のようなエクセルブックを使っていきます。
すべてのExcelワークシートの取得
アクションペインから、「すべてのExcelワークシートの取得」をワークスペースにドラッグ&ドロップします。
このアクションで生成される「SheetNames」という変数に入る値を確認するために、一度実行してみます。実行後に変数ペインの「SheetNames」をダブルクリックすると、変数の値が表示されます。
SheetNamesは、エクセルブックのシート名が、0から始まるリストとして取得されており、最初のシートは SheetNames[0] となります。
アクティブなExcelワークシートの設定
今回のエクセルブックは、シートが1つしかないので、特に気にする必要はないのですが、複数シートがあり、最終保存時にどのシートが選ばれているか分からないような場合に、データが登録されているシートをアクティブに指定する必要があります。
「アクティブなExcelワークシートの設定」では、シートの指定にシートの名前かインデックスを使うことができます。インデックスは、エクセルブック内のシートの順番のことで、1から始まります。単純にインデックスで1を指定すれば良いのですが、ここは先に取得したワークシート名のリストを使って以下のように、ワークシート名に**「%SheetNames[0]%」**指定します。
変数名を入力するには、入力項目の右端にある「{x}」をクリックすると、ウインドウが開いて選択することができます。「SheetNames」を選択すると、ワークシート名には「%Sheetnames%」と表示されますので、最後の%の前に「[0]」を入力します。
Excelワークシートから読み取り
ワークシートのデータを読み込むには、まず、読み込む範囲を調べます。「Excelワークシートから最初の空の列や行を取得」を使うと、最後のデータが入ってるセルの次の列、行の位置を取得することができます。
その値を使って、「Excelワークシートから読み取り」を行います。「取得」の項目では、「単一セルの値」「セル範囲の値」「選択範囲の値」が選べますが、今回は「セル範囲の値」を選んで、1列1行目から、先ほど取得した FirstFreeColumn, FirstFreeRowの範囲を選択します。
ただし、FirstFreeColumn, FirstFreeRowの値は最後のデータの次の列、行を示しているので、最後のデータは、それより1少ない値にしなければいけません。「変数を小さくする」で1づつ減らしてやってもよいのですが、「最終列」、「最終行」の項目で直接書き込むことも出来ます。変数は「%」で囲まれるのですが、変数を計算するには、**「%FirstFreeColumn -1 %」**のように、%で囲まれた中に計算式を書き込みます。
新しいワークシートにデータを書き込む
「新しいワークシートの追加」を選択し、新しいワークシートを作ります。作成場所は一番前か、一番最後を選択できます。今回は、「最初のワークシート」を選択して、先ほどのデータの入ったシートの前に追加します。
次に、「Excelワークシートに書き込み」を選び、書き込む値に「%ExcelData%」と、列、行に1を指定します。