Excel VBAを使ってOutlookから自動的にメールを送信する方法を紹介します。この方法では、ボタン一つで宛先や本文が異なる複数のメールを作成し、メールのフォントサイズ変更や添付ファイルの追加も可能です。
1. 問題の背景
質問者は、Excelのデータを元に、Outlookを使って自動的に複数のメールを作成したいと考えています。既にVBAコードで宛先や本文の設定はできているが、フォントサイズや添付ファイルの追加についてはまだ実現できていないとのことです。
2. VBAコードの改良点
質問者が求めている機能は以下の通りです。
- 複数の宛先に対して、ボタン一つでメールを作成
- 本文のフォントサイズを変更
- 添付ファイルをExcelから指定して送信
これらを実現するために、VBAコードにいくつかの改良を加えます。
3. フォントサイズを変更する方法
VBAを使って、メール本文のフォントサイズを変更するには、HTML形式でメールを作成する必要があります。以下のコードを使用することで、メール本文のフォントサイズを指定できます。
Sub SendEmail_WithFormatting()
Dim olApp As Outlook.Application
Dim olMail As Outlook.MailItem
Dim ws As Worksheet
Dim lRow As Long, i As Long
Dim strTo As String, strBody As String
Dim strAttachment As String
' Outlookのインスタンス取得
Set olApp = New Outlook.Application
Set ws = ThisWorkbook.Sheets("Sheet1")
lRow = ws.Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To lRow
strTo = ws.Cells(i, 1).Value
strBody = "" & ws.Cells(i, 4).Value & ""
strAttachment = ws.Cells(i, 8).Value
Set olMail = olApp.CreateItem(olMailItem)
With olMail
.To = strTo
.Subject = ws.Cells(i, 3).Value
.HTMLBody = strBody
If strAttachment <> "" And Dir(strAttachment) <> "" Then
.Attachments.Add strAttachment
End If
.Display
End With
Next i
End Sub
このコードでは、メール本文をHTML形式で作成し、タグを使ってフォントサイズを指定しています。
4. 添付ファイルを追加する方法
添付ファイルをExcelシートから指定してメールに追加する方法については、既にコード内でファイルパスを取得しています。もしExcelシート内で複数のファイルを添付したい場合は、添付するファイルパスを適切に指定して追加できます。
5. 最後に
上記のVBAコードを使うことで、ExcelからOutlookに自動的にメールを送信し、本文のフォントサイズを変更し、添付ファイルを追加することができます。この方法を使えば、日々の業務を効率化し、手作業の手間を省くことができます。

コメント