Improve LAB

ゲーム、ガジェット類、ITスキルなどの記事を書きます。

EXCELからメールを送る(outlook)

outlookでメールを送る

なお、VBE画面で
ツール > 参照設定 >「Microsoft Outlook ??.? Object Library」
を有効にしておく必要があります。

Dim oApp As New Outlook.Application
Dim mail As Outlook.MailItem
Set mail = oApp.CreateItem(olMailItem) 'メールを作成

    mail.To = "sampleTo@mail.co.jp" '宛先
    mail.CC = "sampleCC@mail.co.jp"   'CCを指定
    mail.BCC = "sampleBCC@mail.co.jp"  'BCCを指定
    mail.Subject = "こんにちは" '件名を指定
    mail.HTMLBody = "お元気ですか"  '本文の指定
    mail.attachments.Add "D:\EXCELデータ\book1.xlsx"  'ファイルを添付
    mail.Display '作成したメールを表示
    'mail.Send '作成したメールを送信(コメントアウトしています)

メールを複数送る例

f:id:shirron:20210408011505p:plain
mail

このようなリストを作成したとします。

For文を使い、2行目から、最終行までを、
1行で1通ずつメールを作成し送信していきます。
最終行は、追加登録に対応するため、
Cells(Rows.Count, 1).End(xlUp).Rowで取得しています。

Dim oApp As New Outlook.Application
Dim mail As Outlook.MailItem
Set mail = oApp.CreateItem(olMailItem) 'メールを作成

maxrow = Cells(Rows.Count, 1).End(xlUp).Row

For i = 2 To maxrow

    mail.To = Cells(i, 1).Value '宛先
    mail.CC = Cells(i, 2).Value   'CCを指定
    mail.BCC = Cells(i, 3).Value  'BCCを指定
    mail.Subject = Cells(i, 4).Value '件名を指定
    mail.HTMLBody = "<span style=""font-size:11pt;"" >" & Cells(i, 5).Value & "</span>"  '本文の指定
    mail.attachments.Add Cells(i, 6).Value  'ファイルを添付
    mail.Display '作成したメールを表示
    'mail.Send '作成したメールを送信

Next

本文の中身は、HTML形式なので、入力するセル内に
brやpタグを加えることで改行が可能です。