February 06, 2022
Excel VBAで既定のメールアプリでメールを作成する方法
Excel VBAでチェック入れたアドレスに対して自動でメールを作成するツールを作っていた。
で、Thunderbirdをお試しで使っていたらこのツールが使えない事に気付く。
それはOutlook.Applicationを使っていたのでOutlook専用のモノ。
で、Thunderbirdをお試しで使っていたらこのツールが使えない事に気付く。
あれ?既定のメールアプリに対しては使えない?ググってもOutlook用のサンプルばかり。
と言う事で既定のメールアプリ用のコードを書いてみました。
方法としてはExcel関数のHyperlinkをVBAで呼んでHTMLで使用されているmailtoを使う。
サンプルはコチラ。
----------------------------------------------------------------------
Sub Sub_MakeMailDefaultApp()
Dim strCode As String
Dim strTo As String
Dim strCC As String
Dim strBCC As String
Dim strSubject As String
Dim strBody As String
strTo = "test1@sample.com,test2@sample.com"
strCC = "test3cc@sample.com"
strBCC = "test4bcc@sample.com,test5bcc@sample.com"
strSubject = "<タイトル>"
strBody = "<本文>"
'宛先、タイトル、本文をセット
strCode = "mailto:" & strTo & "?subject=" & strSubject & "&body=" & strBody
'CCがある時
If strCC <> "" Then
strCode = strCode & "&cc=" & strCC
End If
'BCCがある時
If strBCC <> "" Then
strCode = strCode & "&bcc=" & strBCC
End If
'メール作成
Call ThisWorkbook.FollowHyperlink(Address:=strCode)
End Sub
----------------------------------------------------------------------行けそうです。
本文等にスペースや改行を入れる場合はコードに置換する必要がある。
改行は「%0D%0A」、空白は「%20」のようです。