PeaceJet

@PeaceJets 2018年、証券会社から転職して人材会社のシステムエンジニアになりました。マーケティングやデータ分析・UI/UX改善などもやっています! #Docker #Ruby #Rails #lambda #GoogleAppsScript #VBA #GitHub http://github.com/peacejet

【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とかやってあげれば画面が起動せずにメールが送信されます。