VBAでメールを送信するには、Outlookを操作する方法が最も一般的で簡単です。以下に、Outlookを使ってVBAでメールを送信する方法を詳しく紹介します。

✅ 基本ステップ
【Step 1】参照設定の追加(推奨)
VBAエディタで以下の操作をしてください:
- Alt + F11でVBAエディタを開く
- メニュー「ツール」→「参照設定」
- 「Microsoft Outlook xx.x Object Library」にチェックを入れる
※この設定をしなくても「CreateObject」を使えば動作しますが、IntelliSense(候補表示)が使えるようになります。
📨 メール送信の基本コード(Outlook使用)
Sub メール送信()
Dim olApp As Object ' Outlook.Application
Dim olMail As Object ' Outlook.MailItem
' Outlook起動(すでに起動していれば既存インスタンスを使う)
Set olApp = CreateObject("Outlook.Application")
Set olMail = olApp.CreateItem(0) ' 0 = olMailItem
' メール内容を設定
With olMail
.To = "recipient@example.com" ' 宛先(To)
.CC = "cc@example.com" ' CC(必要に応じて)
.BCC = "bcc@example.com" ' BCC(必要に応じて)
.Subject = "VBAからのメール送信テスト" ' 件名
.Body = "これはVBAから送信されたテストメールです。" ' 本文(テキスト)
'.HTMLBody = "<b>HTML形式の本文も可能です。</b>" ' HTML形式も可
'.Attachments.Add "C:\パス\ファイル.txt" ' 添付ファイル(必要に応じて)
.Send ' または .Display で表示のみ
End With
' クリーンアップ
Set olMail = Nothing
Set olApp = Nothing
End Sub
💡 ポイント解説
項目 | 解説 |
---|---|
.To | 宛先のメールアドレス(カンマ区切りで複数指定可能) |
.Subject | 件名 |
.Body / .HTMLBody | 本文(プレーン or HTML) |
.Attachments.Add | 添付ファイル(フルパス指定) |
.Send | すぐに送信 |
.Display | 送信前にメール作成画面を表示(手動で確認) |
🛡️ 注意事項
- Outlookがインストールされている必要があります。
- セキュリティポリシーにより、自動送信時に警告が出ることがあります(特に企業環境)。
.Send
を使うと即送信されます。確認したい場合は.Display
を使ってください。