Power Automateでデータ転記とファイル保存を自動化!

Power Automateでデータ転記とファイル保存を自動化!

7月 24, 2023

記事の監修

S.Sato

記事の監修


S.Sato

マネジメント&イノベーション事業部 開発部/ユニット2 リーダー資格 Microsoft Offiece Specialist Master 2007、ITパスポート 2022年よりMicrosoft365とPowerPlatformの案件を担当。それ以前は業務・Web系システムを要件定義からリリースまでの開発に従事。IT業界歴15年の経験を活かし、PJを牽引し後続の育成にも力を注ぐ。趣味は散歩で、思考が煮詰まった際には、近所の緑道を散歩し、新たな発見や自然からのインスピレーションを受けている。

無料ご相談受付中 まずはお気軽にご相談ください

Contents

目次

こんなお悩みはございませんか?
サーバーの利用状況を示すCSVファイルが週1回システム担当者からメールで送付されてくるが、それを毎回手作業でExcelファイルに取り込んでグラフを作成するのが煩わしい。
基幹システムの売上データ(CSVファイル)を夕方にメールで受け取って、それからExcelファイルに手作業​で取り込んでデータ集計やグラフを作成し、明朝の営業会議までに準備する毎日の作業が手間である。
Excelの請求データを別の請求書のExcelファイルに転記する作業に追われて、特に月末などは他の仕事に手が回らない。
全てPower Automateで簡単に解決できます!

PowerAutomateで予めフローを設定すれば、受信したメールに添付されたCSVファイルのデータやExcelファイルのデータを、別のExcelファイルの指定位置へ転記し指定のファイル名を付けて特定の場所に保存する、というフローを一瞬で完了することができます。
例えば、サーバーの利用状況を示すCSVファイルや売上げデータのCSVファイルを、Excelファイル内の計算式によって自動計算し新たなExcelファイルを生成して別名で保存する、というフローを自動化できます。
また、Excelの請求データをフォーマットの決まった別のExcelファイルの請求書へ転記して希望の場所に自動的に保存することもできます。この場合、請求書のExcelファイルを保存する時にファイル名に日付を付けて自動的に保存することも可能です。
Power Automateで業務の自動化を行って、社内の業務改善を行ってみてはいかがでしょうか?
今回はファイルが添付されたメールを受信した時に、Share Point上に作成したExcelファイルに、添付ファイルのデータが自動で追加転記をされていくというフローの作成方法を具体的に紹介してきますね。
作成するフローの全体図
「Apply to each」の中
「Apply to each」の中(全行ループ)
事前準備

Excelファイルにtableが作成された状態の物をSharePointやOneDriveに作成し保存してください。​
今回はSharePointにファイルを作成し説明いたします。このファイルに添付ファイルの情報が記載されます。
ファイルの中はこの様なテーブルが作成されています。
1. Power Automate 新しいフローを作成
1-1. 「マイフロー」を選択

「Power Automate」を開き、「マイ フロー」を選択します。
my_flow
1-2. 「自動化したフロー」を選択

「新しいフロー」から「自動化したクラウド フロー」を選択します。
1-3. 「フロー名」を入力

「フロー名」に任意のフロー名を入力します。今回は、「メールの添付ファイルを自動保存」と入力します。 続いて「フローのトリガーを選択してください」に「outlook」と入力し、「新しいメールが届いたとき(V3) Office 365 Outlook」を選択します。入力内容に問題がなければ「作成」を選択します。 name_flow
2. 「新しいメールが届いたとき」の設定

「新しいメールが届いたとき(V3)」のアクションが表示されますので、「詳細オプションを表示する」を選択します。
action
詳細オプションを設定できますので、添付ファイル付きのメールが届いた時にフローが起動されるように、「添付ファイルを含める」を「はい」、「添付ファイル付きのみ」を「はい」に変更します。
また、特定の差し出し人からメールが届いた時にフローが起動されるようにするには、「差出人」に該当メールアドレスを入力したり、件名でフィルターをかけることができます。
詳細は「Learn 新しいメールが届いたとき (V3)」を参照してください。
arrive
3. 変数の作成
3-1. 変数「コンテンツ」の作成・変数「空白の削除」の作成
「+新しいステップ」を押下します。​
「コネクタとアクションを検索する」に変数と入力し検索結果の「変数を初期化する」を押下します。
変数に使用する名前を入力します。今回は名前を「コンテンツ」で作成します。
種類を「文字列」で指定します。値は無記入で問題ありません。同じ要領で「+新しいステップから」「変数を初期化する」、変数に使用する名前を「空白の削除」で作成します。
【補足情報】
■「・・・」からアクションの名前を変更する事が出来ます。フローが長くなる場合、同じアクションを使用する場合など、名前を付けて見分けがつくようにすると フローの修正などが行いやすくなります。
■「・・・」を押下し名前の変更を押下します。名前の箇所が記入出来るようになるので、アクションの名前を記入しエンターキーを押下します。

