VBAでExcelからOutlookに自動でメールを送信する方法

Visual Basic

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に自動的にメールを送信し、本文のフォントサイズを変更し、添付ファイルを追加することができます。この方法を使えば、日々の業務を効率化し、手作業の手間を省くことができます。

コメント

タイトルとURLをコピーしました