Excelの自動処理×メール送信をフル自動化:Python × Outlook 入門

はじめに

日常業務で「Excelの集計結果を上司やチームにメールで送る」という作業を、毎日手作業でやっていませんか?
Pythonを使えば、Excelの処理からOutlookでのメール送信までを完全自動化できます。

本記事では、以下のような流れで実装方法を紹介します。

  1. Excelデータの読み取り・集計
  2. 処理結果をファイルに保存
  3. 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を使えば、毎日のルーティン業務を人手を介さず自動化できます。
これにより、単純作業の時間を削減し、より価値の高い業務に集中できるようになります。

タイトルとURLをコピーしました