【初心者向け】Microsoft RPA Power Automate Desktop Excel セル範囲の取得

Power Automate Desktop RPA

PowerAutomateSwaktopセル範囲の取得

こんにちは!!Apachanです。
今回はPower Automate Desktopを利用してExcelファイルからデータを取得します。

実際の業務では表形式のデータに対して何らかの作業を行うことの方が多いので、今回は特定のセル範囲を取得して一行ずつ値をメッセージボックスで表示するフロー(シナリオ)を作成します。

目次

1.前提
新規フロー作成
作成するフロー
利用ファイル
2.身につくこと
3.フロー作成の手順
アクション利用の基本原則
① Excelの起動
② Excelワークシートから読み取り
③ For each(行毎の取得)
④ メッセージを表示
4.フローの実行
5.まとめ

前提

まずは作業開始前の前提から確認していきたいと思います。

新規フロー作成

Power Automate Desktop起動後にフローを新規で作成します。 下図を参考にしてください。

新規フロー作成

下図のような画面が表示されればOKです。

フロー作成画面

作成するフロー

今回はExcelシートのセル範囲を読み取り、一行ずつメッセージ表示するフローを作成します。

下図を参考にA列のNo.1からNo.8までの各行のB, C列に該当する値をメッセージボックスにて表示します。

1行目の項目名に該当する出発駅や到着駅は不要なので表示させません。

利用ファイルと作成内容

利用ファイル

今回利用するサンプルファイルです。実際に動きを確かめたい場合はお使いください。

サンプルファイル

身につくこと

今回のデモを通してPower Automate Desktopの基本的な操作方法を習得できます。

  • アクションの設定方法
  • アクションの設定時に生成される変数の使い方
  • Excelファイルからセル範囲のデータ取得
  • 繰り返し処理
  • フローの実行方法

今回作成するフローは実際の業務では非常に良く利用するRPA基本動作です。

Excelより値を取得した後に、別ファイルに転記したり、システムにデータ入力することなどは実際の業務でよくあることです。

フロー作成の手順

アクション利用の基本原則

3ステップの設定方法

フローを作成する前にアクションの基本的な作成方法を確認します。

アクションを利用する際の流れは下記の3ステップとなります。難しいコードを記述する訳ではないため、ほぼ直感的な操作で利用できるようになります。

ただし、アクションを実行する順番があるため、アクションの挿入位置には気を付けてください

  1. アクションの選択(ドラッグ&ドロップ)
  2. アクションのパラーメーター設定
  3. アクションの反映

こちらが基本となります。

生成される変数

重要なポイントは、アクションを設定する過程で変数が生成されることです。

例としては、Excelを開けば、その開いたExcelを変数として指定できるようになったり、セルを取得すれば変数として指定できるようになります。

変数が初耳という方もいるのではないかと思いますが、ここでは何かを保存しておくための箱、箱には型という分類があるくらいの認識でOKです。

次項よりフローの作成に入りますが、アクションを設定する毎に生成される変数もチェックしながら進めていきます。

① Excelの起動

アクションの選択

アクションの「Excelの起動」を利用します。

(i) 開閉式となっているため、ExcelをクリックするとExcel関連のアクションが表示されます。

(ii)~(iii) 「Excelの起動」を画面中央の領域にドラッグ&ドロップします。

Excelの起動①ドラッグ&ドロップ

アクションのパラーメーター設定

処理に成功すると「Excelの起動」の設定画面が起動します。

ここでは利用するExcelファイルのパスを指定します。ドキュメントパスのテキスト入力欄の右アイコンをクリックすると、ダイアログが起動するので選択式で指定することができるようになります。

(i) プルダウンより「次のドキュメントを開く」を選択してください。選択すると、ドキュメントパスの項目が表示されます。

(ii) 参照するExcelファイルのパスを指定します。テキストボックスの右アイコンより選択できます。

(iii) 保存ボタンを押下します。

Excelの起動②パラメーターの設定

生成された変数

ExcelInstanceが変数として生成されます。

ExcelInstanceは今回起動したExcelファイルのことを差しており、後続の処理でこのExcelファイルを指定する際にはExcelInstanceという名前で指定することができるようになります。

ExcelInstanceという名称は自動で決められるため編集して変更することも可能です。

生成された変数ExcelInstance

アクションの反映

設定が完了すると下図のようにアクションが反映されます。生成されたExcelInstanceはフロー変数の中に入ります。

Excelの起動③設定の反映

フロー変数とは、アクションを実行する過程で生成される変数のことです。変数ということには変わりなく、特段使い分ける必要もないので本記事では一律「変数」と表記します。

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

アクションの選択

アクションの「Excelワークシートから読み取り」を利用します。

