Power Automate は業務の自動化に大きな力を発揮します。
特に、コネクタが存在するものに関しては本当に画面をポチポチするだけで自動化が可能です。
今回はその一例としてExcelファイルの中身からWordファイルを自動生成する方法をご紹介します。
目的
Excelファイル上のデータを転記した Word ファイルを作成する。
前提
・Excel 上のデータはテーブル形式になっており、一行を一ファイルとして生成する
・Power Automate の有料ライセンスがある(プレミアムコネクタを使用するため)
流れ
1,Wordテンプレートを作成する
2,各種ファイルを配置する
3, Automate を作成する
4,実行!
Wordテンプレートの作成
まず最初に、生成される書類のひな型となるWordファイルを作成します。
一般的なWordファイルと異なるのは、Word の機能の一つであるテキストコンテンツコントロールを用いて値をはめ込む場所を指定するということです。
1-0,Wordアプリ上に開発タブを表示させる
この作業は開発タブが見えていない時だけ行ってください。
デフォルトだと見えていないはずです。
アプリ版の Word を起動し、オプション⇒リボンのユーザー設定⇒右側のメインタブ内から開発(ユーザー設定)にチェックを入れてください。
1-1,出力するファイルの形を作る
いつも通りに書類を作成してください。
既存のファイルを開いても構いません。
1-2,テキストコンテンツコントロールを追加する
値をはめ込みたい部分を選択し(1)、開発タブを開きます(2)。
続いてテキストコンテンツコントロールボタンを押します(3)。
値をはめ込みたい場所すべてに上記の手順を繰り返してください。
テキストコンテンツコントロールになった場所はデザインモードに変更することで確認することができます。
水色の記号で囲まれたところがテキストコンテンツコントロールです。
Automate 側では記号の内側の文字がそのまま値をはめ込む宛名になります。
デザインモードにすると行の高さが変わっているように見えますが、実際に出力されるものは元の高さのままなのでご安心ください。
また、テキストコンテンツコントロールは、デフォルトでは改行に対応していません。
改行が含まれる文字列をはめ込みたい場合には、対象のコンテンツコントロールのプロパティ(4)から改行の使用可(5)にチェックを入れる必要があります。
各種ファイルを配置する
先ほど作ったWordファイルや元データとなるExcelファイルを SharePoint に配置します。
今回は SharePoint を使用していますが、 Automate から触れればどこでも大丈夫です。
今回の元データとなるExcelファイルは下のようになります。
列名とテーブル名は後で使用するので覚えておきましょう。
Automate を作成する
3-1,フローを作成する
何をトリガーにしても大丈夫です。
今回の例ではインスタントクラウドフロー(手動で実行ボタン押すと動くやつ)を使います。
3-2,Excelのテーブルからデータを取得する
「Excel Online (Business)」 コネクタを選択し、アクション一覧の中から「表内に存在する行を一覧表示」を選択します。
場所、ドキュメントライブラリ、ファイルで先ほど配置したExcelファイルを選択します。
続いて、テーブルでExcelファイル内のデータを取得したいテーブルを選択します。
3-3,繰り返しの準備をする
「コントロール」コネクタの中の「Apply to each」アクションを選択します。
以前の手順から出力を選択という項目には「動的なコンテンツ」⇒「表内に存在する行を一覧表示」⇒「value」を選択します。
3-4,Wordテンプレートに値をはめ込む
「Word Online (Business)」コネクタの中の「Microsoft Word テンプレートを事前設定します」アクションを選択します。
場所、ドキュメントライブラリ、ファイルで使用するテンプレートファイルを指定すると、ファイルの中のテキストコンテンツコントロールが表示されます。
それぞれにはめ込みたい値を入れていきます。
この時「表内に存在する行を一覧表示」の中の項目を使用すると、繰り返し毎に別の行の値が使用されます。
日時の所は本筋とは関係ないので後述します。
3-5,ファイルを作成する
ファイルコンテンツからファイルを作成します。
今回の例では SharePoint 上にファイルを出力します。
サイトのアドレスとフォルダーのパスで出力したい場所を指定し、ファイルコンテンツには「Microsoft Word テンプレートを事前設定します」⇒「Microsoft Word 文章」を選択します。
また、ファイル名は被らないように動的な要素を用いる必要があります。
実行!
保存ボタンを押して問題が無ければテストを実行してみましょう。
この時、フローが無効ですというメッセージと共にテストが実行できない場合があります。
その場合にはフローのトップページからフローをオンにする必要があります。
……の所(6)をクリックしてオンにする(7)をクリックします。
無事に実行されると、指定した出力先にWordファイルが作成されているはずです。
おまけ(時間の表記)
Excel 上で入力した日付は単純な文字ではなく、基準の日時からの経過時間を保持しています。
そのことは Excel 上で日付を入力したセルの書式設定を標準にしてみると確認できます。
そこで、Automate では基準の時間に Excel 上の日付を足すことで本来の日時を得ることができます。
また、ここで得られる日時は"2021-06-16T00:00:00"みたいな人間に見辛いものなので見やすい形に整形します。
日時を入力したいところで動的なコンテンツではなく式を選択し「formatDateTime(body('時間への追加'),'MM月dd日')」と入力します。
'MM月dd日'の部分が日付表示のフォーマットを指定しています。
yが年、Mが月、dが日で、重ねることで最小の桁数を表現できます。
途中の記号や文字はそのままになるので、'MM月dd日'は'06月16日'のようになります。
参考
Power AutomateでExcel日付(シリアル値)を日付形式に変換する - Qiita
How to customize or format Date and Time values in a flow - Power Automate | Microsoft Docs
Power Apps の日時操作のまとめ | cloud.config Tech Blog (cloud-config.jp)
書籍化のお知らせ
この度ご縁があり、Power Platformについての解説書を出版させていただく運びとなりました。
Microsoft Power Platformローコード開発[活用]入門 ――現場で使える業務アプリのレシピ集 | 株式会社FIXER, 春原 朋幸, 曽我 拓司 |本 | 通販 | Amazon
本記事で解説している「Power Automate を用いて書類を自動作成する 」というテーマを元にした章もございますので、より詳しく知りたい方はぜひお手に取ってください!
サンプルデータもございますし、発展した内容まで触れておりますので、初心者から上級者までご満足いただける一冊だと思います!!