【初心者向け】Power Automate DesktopでExcelデータを取得・操作する方法

Power Automate Desktop

本記事では、Power Automate Desktop(PAD)でExcelのデータを取得する方法について解説します。

(前提) 使用するExcelファイル

本記事で使用するExcelファイルは以下になります。

パスは「C:\pad-test\member.xlsx」、シートは「メンバー表」のみになっています。

Excelデータを取得するフロー

以下がExcelデータを取得する基本的なフローになります。

Excelデータを取得するフロー
  1. Excelの起動
  2. Excelワークシートから読み取る
  3. Excelを閉じる

上記フローは最小限のアクションになっており、「前提」で挙げたようなシートが1つのブックに対応しています。シートが複数ある場合や、取得したあとの操作については後述の説明をご参照ください。

フロー説明

フローを構成するアクションについて、それぞれ解説します。

Excelの起動

対象アクション

Excelの起動

Excelファイルを開くアクションです。

項目設定内容
Excelの起動空のドキュメントを使用:新規ブックを開く
次のドキュメントを開く:ドキュメントパスで指定したブックを開く
ドキュメントパス開きたいExcelファイルのフルパスを指定します。

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

対象アクション

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

アクティブなワークシートからセル/セル範囲を取得します。

項目設定内容
ExcelInstance%ExcelInstance% ※デフォルト
取得いずれかを選択
・単一セルの値
・セル範囲の値
・選択範囲の値
・ワークシートに含まれる使用可能なすべての値
例)単一セルの値

C2セルの「千葉県」だけ取り出したいとします。

この場合、3列目の2行目なので、先頭列:3、先頭行:2となります。

例)セル範囲の値

B2~B6の生年月日を取り出すとします。

この場合、2列目2行目から2列目6行目までなので、以下のように設定します。

Excelを閉じる

対象アクション

Excelを閉じる

Excelファイルを閉じるアクションです。

このアクションがなくても処理自体は成功しますが、フローを実行するたびに開きっぱなしのExcelファイルが増えてしまうため、最後は閉じるようにします。

項目設定内容
Excelインスタンス%ExcelInstance% ※デフォルト
Excelを閉じる前ドキュメントを保存しない
ドキュメントを保存 (上書き保存)
名前をつけてドキュメントを保存 (新規ブックを作成して保存)

以上で基本的なExcelデータ取得のフローは完成です。

シートが複数ある場合は対象のシートを指定すること

PADでExcelデータを取得する場合、アクティブになっているシートが取得されます。例えば、以下であれば「役員」シートが開かれているので「役員」シートのデータが取れます。

これでは意図したデータが取れない可能性があるので、シートが複数ある場合は対象のシートをアクティブ化させる必要があります。

対象アクション

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

取得対象のシートを設定します。

項目設定内容
Excelインスタンス%ExcelInstance% ※デフォルト
次と共にワークシートをアクティブ化いずれかを選択
・名前 (シート名)
・インデックス (何番目のシートか)

取得したデータの扱い方

取得したExcelデータの操作方法について解説します。

取得したデータを別ブックに転記する

取得したExcelデータを、別のExcelブックに転記するフローです。

最初に説明した基本のフローに、以下を追加しています。

Excelデータを別ブックに転記するフロー
  • アクティブなExcelワークシートの設定(シートが複数ある場合は必須)
  • Excelの起動(転記用の新規ブックを開く)
  • Excelワークシートに書き込む(取得したデータを転記)
  • Excelを閉じる(新しく開いたブックを閉じるのに必要)

上記フローを実行すると、新しくブックが作成され、

元のExcelブックから取得したデータが転記されています。

条件に一致するデータだけ取り出す

たとえば、メンバー表のなかから東京都出身のメンバーだけ取り出したいとします。

この場合、以下のようなフローになります。

データを1件ずつ見ていく方法

「東京都出身かどうか」は、「出身」列を見て判定します。しかし、PADで取り出したExcelデータは、データテーブル型という表形式のデータになっており、このままだとうまく判定ができません。

for each

そこで、for eachを使って1行ずつデータを取り出して見ていくようにします。

if

さらに、for eachで取り出したデータのうち、if文で「出身」列だけ取り出して判定します。

ifの中身は以下のようになります。

「%CurrentItem[2]%」とありますが、「%CurrentItem%」というのはfor eachでループを回して取り出した1行分のデータです。このうち、3列目のみを取り出す場合は、0始まりのインデックスを付加します。

このフローを実行すると、出身が「東京都」のデータのみを取得することができます。

まとめ

今回は、Power Automate Desktop(PAD)でExcelのデータを取得する方法について解説しました。PADを使うと簡単にExcelデータの取得・操作ができます。

勤怠管理や、システム上の在庫管理システムとローカルの在庫管理表の突合せ、議事録テンプレートの自動作成、大量のデータから条件に一致するデータのみ抽出・・・などなど、日々の面倒な業務や、手作業では膨大な時間を要する作業などをPADのフローにすることで大幅な効率化・コスト削減が期待できます。

WindowsPCであれば無料で使うことができます。様々なRPAツールがあるなか、完全無料で使えるものは意外と少ないです。ノーコードで簡単に自動化ができますので、是非試していただければと思います。

ここがうまくいかない、こういうことをしたいけどどうやるの?という場合はお気軽にコメントやお問い合わせからご連絡ください。

chaso

文系出身、数字が苦手な平凡主婦。塾講師、大手企業SE、不動産事務、Webライター、QAエンジニアを経て現在RPAエンジニアとして働いています。機械音痴だけど効率化や自動化をこよなく愛しています!お仕事の依頼・ご相談は問い合わせよりお願いいたします♪

chasoをフォローする

コメント

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