【エクセルVBA】Outlookでメール作成・メール送信するマクロの作成方法
【エクセルVBA】Outlookでメール作成・メール送信するマクロの作成方法2024.06.19 / 2024.06.19
本記事ではMicrosoftのエクセルにおける、VBAによるOutlookでメール作成・メール送信するマクロの作成方法について解説していきます。
ビジネスではエクセルのマクロを使用して業務の効率化を図ることが多いです。日々行う作業をマクロにして自動化することで、大幅に作業時間を短縮できます。
エクセルVBAではOutlookのメール作成・メール送信も実行することが可能です。そのため大量のメールを送信するケースでは、マクロを作成して作業を簡略化することが望ましいです。
本記事を通して、エクセルのVBAによるOutlookでメール作成・メール送信するマクロの作成方法について理解を深めてください。
ここではMicrosoft 365による最新のエクセルおよびOutlookを使用しています。
Microsoft用語の確認Microsoft 365とはMicrosoft社が提供しているOfficeアプリケーション(Outlook、Word、Excel、SharePoint、PowerPointなど)やサービスを利用できるサブスクリプション(月額課金制)のクラウドサービスです
Microsoft 365とは:どのようなサービスかわかりやすく解説
VBAでOutlookを使ってメール作成・メール送信する方法
VBA(Visual Basic for Application)とはExcelやWord、AccessといったMicrosoftが開発したオフィス製品用のプログラミング言語であり、マクロを組むことができます。
関連記事:【エクセル】マクロとVBAの違いについて
エクセルの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 SubolAppは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 WithToや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操作を業務の効率化に応用してみてください。
エクセルには他にも様々な仕事に便利な機能が備わっています。以下エクセルのまとめ記事では仕事に便利な機能を紹介しています。ぜひご覧いただき、ご自身の仕事に役立つ機能を見つけてください。
【エクセル】機能一覧:仕事で便利な機能や設定をまとめて紹介
こんな方はこちらをチェック excel の記事一覧はこちら関連記事
【エクセルVBA】フォルダ内のすべてのブックから特定の行をコピー&貼り付けする方法
【エクセル】マクロ(VBA)でSharePointのファイルを開く・保存する方法
【エクセル】アクティブセルや行列を自動で色付け:条件付き書式とVBA
最新記事
【SharePoint】Excelをアプリで開くと更新されない原因と対処法
【OneDrive】エクスプローラーで開く方法|表示されない原因と対処法
【Windows 11】画面録画のやり方|標準機能で録画する方法や保存先
【Word】コメントを印刷しない方法|非表示設定を解説
【Word】A4の文書2ページをA3用紙1枚に印刷する方法(見開き印刷)
【Windows 11】Windowsツールがない?開き方・場所・ショートカットの作成方法