この記事の内容
この記事は3記事による連載「Power AutomateでOutlookのイベント情報をExcelに書き出す方法」の最後の記事になります。前回の記事はコチラ↓
この記事では、Power Automateで取得したデータをExcelに書き出すアクションについて解説します。
Power AutomateでExcelに書き出す方法(「表に行を追加」アクションを使う)
Excelに書き出すにはいくつか方法がありますが、この記事では、Excelコネクタの「表に行を追加」アクションを使う方法について解説します。
「表に行を追加」アクション(「テーブルに行を追加する」アクションに名称が変更されました。)
(事前準備)「テーブル」化したExcelを用意する
「表に行を追加」アクションを使うためのExcelファイルの条件
Excelファイルを用意する前に「表に行を追加」アクションを使うためには下記の条件があることに注意してください。
「表に行を追加」アクションを使う条件
- ExcelはOneDrive か Sharepoint Onlineに保存されている。
- Excel内のデータ領域(表)がテーブル化されていること。
Power Automateで扱うExcelはテーブル化されていないといけません。
Excelの完成図の確認
▲今回はヘッダー(見出し)だけ作った空っぽの表を作ってテーブル化しました。作成方法は次の項で紹介します。
Excelファイルを新規作成する
▲ こちら(Office365)からExcelを新規作成します。
Excelの表をテーブル化する
▲1行目に見出しの名前を入力したら、テーブル化するセル範囲のどこかを選択した状態で、「挿入」タブ→「テーブル」
▲「先頭行をテーブルの見出しとして使用する」にチェックを入れます。
セル色が変化しオートフィルタが適用されたらテーブル化の成功です。一番上の図のように見出し行と空っぽのデータ列の2行だけのテーブルが出来ました。
Excelの保存
Excelが完成したらファイルを保存しましょう。保存した場所はPower Automateフローを作成するときに必要になりますので覚えておいてください。ちなみに「新しい空白のブック」から作成して特に保存場所を変更しなければOneDriveのトップフォルダの中に保存されているかと思います。
Power Automateのフローを作成する
フローを作る前におすすめの設定
Power Automateでフローを作成する前にPower Automateのおすすめの設定があります。特に動的コンテンツ(動的な値)を利用した関数式の作成がとっても楽になります。下記の記事で詳細を紹介していますので興味のある方はご覧ください。
Power Automate「表に行を追加」アクションを追加する
▲Excel Onlineコネクタを選択します。
▲ 「表に行を追加」アクションをクリックします。
▲必要なパラメータを入力します。
- 場所
- Excelを保存したOneDriveかSharepointサイト
- ドキュメントライブラリ
- Excelを保存したOneDriveかSharepointサイトのドキュメントライブラリ名
- ファイル
- Excelファイル名
- テーブル
- テーブル名(名前を変更していなければデフォルトテーブル名は「テーブル1」です。)
▲テーブル名まで入力すると、テーブルに設定された列名を図のように読み込んでくれます。
テーブルの列名とリンクするのでテーブルによって図の赤枠の項目名や項目数は変わります。
今回は下記のように設定しました。
- name列
- (動的なコンテンツ)「イベントの取得v4」の中の「件名」
- start/dateTime列
- formatDateTime(body(‘タイム_ゾーンの変換(イベント開始時間の変換)’),’g’)
- end/dateTime列
- formatDateTime(body(‘タイム_ゾーンの変換(イベント終了時間の変換)’),’g’)
- かかった時間
- (空白)
start/dateTime列、end/dateTime列には、「タイムゾーンの変換」で変換した値をformatDateTime関数で書式を変更してからExcelに渡しています。そのままExcelに書き出してもExcelで日付として認識されず、Excel内で計算できなかったためです。
formatDateTime関数の構文
<基本構文>
formatDateTime(変換する時間 , 書式指定子)
<例>
formatDateTime(body(‘タイム_ゾーンの変換’),’g’)
formatDateTime関数の使い方はこちらの公式ドキュメントを確認してください。書式指定子についてはこちらの公式ドキュメントを確認してください。
formatDateTime関数の使い方
▲「動的なコンテンツ」をクリック→「式」タブをクリック→「もっと見る」をクリックします。
▲formatDateTime関数をクリックします。
▲formatDateTime関数が自動入力されます。
▲カッコの中に動的なコンテンツの値を入れます。
▲「動的なコンテンツ」の値が関数の中に自動入力されました。
▲関数の第二引数を手入力で追記してOKボタンを押します。
先で解説しましたように第二引数は書式を指定します。書式には「書式指定子」か直接’yyyy-MM-dd’のように記述することもできます。図では書式指定子の’g’を用いました。gは「一般の日付と時刻のパターン (短い形式の時刻)」を表現します。gを使うと下記の例のように出力されます。gは汎用的に使えるので覚えておくと良いと思います。
例:2009/6/15 13:45
▲関数として認識されるとピンクのカード表示になります。
ピンクのカード表示にならずにグレーのカードになっている場合は、関数の文法が間違っている可能性があります上述の基本構文を確認し誤りが無いか確認してください。
▲あとはイベントの終了時間の方も同じ要領で入力してフローがすべて完成です。
フローの完成
フローが完成しました。
フローの実行
フローが完成したので実行してExcelを確認してみましょう。下図のようにExcelに出力できたのではないでしょうか。
ちなみに説明を忘れていましたが、フロー実行前にD列に「=C2-B2」という式を入れておくと、図のようにD列全部で時間の計算してくれます。
Power Automate・Microsoft 365 関連記事
テーブル化していないExcelファイルを操作するには?
テーブル化していないExcelファイルや、Excelコネクタに無い複雑なExcel操作を行うには、Excel Online版のマクロ言語であるOffice Scripts(Officeスクリプト)をPower Automateと連携して使う方法があります。下記の記事を参考になさってください。
Office ScriptによるExcel on the web 開発入門
Office Scriptを体系的に学ぶにはこちらの書籍の購入をおススメします。現時点ではAmazonで購入できる唯一の日本語で書かれたOfficeスクリプト(Office Script)の書籍です。(2021年11月05日時点)そもそもOffice Scriptを解説している日本語のWebサイトやYouTubeは多くありませんので貴重な解説書です。
Office Scriptのベース言語であるTypeScriptの解説から始まるのでプログラム経験のない方でもこの1冊でOffice Scriptを始めることができるかと思います。セルやシートの操作方法はもちろん、Office Scriptの一番のメリットであるPower Automateとの連携の方法(変数の受け渡し等)も解説されていて一通り網羅されているかと思います。Kindleで読んでも文字サイズやレイアウトがキレイで読みやすいのもありがたかったです。
Office scriptsを習得すればExcelデータが多い会社や組織では自動化の可能性が広がります。Excel VBAではできなかったクラウド連携やトリガー起動による自動化をぜひ体感してください。
まとめ
以上で、Power AutomateでExcelに書き出す方法についてご紹介しました。
実務では、Excelのテーブルの機能である集計行を追加して、全てのイベントの時間の合算をしたりすると良さそうですね。
Power Automate学習教材
▲Kindleと紙媒体両方提供されています。デスクトップフロー、クラウドフロー両方の解説がある書籍です。解説の割合としてはデスクトップフロー7割・クラウドフロー3割程度の比率となっています。両者の概要をざっくり理解するのにオススメです。
▲Power Automate for Desktopの基本をしっかり学習するのにオススメです。この本の一番のメリットはデモWebシステム・デモ業務アプリを実際に使ってハンズオン形式で学習できる点です。本と同じシステム・アプリを使って学習できるので、本と自分の環境の違いによる「よく分からないエラー」で無駄に躓いて挫折してしまう可能性が低いです。この点でPower Automate for desktopの一冊目のテキストとしてオススメします。著者は日本屈指のRPAエンジニア集団である『ロボ研』さんです。
▲Power Automate クラウドフローの入門書です。初心者の方には図解も多く一番わかりやすいかと個人的に思っています。
Microsoft 365/ Power Automate / Power Platform / Google Apps Script…
▲Udemyで数少ないPower Automateクラウドフローを主題にした講座です。セール時は90%OFF(1200円~2000円弱)の価格になります。頻繁にセールを実施しているので絶対にセール時に購入してくださいね。満足がいかなければ返金保証制度がありますので安心してご購入いただけます。