(i)~(ii) 「Excelの起動」の下部にドラッグ&ドラッグします。ドロップする位置でアクションの実行順が変更されるためご注意ください。

Excelワークシートから読み取り①ドラッグ&ドロップ

アクションのパラーメーター設定

処理に成功すると「Excel ワークシートから読み取り」の設定画面が起動します。

(i) Excelインスタンスに、前工程で生成した変数、ExcelInstanceが表示されていることを確認してください。%で囲われている意味は変数としての利用を意味します。

(ii) 取得については、複数セルを扱うため 「セル範囲の値」をプルダウンより選択してください。すると、先頭行列から最終行列が表示されるため、各項目の値が設定できるようになります。

(iii) 先頭行列、最終行列の数字は下図参考にしてください。1行目は項目名なので不要です。

先頭行列と最終行列

(iv) 保存ボタンを押下します。

Excelワークシートから読み取り②パラメーターの設定

生成された変数

ExcelDataというDataTable形式の変数が生成されました。

ExcelDataの中には、指定したセル範囲のデータが入っています。後続の作業でExcelDataという名前で呼び出せるようになります。

また、変数には型があり、今回のDataTable形式はセル範囲を格納する際に利用くらいの認識でOKです。

生成された変数ExcelData

アクションの反映

設定した内容が下図のように反映します。ExcelDataに格納されているデータのイメージは必ず持っておきましょう。

Excelワークシートから読み取り③設定の反映

③ For each(行毎の取得)

アクションの選択

ループの中のアクションの「For each」を利用します。

「For each」は、データのかたまりから1行ずつデータを取得することができるアクションです。

今回のケースでは、ExcelDataという変数に出発駅と到着駅の情報が格納されているため、ここから1行ずつ取り出していくことができます。

ループForeadh①ドラッグ&ドロップ

アクションのパラーメーター設定

処理に成功すると「For each」の設定画面が起動します。

(i) 反復処理を行う値のテキストボックス右の変数アイコンをクリックしてください。

(ii) するとフロー変数が選択できるようになるためExcelDataを選択します。

(iii) 選択したExcelDataが反映します。

(iv) 保存ボタンを押下します。

ループForeah②パラメーターの設定①
ループForeah②パラメーターの設定②

生成された変数

CurrentItemという変数が生成されます。

「For each」を利用することでExcelDataをぶつ切りして1行ずつ、生成された変数CurrentItemにデータを渡すことができるようになります。

また、ExcelDataを今回のように分割して処理するためには、中身がセル範囲などの分割できる状態である必要があります。

生成された変数CurentItem

イメージとして下図のようになります。

CurrentItemのイメージ

アクションの反映

設定した内容が下図のように反映します。各行を順々に取り出す準備はできました。

ループForeah③設定の反映

④ メッセージを表示

アクションの選択

メッセージボックスの中のアクションの「メッセージを表示」を利用します。

今回のように1行ずつ繰り返し処理を確認する際に「メッセージを表示」はとても役に立ちます。

繰り返し処理の中の動きを確認したいため、「For each」と「End」の間に挿入してください。

メッセージを表示①ドラッグ&ドロップ

アクションのパラーメーター設定

(i)~(ii) 変数アイコンよりCurrentItemを選択して下図のようにタイトルと表示するメッセージを設定します。

CurrnetItemは行全体のデータが入った変数です。各項目を選択するには[]と数字で指定する必要があります。「0」始まりということに注意してください。

CurrentItemのインデックス補足

(iii) 保存ボタンを押下します。

メッセージを表示②パラメーターの設定

生成された変数

今回生成される変数、ButtonPressedは利用しません。
下図の通り押されたボタンのテキストを取得することはできますが、今回利用することはありません。

生成された変数ButtonPressed

アクションの反映

下図のように反映すればフローの完成となります。

メッセージを表示②設定の反映

フローの実行

再生ボタンを押下してフローを実行します。

フロー実行準備完了

下図のようなダイアログが計8回表示されれば成功です。

フロー実行

実行した結果の動画は以下を参考にしてください。

まとめ

少し長くなってしまいましたが、Power Automate Desktopを利用して表形式のデータを取得する方法を解説しました。

データ取得だけで完結する業務は決して多くありませんが、データ取得が業務の起点となることは多々あります。

次回は今回作成したフローの保守性を上げる修正やデバッグなどの仕方を確認します。

Apachan

約10年間の代理店営業を経験した後にITに興味を持ちプログラミングを習得。営業で培ったコミュニケーション力を活かしつつ、様々な現場の業務改善に日々奮闘中。
RPAに限らず、SaaSやGAS, VBAなど手段はクライアントの方と考えながら進めます。
RPAやプログラミング関連の書籍も執筆しました。
お気軽にご相談ください。

関連記事