前回はMicrosoft Excelの請求書テンプレートに項目を自動入力するフローを作成した。請求書の自動作成としては基本的な動作となるが、このままだとあまり実用性がない。入力する請求書データを別のファイルに保持しておき、フロー実行時に選択することで任意の請求書を生成できれば、汎用的に使えるようになる。
請求データを別ファイルで保持して汎用性を上げる
前回はMicrosoft Excelの請求書テンプレートに項目を自動入力するフローを作成した。請求書の自動作成としては基本的な動作となるが、このままだとあまり実用性がない。入力する請求書データを別のファイルに保持しておき、フロー実行時に選択することで任意の請求書を生成できれば、汎用的に使えるようになる。
例えば、次のように会社ごとのその月の請求金額をまとめたExcelファイルがあるとする。業種や会社のルールなどに応じて形式はいろいろとあるはずなので、あくまでもサンプルとして考えてもらえればと思う。
Power Automateのフローを実行したらこのようなフォーマットのMicrosoft Excelファイルが選択されるようにして、データを取り出して請求書にはめ込むように設定しよう。
自動生成できる部分を先にまとめる
まず、前回のフローをコピーして「請求書作成 その3」を作成する。請求先会社情報や請求金額データなどに関する部分は削除し、日付など自動入力が可能な部分だけを残す。
使い方にもよるが「請求日」や「タイトル(内容)」は日付データから自動生成できる。ここでは「請求日」「内容」「請求番号」は日付データから自動生成するものとし、まずはこの部分を作る。
「現在の日時を取得」アクションでフロー実行時の日付データを取得する。
「%CurrentDataTime%」に現在日時のデータが入っているので、次に「datetimeをテキストに変換」アクションで請求書にはめ込む文字列へと変換する。
生成した文字列はそれぞれ「%FormattedDataTime%」「%FormattedDataTime2%」「%FormattedDataTime3%」に入っているので、これを「Excelワークシートに書き込む」アクションを使って請求書のセルにはめ込んでいく。
ここまで作成した状態でフローは次のようになる。
フローを実行すると、次のスクリーンショットのように日付に関するセルが自動的に入力される。
これ以外の項目は会社ごとに異なるファイルからデータを引用し、当てはめる必要がある。
企業データと請求データは別のファイルから読み込む
次に、請求先の情報や請求内容などの情報を別のファイルにまとめる。ここでは仮に、次のような形で企業情報と請求金額を保管するケースを想定しよう。
このファイルをフローから開いて使用する。選択するファイルを変更すれば、生成される請求書が別のものになる。
ファイルの選択には「ファイルの選択ダイアログを表示」というアクションを使う。このアクションは汎用的に使えるものなので覚えておこう。
「ファイルの選択ダイアログを表示」アクションではダイアログのタイトル、最初に開いておくフォルダ、表示するファイルのフィルタなどを指定することができる。最後の「フィルタ」は、要するにファイルの拡張子やファイル名などをキーに、表示するファイルを絞り込むことができる機能だと思ってもらえればよい。
関係のないファイルが表示されないように、可能な限り絞り込めるようにフィルタを設定するとよい。ここでは「*.xlsx」としてMicrosoft Excelの特定の拡張のファイルだけを表示するようにしている。
「Excelの起動」アクションを追加し、ドキュメントとして上記で選択したファイルパスが収められている「%SelectedFile%」を指定する。
ここまでのフローを実行すると、請求書データが生成された後、次のようなファイル選択ダイアログが表示される。
ここで企業データと請求データが書かれたファイルを選択して「開く」を選択する。すると次のように選択したファイルが表示される。
今回作成したフローは次のようになる。
今回の操作で、少なくとも2つのMicrosoft Excelファイルを起動して操作できることが理解いただけたのではないだろうか。特に「ファイルの選択ダイアログを表示」アクションを使って任意のファイルを選択する方法は、いろいろと応用が効くので覚えておこう。
次はMicrosoft Excelからデータを取り出してはめ込む処理
次回は、オープンしたMicrosoft Excelからデータを抽出して、請求書データにはめ込んでいく処理について解説する。そこまでできるようになれば、かなり汎用的に扱えるフローになっているはずだ。複雑な仕組みの組み上げは後から習得できるので、最初は基本となる機能を対象に、シンプルな自動化フローを組み上げてみるのがよいだろう。