【エクセルVBA】Outlookでメール作成・メール送信するマクロの作成方法
2024.06.19 /
本記事ではMicrosoftのエクセルにおける、VBAによるOutlookでメール作成・メール送信するマクロの作成方法について解説していきます。
ビジネスではエクセルのマクロを使用して業務の効率化を図ることが多いです。日々行う作業をマクロにして自動化することで、大幅に作業時間を短縮できます。
エクセルVBAではOutlookのメール作成・メール送信も実行することが可能です。そのため大量のメールを送信するケースでは、マクロを作成して作業を簡略化することが望ましいです。
本記事を通して、エクセルのVBAによるOutlookでメール作成・メール送信するマクロの作成方法について理解を深めてください。
ここではMicrosoft 365による最新のエクセルおよびOutlookを使用しています。
Microsoft 365とはMicrosoft社が提供しているOfficeアプリケーション(Outlook、Word、Excel、SharePoint、PowerPointなど)やサービスを利用できるサブスクリプション(月額課金制)のクラウドサービスです
Microsoft365とは:どのようなサービスかわかりやすく解説
VBAでOutlookを使ってメール作成・メール送信する方法
VBA(Visual Basic for Application)とはExcelやWord、AccessといったMicrosoftが開発したオフィス製品用のプログラミング言語であり、マクロを組むことができます。
エクセルのVBAではライブラリを追加することによって、エクセルのVBA上からOutlookを操作することが可能になります。
エクセルのVBAでOutlookを使ってメール作成・メール送信するマクロを作成する流れは以下の通りです。
- 参照設定にOutlookライブラリを追加する
- オブジェクトの宣言
- メールアイテムの作成
- 送信メールの内容を設定およびメール送信
- オブジェクトの解放
それぞれについて次項より解説していきます。
参照設定にOutlookライブラリを追加する
エクセルVBAからOutlookの機能を利用できるようにOutlookライブラリを参照設定に追加します。
Outlookライブラリを参照設定に追加することでOutlookオブジェクトモデルにアクセスできるようになり、Outlookの様々な機能をVBAから利用できます。
Outlookライブラリを利用することで次のような操作がVBAから可能になります。
- メールの作成と送信
- 受信トレイ内のメールの読み取り・検索・抽出
- カレンダーの操作(追加、削除、更新)
- 連絡先の操作(追加、削除、変更)
Outlookライブラリを参照設定に追加する方法は以下の通りです。
- エクセルを開いて「開発」タブをクリックする
- リボン内から「Visual Basic」をクリックする
- 表示されたVBAエディターから「ツール」タブをクリックし、表示されたメニューから「参照設定」を選択する
- 表示された「参照設定」画面より「Microsoft Outlook XX.0 Object Library」にチェックを入れて「OK」をクリックする
上記の操作でOutlookライブラリを参照設定に追加できます。
開発タブがない場合
エクセルのマクロ関係の機能は「開発」タブにまとめられていますが、デフォルトでは非表示となっています。
開発タブを表示してない場合は以下の操作で表示されるようにしましょう。
- エクセルを開き、画面左上の「ファイル」をクリックする
- 左ペインから「オプション」を選択する
- 表示したExcelのオプション画面の左ペインから「リボンのユーザー設定」をクリック<右ペインからメインタブ内にある「開発」にチェック<「OK」を選択する
オブジェクトの宣言
次にメールを作成・送信するマクロをVBAで作成していきます。VBAでサブルーチンSendEmail()を記述して、その中にOutlookアプリケーションとメールアイテムのオブジェクトを宣言します。
Sub SendEmail()
'オブジェクトの宣言
Dim olApp As Outlook.Application
Dim olMail As Outlook.MailItem
End Sub
olAppはOutlookアプリケーション、olMailはメールアイテムを表すオブジェクトです。
メールアイテムの作成
宣言したオブジェクトを使ってメールアイテムを作成します。
'メールアイテムの作成
Set olApp = New Outlook.Application
Set olMail = olApp.CreateItem(olMailItem)
CreateItem(olMailItem)によって新しいメールアイテムが作成されます。
送信メールの内容を設定およびメール送信
メールアイテムに送信するメールの内容を設定し、最後にメール送信を実行します。
'送信メールの内容を設定
With olMail
.To = "office54@office54.net" '送信先メールアドレス
.Subject = "テスト" '件名
.Body = "テストメールです" 'メール本文
.BodyFormat = olFormatPlain 'メール形式
.Send 'メール送信
End With
ToやSubjectなどのプロパティで送信メールの内容を設定していきます。メールアイテムで指定できるプロパティは以下の通りです。
プロパティ | 説明 |
---|---|
To | 宛先のメールアドレス |
CC | CCのメールアドレス |
BCC | BCCのメールアドレス |
Subject | メールの件名 |
SentOn | メールの送信日 |
Body | メールの本文 |
BodyFormat | メール形式(テキスト形式:olFormatPlain、HTML形式:olFormatHTML、リッチテキスト:olFormatRichText) |
Outlookのメール形式について詳しく知りたい方は以下記事をご参照ください。
【Outlook】メール形式(HTML・テキスト):変更方法や違いについて
最後にSendメソッドでメール送信を実行しています。
オブジェクトの解放
最後に使用したオブジェクトを解放します。
'オブジェクトの解放
Set olApp = Nothing
Set olMail = Nothing
これによりメモリリークを防ぎ、リソースの無駄遣いを避けることができます。
メール送信するマクロのコード
ここまで解説したマクロのコードは以下の通りです。
Sub SendEmail()
'オブジェクトの宣言
Dim olApp As Outlook.Application
Dim olMail As Outlook.MailItem
'メールアイテムの作成
Set olApp = New Outlook.Application
Set olMail = olApp.CreateItem(olMailItem)
'送信メールの内容を設定
With olMail
.To = "office54@office54.net" '送信先メールアドレス
.Subject = "テスト" '件名
.Body = "テストメールです" 'メール本文
.BodyFormat = olFormatPlain 'メール形式に設定
.Send 'メール送信
End With
'オブジェクトの解放
Set olApp = Nothing
Set olMail = Nothing
End Sub
メールに添付ファイルを追加する方法
送信するメールに添付ファイルを追加するには「.Attachments.Add」メソッドを使用します。
使い方としては以下のように.Attachments.Addに続けて添付したいファイルのパスを指定するだけです。
.Attachments.Add attachmentPath
添付ファイルのパスはフルパスで指定してください
添付ファイルを追加するサンプルコードを以下に記します。
Sub SendEmail()
'オブジェクトの宣言
Dim olApp As Outlook.Application
Dim olMail As Outlook.MailItem
Dim attachmentPath As String
' 添付ファイルのパスを指定
attachmentPath = "C:\path\to\your\attachment.xlsx"
'メールアイテムの作成
Set olApp = New Outlook.Application
Set olMail = olApp.CreateItem(olMailItem)
'送信メールの内容を設定
With olMail
.To = "office54@office54.net" '送信先メールアドレス
.Subject = "テスト" '件名
.Body = "テストメールです" 'メール本文
.Attachments.Add attachmentPath ' 添付ファイルを追加
.BodyFormat = olFormatPlain 'メール形式に設定
.Send 'メール送信
End With
'オブジェクトの解放
Set olApp = Nothing
Set olMail = Nothing
End Sub
上記のように記述することで添付ファイルを追加してメール送信することができます。
まとめ
本記事「【エクセルVBA】Outlookでメール作成・メール送信するマクロの作成方法」はいかがでしたか。
本記事で紹介したVBAでOutlookを操作する方法を応用することで、様々なメール操作をマクロで簡略化することができます。
ぜひエクセルVBAによるOutlook操作を業務の効率化に応用してみてください。
エクセルには他にも様々な仕事に便利な機能が備わっています。以下エクセルのまとめ記事では仕事に便利な機能を紹介しています。ぜひご覧いただき、ご自身の仕事に役立つ機能を見つけてください。
【エクセル】機能一覧:仕事で便利な機能や設定をまとめて紹介