第11章:Outlookとの連携(基礎)
こんにちはっ🐰✨
今回は、ついに Excel VBAからOutlookを操作する魔法 に突入だよ!
メール送信、本文作成、件名自動入力……
まくるの魔法で「毎日同じメール送るのしんどい問題」を解決しちゃおう📨
✉️ Outlookを起動してメールを作成する
まずは、基本のテンプレートから👇
Sub CreateMail()
Dim outlookApp As Object
Dim mailItem As Object
' Outlookを起動
Set outlookApp = CreateObject("Outlook.Application")
Set mailItem = outlookApp.CreateItem(0) ' 0 = olMailItem
' メール内容を設定
With mailItem
.To = "test@example.com"
.CC = ""
.BCC = ""
.Subject = "【自動送信】お知らせ"
.Body = "こんにちは!これはVBAから送信するメールです。"
.Display ' ← 表示だけ(送信はしない)
End With
End Sub
📌 .Display
を .Send
に変えれば即送信もできるけど、まずは表示して確認しようね!
🧪 表形式のデータをメール本文に使うには?
複数セルの値をまとめてメール本文に使いたいときは、こんなふうに👇
Sub SendRangeAsText()
Dim outlookApp As Object
Dim mailItem As Object
Dim textBody As String
textBody = "本日のデータ一覧:" & vbCrLf
textBody = textBody & "-------------------" & vbCrLf
textBody = textBody & "名前:" & Range("A1").Value & vbCrLf
textBody = textBody & "売上:" & Range("B1").Value & "円" & vbCrLf
Set outlookApp = CreateObject("Outlook.Application")
Set mailItem = outlookApp.CreateItem(0)
With mailItem
.To = "test@example.com"
.Subject = "本日の報告"
.Body = textBody
.Display
End With
End Sub
-
vbCrLf
は改行(メール本文で必須!) - Excelから値を取り出して、本文に合体するだけでOK!
📎 ファイルを添付するには?
.Attachments.Add "C:\Users\user\Desktop\報告書.xlsx"
これを .With
ブロックの中に入れれば添付もできるよ📎
💡 メール送信に関する注意点
- Outlookが起動していないと送信できない
-
.Send
すると即送信なので、テスト時は.Display
を使おう - セキュリティ設定により警告が出る場合もある(社内環境次第)
📌 まとめ
-
CreateObject("Outlook.Application")
でOutlookを起動 -
.To
,.Subject
,.Body
でメールを組み立てよう -
.Display
と.Send
を使い分けてね!
次回は、 「第12章:Outlookとの連携(応用)」
予定表や受信トレイも自由自在!?さらに強力なメール魔法を紹介するよ📅🧙♀️