Power Automate Desktop|Excelを読み込んで利用する方法

変更が多い定数をExcelに保管しておき、フロー内で読み込んで利用するテクニックについて解説します。フローの運用は長い期間に渡ります。その間に変更も複数回行われるでしょう。このテクニックを知っておくと変更に強いフローを作ることができますよ。運用を楽にしたいという方は是非記事をお読みください。

この記事では次のことがわかります。

  • 外部ファイルを使って変更に強いフローを作るテクニック
  • [Excelワークシートから読み取る]アクションの使い方
  • [特別なフォルダーを取得]アクションの使い方

フローを作りながら説明するので、いっしょにフローを作ってくれると理解が進むと思います。

それでは、どうぞ!

この記事を書いた人
この記事を書いた人
こさい
こさい

(株)完全自動化研究所代表のこさいです。

1) エンジニア歴25年超。RPA支援8年超
2) RPA関連の書籍を6冊出版。
3)ご質問・お仕事のご依頼はこちら

作成するフローの説明

「これから作成するフローはどんなものか?」を説明しますね。

  • Excelで作成した外部ファイルを読み込む
  • その値を使ってサンプルWebサイトを開く
  • ユーザーIDテキストボックスに入力する

というフローです。

実際にフローを実行すると、この状態で終了します。

サンプルWebサイトのユーザーIDにテキストが入力されていますね。

フローの実行結果(サンプルWebサイトのログイン画面)
フローの実行結果(サンプルWebサイトのログイン画面)

カンタンですが、奥は深いですよ。

それでは、準備から始めましょう!

準備しよう

フローを作る前に準備をしましょう。やることは2つだけなのでカンタンですよ。

  • 外部ファイル(Excel)を作成する
  • サンプルWebサイトを開く

では始めましょう♪

外部ファイル(Excel)を作成する

外部ファイルとしてExcelファイルを準備しましょう。

3つの項目を作成してください。最初の行は列のタイトルになります。

  • URL: http://marukentokyo.jp/sample_website/
  • userid: login@marukentokyo.jp
  • password: password

作成した後のイメージはこのようになります。罫線や背景色は付けても付けなくてもOKです。

外部ファイル
外部ファイル

作成できたら、名前を付けて保存してください。

ドキュメントフォルダーの中に「PAD」フォルダーを作り、その中に「Data」フォルダーを作って、その中に「パラメーター.xlsx」という名前で保存してください。

ドキュメントフォルダー\PAD\Data\パラメーター.xlsx」(PADでは\マークはバックスラッシュで表現されます)というパスになります。

ドキュメントフォルダーは環境によって異なります。Windows10の場合は「C:\Users\<ユーザー名>\Documents」がドキュメントフォルダーです。

サンプルWebサイトを開く

ブラウザーはMicrosoft Edgeを使います。

Microsoft EdgeでサンプルWebサイトを開いてください。

URL: http://marukentokyo.jp/sample_website/

フローを作成しよう

準備が完了したので、フローを作っていきましょう!

まずは新規フローを作成するところからですよ♪

[外部ファイル利用]というフローを新規作成する

[外部ファイル利用]というフローを新規作成してください。

フローを新規作成すると、このようにフローデザイナーが表示された状態になりますね。

フローデザイナー
フローデザイナー

では、メインフローにアクションを追加していきましょう。

[特別なフォルダーを取得]アクションを追加する

[特別なフォルダーを取得]アクションをメインフローのワークスペースに追加してください。

[特別なフォルダーを取得]ダイアログが表示されるます。

[特別なフォルダーを取得]ダイアログ
[特別なフォルダーを取得]ダイアログ

[特別なフォルダーの名前]のドロップダウンリストから[ドキュメント]を選択してください。[特別なフォルダーのパス]は自動的に入力されますが、環境によって異なります。

[SpecialFolderPath]という変数が生成されてますね。この変数にドキュメントフォルダーのパスが格納されるんですね。

では、[保存]をクリックしてダイアログを閉じてください。

[Excelの起動]アクションを追加する

次にExcelを起動する設定です。

[Excelの起動]アクションを[特別なフォルダーを取得]アクションの後に追加してください。

[Excelの起動]ダイアログが表示されるので、[Excelの起動]のドロップダウンリストから[次のドキュメントを開く]を選択してください。

[ドキュメントパス]に「%SpecialFolderPath%\PAD\Data\パラメーター.xlsx」と入力してください。

[Excelの起動]ダイアログ
[Excelの起動]ダイアログ

変数[SpecialFolderPath]には[特別なフォルダーを取得]アクションで取得したドキュメントフォルダーのパスが格納されているので、環境の変化に合わせられるようになっています。

このひと手間をかけずにファイルのパスを直接アクションの中に書いてしまうと、実行するパソコンが変わったら動かなくなるわけで、、こういう細かい配慮が大事。

というわけで、ダイアログの設定が完了したら[保存]をクリックしてダイアログを閉じてください。

[Excelワークシートから読み取る]アクションを追加する

