【Power Automateではじめる業務の完全自動化】実務直結のノウハウが満載! 本連載では、企業へのMicrosoft 365の導入や活用支援を手がける著者・太田浩史氏による、Power Automateを使った業務自動化のノウハウを提供します。

第4章|身近な業務に役立つフローで効率化
LESSON 17

Excelファイルの内容をSharePointリストに転記

方眼紙のようにしたExcelファイルを業務で利用している例も多くあります。そのようなファイルをフローで処理するには、ファイルに対する工夫が必要です。これまでの業務で利用してきたファイルも使いながら、作業を自動化できる方法を紹介します。

Excelで作成された申請書の内容を転記する

社内の業務では、Excelで作成された申請書を利用するものもあります。こうした申請書は、担当者がメールなどで収集したあと、入力内容を転記し一覧化していることもあります。こうした単純作業の繰り返しで手間も掛かる転記作業を、自動化するフローを作成します。また、本LESSONでは申請書の内容をSharePointリストに転記する業務を想定しています。自由にリストを作成できるSharePointサイトと、処理対象となるファイルをまとめて保存するフォルダーをOneDrive for Businessに作成しておきましょう。リストの作成方法は「転記先のSharePointリストを作成」で解説します。

Excelファイルの内容をSharePointリストに転記|Power Automateではじめる業務の完全自動化

Excelで作られた申請書をテーブルにする

残念ながらExcelで作られたままの申請書の内容をPower Automateで読み取ることはできません。Power AutomateからExcelを利用するには、データを「テーブル」にする必要があります。ここで使用する練習用ファイル「申請書_できる花子.xlsx」は[申請フォーム]シートの内容を[申請データ]シートにテーブルでまとめています。ポイントはPower Automateから読みたい項目名がテーブルの項目となるように横並びで入力している点です。また、テーブルの一行目のデータは、申請書の各セルを参照させ自動的に入力されるようにしています。セル参照は値を入力したいセルを選択して数式バーに「=」を入力し、[申請データ]シートのセルを選択して[Enter]キーを押すだけで設定できます。

[申請データ]シート

Excelファイルの内容をSharePointリストに転記|Power Automateではじめる業務の完全自動化

ここもポイント!テーブルを作成するには

入力した項目を選択し、以下の手順でテーブルに変換します。このとき、[先頭行をテーブルの見出しとして使用する]にチェックを入れるのを忘れないようにしましょう。

Excelファイルの内容をSharePointリストに転記|Power Automateではじめる業務の完全自動化

転記先のSharePointリストを作成

