ExcelのVBAで実はメール送信も出来ちゃう!今回はOutlookがインストールされていて、それ経由で送信する方法を教えるよ。
宛先やCC、件名、本文、添付ファイルの保存先をリストにしておいて、リストの一番上から順々にメール送信していくことが出来るよ。
まずは参照設定というのを行って、Outlookの機能をExcelから呼び出せるようにします。
- メニューバーのツールから、参照設定を開く。

2. Microsoft Outlook xx Object LibraryにチェックをつけてOKをクリック。
xxのところはインストールされているOfficeのバージョンによって異なるよ。

そして、Excelの表をこんな感じにしてね。
セルB2が送信元アドレス。5行目から送信情報を記入。
A列が宛先、B列がCC、C列がBCC、D列が件名、E列ば本文、F列が添付ファイルのパスを記入します。

次にコードです!
Sub ボタン1_Click()
Dim SendMailadd As String
Dim rowcounter As Integer
Dim SendTo As String
Dim MailTitle As String
Dim MailBody As String
'5行目からのデータを取得
rowcounter = 5
With Sheets("Sheet1")
'送信元アドレス取得
SendFrom = Cells(2, 2)
'5行目から宛先が空になるまでループ
Do Until Cells(rowcounter, 1) = ""
SendTo = Cells(rowcounter, 1)
SendCC = Cells(rowcounter, 2)
SendBCC = Cells(rowcounter, 3)
MailTitle = Cells(rowcounter, 4)
MailBody = Cells(rowcounter, 5)
AttachFile = Cells(rowcounter, 6)
'メール送信
Call SendMail(SendFrom, SendTo, SendCC, SendBCC, MailTitle, MailBody, AttachFile)
rowcounter = rowcounter + 1
Loop
End With
End Sub
' メール配信する
Sub SendMail(SendFrom, SendTo, SendCC, SendBCC, MailTitle, MailBody, AttachFile)
On Error GoTo ErrorHandler
Set oApp = CreateObject("Outlook.Application")
Set objMAIL = oApp.CreateItem(0)
objMAIL.SentOnBehalfOfName = SendFrom
objMAIL.BodyFormat = 2 'HTML形式
objMAIL.Subject = MailTitle ' 件名
objMAIL.Body = MailBody ' 本文
objMAIL.To = SendTo
objMAIL.CC = SendCC
objMAIL.BCC = SendBCC
If AttachFile <> "" Then
objMAIL.Attachments.Add AttachFile
End If
objMAIL.Display
' メール送信
objMAIL.send
Set objMAIL = Nothing
Set oApp = Nothing
Exit Sub
ErrorHandler:
MsgBox (Err.Description)
End Sub
このサンプルでは宛先が空白になるまで処理をループさせているから、もし宛先が空白でCC、BCCのみの場合は対応出来ないから、必要に応じて Do Until Cells(rowcounter, 1) = “” の1の部分をループ対象とする列番号に変更してね。
このExcelからのメール送信をうまく使えば、例えば定期的に同じ人に同じメッセージまたは添付を送るような時は、あらかじめExcel上に送信先などの情報を入れておいて、後は好きなタイミングで送信ボタンを押すだけでメールが送信できるので、とても便利です。
あと、もし業務でFAXを一斉に送信したい時は、インターネットFAXというサービスを利用すれば、FAX送信したい文書を添付して、送信先のFAX番号を宛先に入れて、@マーク以降を決められたドメイン名を入れると、メール送信したものがそのままFAX送信してくれるというものがあるから、その時に今回のExcelをうまく使えば、FAX送信の手間がものすごく省けるよ。
インターネットFAXにもし興味があれば、下記のサービスがオススメだよ。


コメント
とても参考にさせていただいております。
コンパイルエラーが出てしまうのは私だけでしょうか?
SendMail部分。