Microsoft Outlookの受信トレイには日々大量のメールが届きます。その中から重要なメールを見つけたり、特定の条件に合うメールを把握したりするのは骨が折れる作業です。特に、日々の業務報告や進捗確認のために、受信メールのサマリーを定期的に作成したいというニーズは多いでしょう。
しかし、Outlookの標準機能だけでは、受信メールの件数や送信者、件名などを自動で集計・レポート化することは困難です。そこで本記事では、Microsoft 365の機能であるOffice Scriptsを活用し、Outlookの受信トレイから定期的なレポートを作成する手順を解説します。この方法を使えば、手作業による集計の手間を省き、業務効率を大幅に向上させることができます。
【要点】Office ScriptsでOutlook受信トレイの定期レポートを作成する
- Office Scriptsの概要と活用方法: Outlookのメールデータを自動処理し、レポートを作成する仕組みを理解する。
- スクリプトの作成と設定手順: Outlook Web版でOffice Scriptsエディタを開き、受信トレイを分析するコードを記述・保存する。
- 自動実行の設定: Power Automateを利用して、作成したOffice Scriptsを毎日決まった時間に実行させる方法を学ぶ。
ADVERTISEMENT
目次
Office ScriptsとOutlook連携の仕組み
Office Scriptsは、ExcelなどのMicrosoft 365アプリケーションで、定型作業を自動化するためのJavaScriptベースのスクリプト機能です。Outlook自体に直接スクリプトを記述する機能はありませんが、Office ScriptsはOutlookのデータにアクセスし、処理を行うことが可能です。これは、OutlookのデータがExchange Online上に保存されており、Office ScriptsがそのExchange Onlineと連携できるためです。
具体的には、Outlookのメールアイテム(メールそのもの)にアクセスし、未読メールの件数、特定の送信者からのメール数、件名に含まれるキーワードの数などを取得できます。これらの情報を集計し、Excelファイルに書き出したり、メールで通知したりといった自動化が実現します。この自動化には、Microsoft Power Automateも併用することが一般的です。Power Automateは、様々なMicrosoft 365サービスを連携させ、ワークフローを構築するサービスであり、Office Scriptsをトリガーして実行させることができます。
Outlook受信トレイ分析スクリプトの作成手順
ここでは、Outlookの受信トレイにある未読メールの件数と、特定の送信者(例: “support@example.com”)からのメール件数をカウントするOffice Scriptsを作成します。このスクリプトはOutlook Web版からアクセスして記述します。新しいTeams(v2)や新しいOutlookでは、Web版のインターフェースが若干異なる場合がありますが、Office Scriptsへのアクセス方法は概ね共通です。
Office Scriptsエディタへのアクセス
まず、Office Scriptsを利用するために、Microsoft 365のライセンスが必要です。一般的には、Business Standard、Business Premium、E3、E5などのライセンスに含まれています。スクリプトの作成は、Web版のExcelから行います。
- Web版Excelを開く
ブラウザでExcel Onlineにアクセスし、任意のブックを開きます。 - 「自動化」タブを選択
Excelのメニューバーにある「自動化」タブをクリックします。 - 「すべてのスクリプト」をクリック
「自動化」タブ内にある「すべてのスクリプト」ボタンをクリックします。 - 「新しいスクリプト」を作成
表示される「スクリプト」ウィンドウで、「新しいスクリプト」ボタンをクリックします。これにより、Office Scriptsエディタが開かれます。
受信トレイ分析スクリプトの記述
Office Scriptsエディタが開いたら、以下のコードを記述します。このコードは、Outlookの受信トレイから未読メールの件数と、指定した送信者からのメール件数を取得します。コード内の “support@example.com” の部分は、必要に応じて実際のメールアドレスに変更してください。
注意: Outlookのデータにアクセスするには、Exchange Onlineの権限が必要です。通常、組織のIT管理者によって設定されています。もしスクリプトがOutlookデータにアクセスできない場合は、管理者に確認してください。
function main(workbook: ExcelScript.Workbook) {
// OutlookのメールボックスにアクセスするためのAPIを呼び出す
// この部分は、Office Scriptsが直接Outlook APIを呼び出すのではなく、
// Power Automateなどの外部サービスと連携して実現されることが多いです。
// ここでは、概念的なコードを示し、実際の連携はPower Automateで行います。
// 仮のデータとして、未読メール数と特定送信者からのメール数を取得したとします。
// 実際には、Office ScriptsのOutlook連携機能や、
// Microsoft Graph APIなどを介してこれらの情報を取得します。
// 例: 未読メールの件数を取得
let unreadMailCount = 0;
// 例: 特定送信者 (support@example.com) からのメール件数を取得
let specificSenderMailCount = 0;
// ここに、Outlookからメールデータを取得し、カウントするロジックを記述します。
// Office Scriptsは直接OutlookのAPIを叩く機能を持っていませんが、
// Power Automate経由でMicrosoft Graph APIを利用することで実現可能です。
// そのため、このスクリプト自体は、Power Automateから渡されたデータを受け取るか、
// Power AutomateがGraph APIで取得した結果をExcelに書き込む、という形が一般的です。
// 今回は、Power Automateが取得した結果をExcelに書き込むことを想定し、
// その結果を表示する部分を記述します。
// Excelシートに結果を出力する処理
const sheet = workbook.getActiveWorksheet();
// ヘッダー行の書き込み
sheet.getRange("A1").setValue("レポート作成日時");
sheet.getRange("B1").setValue("未読メール件数");
sheet.getRange("C1").setValue("特定送信者 (support@example.com) からのメール件数");
// 現在の日時を取得
const now = new Date();
const timestamp = now.toLocaleString();
// 結果をシートに書き込む (仮の値)
// 実際には、Power Automateから渡された値や、
// Graph APIで取得した値を使用します。
// ここでは、仮の未読メール数と特定送信者からのメール数を設定します。
unreadMailCount = 15; // 仮の値
specificSenderMailCount = 3; // 仮の値
sheet.getRange("A2").setValue(timestamp);
sheet.getRange("B2").setValue(unreadMailCount);
sheet.getRange("C2").setValue(specificSenderMailCount);
// 列幅の自動調整
sheet.getUsedRange().getFormat().autofitColumns();
console.log("受信トレイレポートがExcelに作成されました。");
}
コードの解説と補足:
- 上記のコードは、Office Scriptsが直接Outlookのメールボックスにアクセスする機能を持っていないため、概念的な記述となっています。実際のOutlook連携は、Microsoft Graph APIを利用し、Power Automateを介して行います。
- Power Automateフロー内で、Microsoft Graph APIを使ってOutlookからメールデータを取得し、その結果をExcelのブックに書き込みます。
- そして、そのExcelブックに対してOffice Scriptsを実行し、取得したデータを整形してレポートとして出力するという流れになります。
- このスクリプトでは、Excelの現在アクティブなシートに、レポート作成日時、未読メール件数、指定した送信者からのメール件数を書き込む処理を記述しています。
- `console.log()` は、スクリプト実行時にデバッグ情報を確認するためのものです。
スクリプトの保存
コードを記述したら、スクリプトを保存します。スクリプトエディタの上部にある「名前を付けて保存」ボタンをクリックし、分かりやすい名前(例: “InboxReportScript”)を入力して保存します。
Power Automateによる自動実行設定
作成したOffice Scriptsを毎日自動で実行し、レポートを作成するには、Power Automateを利用します。Power Automateでフローを作成することで、指定した時間にスクリプトが実行され、結果がExcelファイルに記録されるようになります。
Power Automateフローの作成
まず、レポートの出力先となるExcelブックをOneDrive for BusinessまたはSharePointに準備します。このブックには、スクリプトが書き込むためのシート(例: “レポート”)が必要です。
- Power Automateにアクセス
ブラウザでPower Automate (make.powerautomate.com) にアクセスし、サインインします。 - 「作成」から「スケジュール済みクラウドフロー」を選択
左側のメニューから「作成」を選択し、「スケジュール済みクラウドフロー」をクリックします。 - フロー名と実行間隔を設定
フロー名に「Outlook受信トレイレポート作成」などを入力します。 - 「繰り返し間隔」を「日」に、「時刻」をレポートを作成したい時間(例: 毎日午前9時)に設定します。
- 「作成」ボタンをクリック
設定が完了したら「作成」ボタンをクリックします。
Microsoft Graph APIコネクタの追加
フローの最初のステップとして、Outlookのメールデータを取得します。ここではMicrosoft Graph APIを利用します。
- 「新しいステップ」をクリック
フローデザイナー画面で、「新しいステップ」をクリックします。 - 「Microsoft Graph」を検索
検索ボックスに「Microsoft Graph」と入力し、コネクタを選択します。 - 「Get messages」アクションを選択
利用可能なアクションの中から「Get messages」を選択します。 - 「フォルダー」で「受信トレイ」を選択
「フォルダー」のドロップダウンリストから「受信トレイ」を選択します。 - 「トップN」に取得したいメール数を設定
例えば、直近100件のメールを取得したい場合は「100」と入力します。 - 「フィルタークエリ」で条件を指定
未読メールのみを取得したい場合は、フィルタークエリに `isRead eq false` と入力します。特定の送信者からのメールを取得したい場合は `from eq ‘support@example.com’` のように指定します。
Office Scriptsコネクタの追加
次に、取得したメールデータをOffice Scriptsに渡してExcelに書き込ませます。
- 「新しいステップ」をクリック
「Get messages」アクションの後に、「新しいステップ」をクリックします。 - 「Office Scripts」を検索
検索ボックスに「Office Scripts」と入力し、コネクタを選択します。 - 「Run script」アクションを選択
利用可能なアクションの中から「Run script」を選択します。 - スクリプトの場所とスクリプト名を選択
「スクリプトの場所」で、スクリプトを保存したExcelブックがある場所(OneDrive for BusinessまたはSharePoint)を選択します。 - Excelブックとスクリプト名を選択
「ドキュメントライブラリ」でExcelブックが保存されているライブラリを選択し、「ファイル名」でそのExcelブックを選択します。 - 「スクリプト名」で作成したスクリプト(例: “InboxReportScript”)を選択します。
- 「スクリプト パラメーター」を設定(必要であれば)
もしスクリプトがパラメータを受け取るように設計されている場合は、ここで値を設定します。今回の例ではパラメータは使用しません。
Excelへの書き込み処理の確認
Office Scriptsのコードで、Power Automateから渡されたデータをExcelに書き込む部分が正しく機能するか確認します。前述のスクリプト例では、`unreadMailCount` や `specificSenderMailCount` を仮の値として設定していますが、実際にはPower Automateから渡された値を使用するように変更する必要があります。
Power Automateの「Get messages」アクションで取得したメールの件数などを、Office Scriptsのスクリプトパラメータとして渡すか、あるいはPower Automate側でExcelに直接書き込む処理を追加することも可能です。より汎用的な方法としては、Power Automateでメールの件数などを計算し、その結果をOffice Scriptsのパラメータとして渡す、という形になります。
Power Automateでのメール件数カウント例:
- 「Get messages」アクションの後に追加
「Get messages」アクションの後に、新しいステップとして「データ操作」コネクタの「初期化変数」アクションを追加します。 - 変数の初期化
「名前」に「UnreadCount」、「型」に「整数」を設定します。 - 「Apply to each」ループの追加
「Get messages」アクションの結果を処理するため、「Apply to each」アクションを追加します。 - 条件分岐(If)の追加
「Apply to each」ループの中に「条件」アクションを追加します。 - 条件の設定
「isRead」プロパティが「false」であるか、または「from.email」が指定したメールアドレスと一致するか、といった条件を設定します。 - 条件が真の場合に変数に加算
条件が満たされた場合に、「初期化変数」で作成した「UnreadCount」変数に1を加算するアクションを追加します。 - Office Scriptsへのパラメータ渡し
Office Scriptsの「Run script」アクションで、「スクリプト パラメーター」として `UnreadCount` 変数の値を渡します。スクリプト側では、このパラメータを受け取るようにコードを修正します。
フローの保存とテスト
フローのすべてのステップを設定したら、右上の「保存」ボタンをクリックしてフローを保存します。その後、「テスト」ボタンをクリックして、手動でフローを実行し、期待通りに動作するか確認します。テストが成功したら、フローはスケジュールされた時間に自動実行されるようになります。
ADVERTISEMENT
新しいTeams(v2)・新しいOutlookでの注意点
新しいTeams(v2)や新しいOutlookは、UIや一部機能が変更されています。Office Scriptsへのアクセス方法や、Power Automateとの連携方法自体は大きく変わりませんが、Web版のインターフェースでメニューの配置などが異なる場合があります。もし、Office Scriptsエディタが見つからない場合は、TeamsやOutlookのWeb版の「設定」メニューなどを確認してみてください。
また、組織のIT管理者によって、Office ScriptsやPower Automateの利用が制限されている場合もあります。もし手順通りに進まない場合は、組織のポリシーや管理者設定を確認することをお勧めします。
まとめ
本記事では、Microsoft Outlookの受信トレイから定期的なレポートを作成するために、Office ScriptsとPower Automateを連携させる手順を解説しました。これにより、未読メールの件数や特定の送信者からのメール件数を自動で集計し、Excelファイルに記録することが可能になります。
まずは、Outlook Web版からOffice Scriptsエディタにアクセスし、基本的なスクリプトを作成することから始めてみましょう。次に、Power AutomateでMicrosoft Graph APIを利用してメールデータを取得し、作成したスクリプトを実行するフローを構築します。この自動化により、日々のメール管理業務の効率が大きく向上します。
さらに応用として、取得したメールデータを分析し、特定のキーワードを含むメールの件数をカウントしたり、メールの内容を要約してレポートに含めたりすることも可能です。ぜひ、この自動化を活用して、Outlookのメール管理をよりスマートに進めていきましょう。
ADVERTISEMENT
超解決 リモートワーク研究班
Microsoft 365の導入・保守を専門とするエンジニアグループ。通信障害やサインイン不具合など、ビジネスインフラのトラブル対応に精通しています。
Office・仕事術の人気記事ランキング
- 【Outlook】宛先が「オートコンプリート」に出ない・間違っている時の修正手順|履歴の削除と再構築
- 【Outlook】メールの受信が数分遅れる!リアルタイムで届かない時の同期設定と送受信グループ設定
- 【Word】差し込み印刷で数字の桁を整える!金額にカンマ(桁区切り)を入れる設定
- 【Excel】矢印キーで「セルが動かず画面がスクロールする」!ScrollLockの解除方法(ノートPC対応)
- 【Outlook】「メール送信を5分遅らせる」設定!誤送信を防ぐ最強のディレイ機能
- 【神技】保存せずに閉じたExcel・Wordファイルを復元する!消えたデータを復活させる4つの救出法
- 【Outlook】予定表の「祝日」が表示されない!最新カレンダーの追加と二重表示の修正手順
- 【Teams】会議の「参加者リスト」を出席後にダウンロードする!誰が参加したか確認する手順
- 【Teams】メッセージを「保存済み」にして後で読む!重要なチャットをブックマークして整理する技
- 【Excel】文字がセルの枠からはみ出す・隠れる!「折り返して表示」と「縮小して全体を表示」の使い分け
