はじめに
日常業務で「Excelの集計結果を上司やチームにメールで送る」という作業を、毎日手作業でやっていませんか?
Pythonを使えば、Excelの処理からOutlookでのメール送信までを完全自動化できます。
本記事では、以下のような流れで実装方法を紹介します。
- Excelデータの読み取り・集計
- 処理結果をファイルに保存
- Outlookを操作して自動メール送信
これを仕組み化すれば、毎日の定型業務がワンクリック → 完全自動化に変わります。
必要な環境
- Windows(Outlookがインストールされていること)
- Python 3.x
- ライブラリ
pip install pandas openpyxl pywin32
ステップ1:ExcelデータをPythonで処理
まずは、Excelファイルを読み取り、簡単な集計をしてみます。
import pandas as pd
# Excelファイルを読み込み
df = pd.read_excel("sales_data.xlsx")
# 部署ごとの売上合計を集計
summary = df.groupby("部署")["売上"].sum().reset_index()
# 集計結果を新しいExcelに保存
summary.to_excel("sales_summary.xlsx", index=False)
print("集計完了: sales_summary.xlsx を出力しました")
ここでは「部署ごとの売上」を集計し、新しいExcelファイルに保存しています。
ステップ2:Outlookでメールを自動送信
次に、pywin32
を使って Outlook を操作します。
import win32com.client as win32
# Outlookアプリを起動
outlook = win32.Dispatch("Outlook.Application")
# 新規メール作成
mail = outlook.CreateItem(0)
mail.To = "example@company.com" # 宛先
mail.Subject = "売上集計レポート"
mail.Body = "本日の売上集計結果を送付いたします。ご確認ください。"
# 添付ファイルを追加
attachment_path = "sales_summary.xlsx"
mail.Attachments.Add(attachment_path)
# メール送信
mail.Send()
print("メールを送信しました")
このコードを実行すると、Excelの集計結果を自動でメール送信できます。
ステップ3:フル自動化の流れをまとめる
Excelの処理とメール送信を組み合わせると、次のようにフル自動化スクリプトが完成します。
import pandas as pd
import win32com.client as win32
# === Excel集計処理 ===
df = pd.read_excel("sales_data.xlsx")
summary = df.groupby("部署")["売上"].sum().reset_index()
summary.to_excel("sales_summary.xlsx", index=False)
# === Outlookメール送信 ===
outlook = win32.Dispatch("Outlook.Application")
mail = outlook.CreateItem(0)
mail.To = "example@company.com"
mail.Subject = "売上集計レポート"
mail.Body = "お疲れ様です。本日の売上集計をお送りします。"
mail.Attachments.Add("sales_summary.xlsx")
mail.Send()
print("処理完了:集計とメール送信を自動化しました。")
応用:タスクスケジューラで毎日自動実行
このスクリプトを Windows タスクスケジューラ に登録すれば、決まった時間に自動実行できます。
- 毎朝9時に自動集計&メール送信
- 月末に締め処理レポートを自動送信
など、業務に合わせて柔軟に設定できます。
まとめ
- pandas でExcelを処理
- pywin32 でOutlookを操作
- タスクスケジューラ で完全自動化
Pythonを使えば、毎日のルーティン業務を人手を介さず自動化できます。
これにより、単純作業の時間を削減し、より価値の高い業務に集中できるようになります。