PeaceJet

証券会社で証券外務員(転職しました!)をやりながら、マーケティングやデータ分析・UI/UX改善などを行っています。

【Office・VBA】Excelでテンプレートのメールを送信する



Outlook

Outlookのメールテンプレートをエクセルで送信する方法について解説します。 エクセルで直接に送信するわけではなく、VBAを使用して送信する方法になります。

Microsoft Outlook Object Libraryの参照設定をきちんと行えば、エクセルVBAOutlookからメール送信することが出来ます。

VBEでOutlook XX.X Object Libraryの参照設定をする

まず、エクセルVBAOutlookを操作する準備として、VBEでMicrosoft Outlook Object Libraryの参照設定をしましょう。

VBエディタを開いて、メニューから「ツール」>「参照設定」を選択していきます。 Microsoft Outlook 16.0 Object Library

Const Path = "C:\hogehoge.oft"

Dim OTL As Outlook.Application
Dim NS As Namespace
Dim Outlook As New Outlook.Application
Dim MyItem As Outlook.MailItem

Set OTL = CreateObject("Outlook.Application")
Set NS = OTL.GetNamespace("MAPI")
Set MyItem = Outlook.Application.CreateItemFromTemplate(Path)

NS.GetDefaultFolder(olFolderInbox).Display

MyItem.Display

Set NS = Nothing

これで、メールの画面が勝手に立ち上がると思います。

もちろん、Outlookが入っていないとダメですよ!

自動送信

MyItem.Displayの部分をMyItem.Sendとかやってあげれば画面が起動せずにメールが送信されます。