Excelを開くところまで設定できたので、次は[Excelワークシートから読み取る]アクションを[Excelの起動]アクションの後に追加してください。

[Excelワークシートから読み取る]ダイアログが表示されますね。

[Excelインスタンス]には最初から[%ExcelInstance%]がセットされてるはず。

このフローにExcelのインスタンスは1つしかないからです。Excelのインスタンスが2つ以上あったら、ここにはセットされていないから気を付けましょう!

ではまず、[取得]のドロップダウンリストから[ワークシートに含まれる利用可能なすべての値]を選択してください。

[ワークシートに含まれる利用可能なすべての値]を選択すると値を読み取る範囲を指定しなくても、Power Automate for desktopがExcelの中から使えるデータを全部取ってきてくれます。とても便利!! でも、Excelにきれいな表が入ってるとわかってるときだけ使える技です。ぐっちゃぐちゃなデータを入れてたら使えないので注意、です。

[詳細]をクリックして、[範囲の最初の行に列名が含まれています]を[有効]にしてください。[パラメーター.xlsx]の最初の行はタイトルなので、[有効]にすることを忘れないようにしてください。

読み取ったデータはデータテーブル型の変数[ExcelData]に格納されます。設定はこのようになっていますか?

[Excelワークシートから読み取る]ダイアログ
[Excelワークシートから読み取る]ダイアログ

[保存]をクリックしてダイアログを閉じてください。

[Excelを閉じる]アクションを追加する

[Excelを閉じる]アクションを[Excelワークシートから読み取る]アクションの後に追加してください。

[Excelを閉じる前]はデフォルトの[ドキュメントを保存しない]のままでOKです。

[Excelを閉じる]ダイアログ
[Excelを閉じる]ダイアログ

設定するところはないので、そのまま[保存]をクリックしてダイアログを閉じてください。

4つのアクションを追加して設定しましたね。このようにフローが作成されていますか?

ここまでのフロー
ここまでのフロー

ここまでで、外部ファイル(パラメーター.xlsx)を読み込んで、データテーブルに格納するところが完成しました。

それでは、続いてサンプルWebサイトを操作するフローを作成していきましょう。サンプルWebサイトにデータテーブルに格納したデータを入力します。

[新しいMicrosoft Edgeを起動]アクションを追加する

Microsoft Edgeを起動するためのアクションを追加します。

[新しいMicrosoft Edgeを起動]アクションを[Excelを閉じる]アクションの後に追加してください。

[新しいMicrosoft Edgeを起動]ダイアログが表示されるので、[起動モード]は[新しいインスタンスを起動する]のままとし、[初期URL]に「%ExcelData[0][‘URL’]%」(「URL」の前後はシングルクォーテーション)と入力してください。

「%ExcelData[0][‘URL’]%」は「%ExcelData[0][0]%」と入力しても同じ値を入力できます。

設定されたダイアログはこのようになります。

[新しいMicrosoft Edgeを起動]ダイアログ
[新しいMicrosoft Edgeを起動]ダイアログ

[保存]をクリックしてダイアログを閉じてください。

[Webページ内のテキストフィールドに入力する]アクションを追加する

データテーブルに格納したデータをサンプルWebサイトに入力する部分を作っていきます。

[Webページ内のテキストフィールドに入力する]アクションを[新しいMicrosoft Edgeを起動]アクションの後に追加してください。

[Webページ内のテキストフィールドに入力する]ダイアログが表示されるので、[UI要素]にサンプルWebサイトの[ユーザーID]の入力ボックスを指定してください。

「UI要素」に入力ボックスを指定する方法については、この記事では詳しく解説しません。著書「Power Automate for desktop業務自動化最強レシピ」で詳しく解説しているので、そちらをお読みいただくか、Webで検索してください。いずれ記事として書くかもしれません…。

[テキスト]に「%ExcelData[0][‘userid’]%」(「userid」の前後はシングルクォーテーション)と入力してください。「%ExcelData[0][1]%」と入力しても同じ値を入力できます。

「%ExcelData[0][‘userid’]%」は「%ExcelData[0][1]%」と入力しても同じ値を入力できます。

設定が完了すると、このようになります。

[Webページ内のテキストフィールドに入力する]ダイアログ
[Webページ内のテキストフィールドに入力する]ダイアログ

[保存]をクリックしてダイアログを閉じてください。

このようにフローが作成されていますか?

完成したフロー
完成したフロー

これで外部ファイルを使う変更に強いフローが完成しました。

まとめ

サンプルWebサイトのURLとユーザーIDは[パラメーター.xlsx]の値が使われました。

ユーザーIDとパスワードに変更があった場合は[パラメーター.xlsx]を修正すればいいので、フロー[外部ファイル利用]は修正する必要がありません。

このように外部ファイルを利用してフローを変更に強くするテクニックは、運用を楽にしてくれるので、ぜひ身に付けて活用してください。

本記事で作成したフローは次の記事でも使用しています。合わせてお読みください。

コメント ログインすると書き込めます