3-2. 変数「改行」の作成
「+新しいステップ」を押下します。​
「コネクタとアクションを検索する」に「変数」と入力し検索結果の「変数を初期化する」を押下します。
変数の名前を「改行文字」とします。種類は「文字列」を指定、値に一回だけ改行(リターンキー押下)をします。
3-3. 変数「列配列」の作成
「+新しいステップ」を押下します。​
「コネクタとアクションを検索する」に「変数」と入力し検索結果の「変数を初期化する」を押下します。
変数の名前を「列配列」とします。種類は「アレイ」を指定します。
4. 「添付ファイルの取得」アクション
「+ 新しいステップ」から「添付ファイルの取得」アクションを作成します。
作成すると「Apply to each」が自動的に挿入されますが、これは添付ファイルが複数だった場合に全て保存するようにするために自動で作成されます。
1.メッセージIDに動的なコンテンツの「新しいメールが届いたとき 」内に有る「メッセージID」を選択します。
2.同じ様に添付ファイルIDに動的なコンテンツの「新しいメールが届いたとき 」内にある「添付ファイルID」を指定します。
5. 「ファイルの作成」アクション
今回は作成先、保存先をSharePointで実装しますので、SharePointに添付ファイルのコピーファイルを作成します。
1.「+ 新しいステップ」から「ファイルの作成」アクションを作成します。
2.「サイトのアドレス」を、保存するサイトのパスにします。押下すると候補箇所がドロップダウンから選択できます。
「フォルダーのパス」に保存する箇所のパスを記載します。フォルダーのマークから指定していく事も可能です。
3.「ファイル名」にファイルの名前を記載します。(添付ファイルと同じにする場合は動的なコンテンツの「添付ファイルの取得」アクション内に有る「名前」を選択します。)
4.「ファイルコンテンツ」に動的なコンテンツの「新しいメールが届いたとき 」内に有る「コンテンツのバイト数」を選択します。
6. 「ファイルコンテンツの取得」アクション
「+ 新しいステップ」から「ファイル コンテンツの取得」アクションを作成します。
サイトのアドレスはコピーファイルを作成したサイトを指定します。
ファイル識別子に動的なコンテンツ、「ファイルの作成」内に有る「id」を選択します。
7. 変数「コンテンツ」に「ファイルコンテンツの取得」で得た情報を入れる
「+ 新しいステップ」から「変数の設定」アクションを作成します。
名前を押下すると、初期化した変数の名前がドロップダウンで表示されます。
「コンテンツ」を指定し、値に動的なコンテンツ、「ファイルコンテンツの取得」内に有る「ファイルコンテンツ」を選択します。
8. 変数「空白の削除」で「コンテンツ」の余計な空白の削除
「+ 新しいステップ」から「変数の設定」アクションを作成します。
名前を押下すると、初期化した変数の名前がドロップダウンで表示されます。
「空白の削除」を指定し、値を押下します。
=====
以下、式を入力します。
trim(variables(‘コンテンツ’))
=====
【補足情報】
■trim関数でコンテンツの前後に有る空白を削除します。
■式にtrimと入力、動的なコンテンツを押下し、変数「コンテンツ」を選択することでこの式を作成することが出来ます。
9. 変数「列配列」を改行させる
「+ 新しいステップ」から「変数の設定」アクションを作成します。
名前を押下すると、初期化した変数の名前がドロップダウンで表示されます。
「列配列」を指定し、値を押下します。
=====
以下、式を入力します。
split(variables(‘空白の削除’),variables(‘改行文字’))
=====
【補足情報】
■8.で作成された空白のないコンテンツを改行が内包された変数と合わせて分割させるようにします。
■式にsplitと入力、動的なコンテンツを押下し、変数「空白の削除」、「改行文字」を選択することでこの式を作成することが出来ます。
10. Apply to eachを作成し全行を改行させるようにループさせる
「+ 新しいステップ」から「Apply to each」アクションを作成します。
Apply to eachの「以前の手順から出力を選択」の値に「列配列」を選択します。
変数の設定アクションを作成し、名前に「列配列」を指定します。
=====
以下、式を入力します。
split(items(‘全行ループ’),‘,’)
=====
【補足情報】
■コピーファイルの全行に対してsplit関数を当てます。
11. 変数の値を表に入れる
「+ 新しいステップ」から「表を行に追加」アクションを作成します。
場所、ドキュメントライブラリ、ファイルは事前準備で作成したファイルの場所、ファイル名を指定してください。
作成したファイルを入れるとテーブルにExcel内に有るテーブルを選択できるようになります。
今回このExcelファイルに有るテーブルの情報は下記になり、それぞれに「列配列」の値を入れていきます。
申請者:variables(‘列配列’)[0]
メールアドレス:variables(‘列配列’)[1]
作業予定日:variables(‘列配列’)[2]
12. csvの不要箇所の削除
先の状態で入れるとファイルに申請者、メールアドレス、作業予定日も入力されてしまうのでこの行だけ削除します。
「+ 新しいステップ」から「行の削除」アクションを作成します。
場所、ドキュメントライブラリ、ファイルは事前準備で作成したファイルの場所、ファイル名を指定してください。
作成したファイルを入れるとテーブルにExcel内に有るテーブルを選択できるようになります。
「キー列」に値のキーとなる情報をドロップダウンから選べるので指定します。
今回は「メールアドレス」を指定しました。
「キー値」に削除する行の値を入力します。メールアドレスの列にメールアドレスの表記が有る行を削除したいので、「メールアドレス」を指定します。
13. 作成したフローの保存
設定が完了したら「保存」を選択します。
14. テストのやり方