次に、申請書のデータを転記するSharePoint リストを作成していきます。ここでの説明は、「申請業務サイト」というSharePointサイトに、「申請リスト」というリストがあらかじめ作成されている状態からはじめます。リストを作成した直後は、[タイトル]列のみが含まれます。[タイトル]列は、必ずリストに含めなければならない特殊な列です。今回は、[タイトル]列には、申請書の「件名」の内容を入れるものとして、そのまま利用します。そのほかの[所属][氏名][email」を「1行テキスト」で作成し、[申請理由][備考]を「複数行テキスト」で作成します。「1行テキスト」や「複数行テキスト」の使い分けは、入力される内容に改行が含まれるかどうかです。改行が含まれる場合は、「複数行テキスト」は改行されたままの状態で表示されるため、内容が見やすくなります。

Excelファイルの内容をSharePointリストに転記|Power Automateではじめる業務の完全自動化

リストに列を追加する

Excelファイルの内容をSharePointリストに転記|Power Automateではじめる業務の完全自動化

Excelファイルの内容をSharePointリストに転記|Power Automateではじめる業務の完全自動化

手動実行トリガーを利用する

今回の業務は、複数の申請書のファイルがフォルダーに溜まったころを見計らって、任意のタイミングでまとめて処理を行うことを想定しています。そのため、作成するフローには、[手動でフローをトリガーします]トリガーを利用します。このフローでは、トリガーの追加設定は行いません。

Excelファイルの内容をSharePointリストに転記|Power Automateではじめる業務の完全自動化

関連記事(LESSON 04)

フォルダー内のファイルをまとめて取得

処理が必要な申請書のExcelファイルは、OneDrive for Businessの中の特定のフォルダーにまとめて保存しておきます。そのためフローからは、そのフォルダーの中にあるファイル一覧を取得します。これには、[OneDrive for Business]コネクタの[フォルダー内のファイルのリスト]アクションが利用できます。このアクションの[フォルダー]の設定で、ファイル一覧を取得したいフォルダーを指定します。ここではあらかじめ用意した[処理対象申請書]フォルダーのファイルを取得します。

Excelファイルの内容をSharePointリストに転記|Power Automateではじめる業務の完全自動化

Excelファイルの内容をSharePointリストに転記|Power Automateではじめる業務の完全自動化

Excelファイルの内容をSharePointリストに転記|Power Automateではじめる業務の完全自動化

Excelファイルの内容をSharePointリストに転記|Power Automateではじめる業務の完全自動化

Excelファイルの内容をSharePointリストに転記|Power Automateではじめる業務の完全自動化

Excelファイル内のテーブルを取得

それぞれのファイルの中には「Excelで作られた申請書をテーブルにする」で解説したようなテーブルがあるため、[Excel Online(Business)]コネクタの[テーブルの取得]アクションで、そのテーブルの情報を取得します。アクションの設定では、[場所]に[OneDrive for Business]を選択し、[ドキュメントライブラリ]には[OneDrive]を選択します。[ファイル]の設定では、テーブルの取得対象のExcelファイルを指定しますが、前のアクションで取得したファイル一覧の情報を利用します。ここでは[フォルダー内のファイルのリスト]アクションから出力される[ID]を選択しましょう。

ここで取得できるテーブルの情報は、テーブルを特定するためのIDや、Excelで設定したスタイルやオプションの値になっています。このテーブルに含まれる行データは、さらに別のアクションで取得する必要があります。

Excelファイルの内容をSharePointリストに転記|Power Automateではじめる業務の完全自動化

Excelファイルの内容をSharePointリストに転記|Power Automateではじめる業務の完全自動化

Excelファイルの内容をSharePointリストに転記|Power Automateではじめる業務の完全自動化

[テーブルの取得]アクション

Excelファイルの内容をSharePointリストに転記|Power Automateではじめる業務の完全自動化

[場所]に[OneDrive for Business]を選択
[ドキュメントライブラリ]に[OneDrive]を選択
[ファイル]は[フォルダー内のファイルのリスト]アクションから出力される[ID]を選択

Excelファイルの内容をSharePointリストに転記|Power Automateではじめる業務の完全自動化

[Apply to each]が自動で追加される理由

自動で[Apply to each]が追加されたのは、さきほど[テーブルの取得]アクションの[ファイル]に設定した[ID]が、複数のファイルの情報を含む値になっているからです。しかしながら、[テーブルの取得]アクションは、同時に1つのファイルからしかテーブルの情報を取得することができません。そのため、[Apply to each]の反復処理を利用し、ファイルの個数分だけ[テーブルの取得]アクションを繰り返すことを意味しています。

[Apply to each]の[以前の手順から出力を選択]には、[Value]が設定されています。この値は、[フォルダー内のファイルのリスト]アクションから出力される、複数のファイルの一覧情報になっています。

Excelファイルの内容をSharePointリストに転記|Power Automateではじめる業務の完全自動化

さらに、挿入された[Apply to each]の枠の中には、さらにアクションを追加することができます。追加されたアクションは、それぞれのファイルに対して実行されます。編集画面上では1つにまとめられて表示されていますが、実行されたときにはファイルの個数分だけ複製されるイメージを持つと良いでしょう。

Excelファイルの内容をSharePointリストに転記|Power Automateではじめる業務の完全自動化

こうした動作は、実行履歴からも確認することができます。[Apply to each]の履歴は、それぞれのファイルごとの処理を個別に確認できるようになっています。

ここでの注意点は、ファイル個別の情報を動的なコンテンツとして利用できるのは、[Apply to each]の枠の中だけであることです。枠の外からは、個々のファイルの情報を利用することはできません。

Excelファイルの内容をSharePointリストに転記|Power Automateではじめる業務の完全自動化

テーブルからデータを取得

[テーブルの取得]アクションによって、データが入力されているテーブルを特定するためのIDを取得できました。ここからは、このIDを利用してテーブルの中にある行データを取得していきます。この行データが、申請書の入力データになっています。

ファイル内のテーブルに含まれるデータを取得するためのアクションは、[Apply to each]の枠内に追加していく必要があります。枠内の[アクションの追加]をクリックし、[Excel Online(Business)]コネクタの[表内に存在する行を一覧表示]を選択します。

このとき、また新たに[Apply to each 2]の枠でアクションが囲まれます。これはExcelファイルの中にはテーブルは何個でも自由に作成でき、[テーブルの取得]アクションで取得できるテーブルの数も、1つではなく複数になる可能性があるからです。複数のテーブルを処理できるよう、自動的にPower Automateが反復処理を追加してくれています。

Excelファイルの内容をSharePointリストに転記|Power Automateではじめる業務の完全自動化

Excelファイルの内容をSharePointリストに転記|Power Automateではじめる業務の完全自動化

Excelファイルの内容をSharePointリストに転記|Power Automateではじめる業務の完全自動化

Excelファイルの内容をSharePointリストに転記|Power Automateではじめる業務の完全自動化

Excelファイルの内容をSharePointリストに転記|Power Automateではじめる業務の完全自動化

JSON形式のデータを扱うポイント

ここまでの手順を終えればあとはそのデータを転記先のSharePointリストに書き込むだけと思われるかもしれませんが、もうワンステップ必要です。 現状を確認するためにも、まずはここまで作成したフローを一度テスト実行してみます。[フォルダー内のファイルのリスト]アクションで設定したOneDrive for Business内のフォルダーに、SECTION02で確認した申請書のExcelファイルを保存し、テストを行いましょう。

テスト結果の実行履歴を見ると、[表内に存在する行を一覧表示]アクションから出力されるデータは、[value]という1つの値になっています。さらにこの[value]をよく見ると、Excel内のテーブルの行の値が角括弧や波括弧で囲まれているのが分かります。このように表記される値のことをJSON形式の値と呼びます。JSON形式の値に含まれるそれぞれの個別の値を動的なコンテンツとして扱うためには、[JSONの解析]アクションを利用します。次のSECTIONでアクションの設定に使うため[value]の値はコピーしておきましょう。

Excelファイルの内容をSharePointリストに転記|Power Automateではじめる業務の完全自動化

JSONを解析してテーブルのデータを扱えるようにする

まずは、画面を再び編集モードに切り替えて、[表内に存在する行を一覧表示]アクションの下に、[データ操作]の[JSONの解析]アクションを追加します。

アクションが追加できたら、[コンテンツ]には[表内に存在する行を一覧表示]アクションの[value]を指定します。これは先ほど確認した、JSON形式の出力です。次に、[スキーマ]の設定を行います。[スキーマ]とは、解析するJSON形式の値がどういった構造であるかを示すものです。複雑に見えますが、スキーマを簡単に設定できるサポート機能があります。

以下の手順のように[サンプルJSONペイロードの挿入]ダイアログに先ほど実行履歴からコピーしておいた、[value]の値を貼り付けて[完了]をクリックすると、必要なスキーマが自動生成されて設定に入ります。

JSON形式のデータは、苦手意識を持たれる人も多くいます。しかし、ここで紹介した[JSONの解析]アクションの使い方を知っておくだけでも、複雑に見えるJSON形式のデータを簡単に扱えるようになります。JSON形式に関しては第5章以降でも詳しく解説します。

Excelファイルの内容をSharePointリストに転記|Power Automateではじめる業務の完全自動化

Excelファイルの内容をSharePointリストに転記|Power Automateではじめる業務の完全自動化

Excelファイルの内容をSharePointリストに転記|Power Automateではじめる業務の完全自動化

Excelファイルの内容をSharePointリストに転記|Power Automateではじめる業務の完全自動化

Excelファイルの内容をSharePointリストに転記|Power Automateではじめる業務の完全自動化

Excelファイルの内容をSharePointリストに転記|Power Automateではじめる業務の完全自動化

SharePointリストにデータを登録する

それでは、いよいよSharePointリストにデータを登録してみましょう。[JSONの解析]アクションのすぐ下に、[SharePoint]コネクタの[項目の作成]アクションを追加します。データを登録する先のサイトを[サイトのアドレス]に指定し、リストを[リスト名]で選択します。 リストを選択したタイミングでリストに作成しておいた列の情報が取り込まれ、それぞれの列に値を入力することができます。ここには、[JSONの解析]アクションから出力されるそれぞれの値を設定しましょう。このときも、新たに[Apply to each3]がPower Automateによって自動的に追加されます。

Excelファイルの内容をSharePointリストに転記|Power Automateではじめる業務の完全自動化

Excelファイルの内容をSharePointリストに転記|Power Automateではじめる業務の完全自動化

Excelファイルの内容をSharePointリストに転記|Power Automateではじめる業務の完全自動化

[項目の作成]アクション

Excelファイルの内容をSharePointリストに転記|Power Automateではじめる業務の完全自動化

転記先のSharePointリストがあるサイトとリスト名を選択
[JSONの解析]アクションの動的なコンテンツから[件名]を選択
[JSONの解析]アクションの動的なコンテンツから[申請理由]を選択
[JSONの解析]アクションの動的なコンテンツから[備考]を選択
[JSONの解析]アクションの動的なコンテンツから[所属]を選択
[JSONの解析]アクションの動的なコンテンツから[氏名]を選択
[JSONの解析]アクションの動的なコンテンツから[email]を選択

これでフローの完成です。[L017]フォルダー内にある練習用のファイルをOneDrive for Businessのフォルダーに保存した状態で、フローをテスト実行してみましょう。正常に動作が完了すれば、SharePointリストに、Excel申請書のデータが転記されているのを確認できるはずです。

好きなタイミングで実行できる[手動でフローをトリガーします]トリガーを利用したフローは、[マイフロー]の一覧かフローの詳細画面の[実行]ボタンをクリックすることで実行できます。毎回リンクを辿って開くのが面倒な場合は、フローの詳細画面をブラウザーのお気に入りに追加しておくと便利です。

Excelファイルの内容をSharePointリストに転記|Power Automateではじめる業務の完全自動化

フローをテスト実行する

Excelファイルの内容をSharePointリストに転記|Power Automateではじめる業務の完全自動化

さらに上達!業務に応じてフローをカスタマイズしよう

作成したフローをさらに進歩させるアイデアも考えてみましょう。Excelの申請書がメールで送られてくるのであれば、その添付ファイルをOneDrive for Businessのフォルダーに自動保存する処理を付け足すこともできます。また、処理済みのファイルを削除したり、ほかのフォルダーに移動させたりしても良いですね。必要な業務の流れに応じて、必要な処理を付け足すことでより便利になります。練習も兼ねて挑戦してみても良いでしょう。

関連記事