- プログラミングは分からないけど自動化したい
- PowerAutomateの使い方がイマイチ分からない
- Excelファイルのデータを読み取りメールで送りたい
無料ツールでさらにノンプログラミングで自動化ができるならぜひやってみたい!
この記事では、そんな方に向けてOneDriveにあるExcelのデータを取得してメールで送信する方法を3ステップで説明します。
- Excelにテーブルを設定
- フローを作成
- 日付の変換処理を追加
まだPowerAutomateを使った事が無いという方はこちらの記事を参考にしてください。
PowerAutomateはブラウザで操作するのでインストール無しで利用できます。Windows10ではないMacユーザも自由に使えます。
Excelにテーブルを設定
デスクトップ版クラウド版どちらもExcelのデータを取得できますが、参照方法に違いがあります。
デスクトップ版 :デスクトップPCから開けるファイルで、セルやシートを自由に選択できる。
クラウド版 :OneDriveやShearPointOnlineなどクラウドのファイルで、テーブルしか選択できない。
クラウド版はテーブルしか選択できないんです。テーブルというのは表と同じ意味で普段のExcelの使い方と変わりません。ただ、表を「テーブル」として指定してあげる必要があります。最初に表をテーブルにする方法から説明をはじめます。
表の範囲を選択して「挿入」-「テーブル」と押します。

チェックを入れて「OK」を押します。

表がテーブル形式になり色が付きました。
初期のテーブル名は「テーブル1」です。他のテーブル名と被りやすいので変更しておきます。
ツールバーの「デザイン」からテーブル名を表示させ「申請台帳テーブル1」を入力します。
そしてダミーデータを入力しておきます。

クラウド版PowerAutomateから参照できるようにOneDriveへ保存します。

これでExcelの準備ができました。
フローを作成
フローはトリガーとアクションで構成されます。今回は3つを組み合わせて作ります。
- トリガー:手動のトリガーを設定
- アクション:Excelの行を取得
- アクション:Outlookでメール送信
それではフローを作っていきましょう。
(1)トリガー:手動のトリガーを設定
まだ画面を開いていない方はMicrosoftの公式サイトからPowerAutomateを開いてください。
「作成」から「インスタントクラウドフロー」を選択。
※手動で実行できるフローにします。

フロー名を「Excelの情報をメール送信」にして、
「手動でフローをトリガーします」を選択します。

(2)アクション:Excelの行を取得
新しいステップを選択。

Excelと入力して表示された「Excel Online(OneDrive)」を選択します。

行を入力して「行の取得」を選択。

ファイルには「申請管理台帳.xlsx」を設定。

テーブルは「申請台帳テーブル1」を設定。

キー列に「作業状況」を設定。

キー値に「未完了」を入力。
「新しいステップ」をクリック。

(3)アクション:Outlookでメール送信
Outlookを入力して「Outlook.com」を選択。

「メールの送信」を選択。

宛先の「動的なコンテンツ」を選択。

「メールアドレス」を選択。

件名と本文を入力。
件名:作業日の連絡
本文:文章を入力して「作業日:」の後に動的なコンテンツの「作業予定日」を選択。

続けて、「申請書名:」と入力して、動的なコンテンツの「申請書名」を選択。

文章を入力し終えたら、保存を押します。

これでフローは完成ですが、1つ問題があります。
Excelから取得した日付が正しく表示されません。
2022/7/15と表示させたい部分は「44757」の数字になります。この問題を解消する為に次の項目で日付の変換処理を説明します。
日付の変換処理を追加
行の取得とメールの送信の間に2つアクションを追加します。
時間への追加 :「44757」の数字を日付に変える
データ操作 :日付をyyyy/mm/ddの形式にする

それでは進めていきましょう。
行の取得とメールの送信の間にある+マークから「アクションの追加」を選択します。

コネクタ「日時」の「時間への追加」を選びます。
①で日時と入れて③のアクションが表示されていれば②を選択する必要はありません。

3か所を設定します。
- 基準時間:1899/12/30
- 間隔 :[作業予定日]
「動的なコンテンツ」から「作業予定日」を選択する。 - 時間単位:日

時間への追加とメールの送信の間にある+マークから「アクションの追加」を選択します。

コネクタ「データ操作」の「作成」を選びます。
①でデータ操作と入れて③のアクションが表示されていれば②を選択する必要はありません。

データ操作の作成では関数を使い日付の形式を変更します。
変更前
変更後
ここからは式を作成する操作を説明しますが、分かりにくいので先に結果を記載しておきます。
formatDateTime(body(‘時間への追加’),’yyyy/MM/dd’)
「動的なコンテンツ」から「式」を選択

formatと入力して「formatDateTime」を選択。
※細かい操作が面倒な方は「formatDateTime(body(‘時間への追加’),’yyyy/MM/dd’)」を入力してOKを押します。

formatDateTimeの後ろに ( を入力します。※自動で ) が入力されます。
動的なコンテンツから「算出時間」を選択します。
と表示されます。

式の続きに「,’yyyy/MM/dd’」を入力します。
formatDateTime(body(‘時間への追加’),’yyyy/MM/dd’)
上の式と同じになっている事を確認してOKを押します。

最後にメールの本文を修正します。
作業予定日を×で削除します。

動的なコンテンツから「出力」を選択。

保存を押します。

保存できたら、マイフローから実行ボタンを押して動かします。

届いたメールの内容です。

Excelから情報を取得して作業予定日をメールで送ることができました。
まとめ
OneDriveにあるExcelのデータを取得してメールで送信する方法を3ステップで説明しました。
- Excelにテーブルを設定
- フローを作成
- 日付の変換処理を追加
Excelは表をテーブルに設定する必要がありました。またExcelから日付を取得する場合は、変換処理がセットで必要になる事も覚えておきましょう。
PowerAutomateのおすすめ記事
人気ページ
Apply to eachの使い方
アレイのフィルター処理の使い方
日付関数の使い方
エラーを無視する方法
メールの内容をExcelへ転記
メール本文から名前を抽出
>>PowerAutomateの記事一覧を見る<<
お気に入り必須!公式ページ
Microsoft Power Automate
式関数のリファレンス
コネクタのリファレンス
Excel Online (Business)のリファレンス