保存が完了したら、動作確認をするため「テスト」を選択します。
14-1. 「フローのテスト」の設定

フローのテストを「手動」を選択して、「テスト」を選択します。
14-2. テストの待機状態

メールが送信されるまで待機する状態になります。
14-3. テスト実行

作成したフローが問題なく動作しているかテストをしてみます。
宛先に自分のメールアドレスを指定し、csvファイルを添付、メール送信をします。
添付ファイルはこちらを使用します。
14-4. フローの実行結果

メールが送信されると、先程待機状態だったフローが実行され、「ご利用のフローが正常に実行されました。」と表示されればフローの作成が完了です。
14-5. 結果

「SharePoint 」の「メールの添付ファイル自動保存先」フォルダを確認すると、メールに添付されたファイルが保存されていることが確認できます。
事前準備で作成したファイルにcsvファイルの情報が記載されていることが確認できます。
補足.二つ添付した場合
二つ添付された状況で送信すると先に添付したファイルの情報が先に反映されます。※csvの行の名前が異なる場合、行の削除を新たに作成する必要が有ります。
「tesu1.civ」と「tesu-コピー.csv」の二つを送ります。一つは内容を変えずもう一つの内容を下記画像の物にします。
結果が下記内容になります。

無料ご相談受付中 まずはお気軽にご相談ください

Microsoftを導入してコスト効率をよくしたい

Microsoftを導入して
コスト効率をよくしたい

Microsoftに関して気軽に聞ける相談相手が欲しい

Microsoftに関して
気軽に聞ける相談相手が欲しい

Microsoftを導入したが、うまく活用できていない・浸透していない

Microsoftを導入したが、うまく活用できていない・浸透していない

社内研修を行いたいが社内に適任者がいない

社内研修を行いたいが
社内に適任者がいない

Bizwindでは、Microsoft導入支援事業などを中心に
IT・DX推進に関する様々なご相談を承っております。
ご相談・お見積りは無料です。まずはお気軽にお問い合わせください。

無料ご相談はこちら

ビズウインドでは、 様々な課題でお困りの お客様に対して、 無料相談を実施しております。

無料相談に申し込む