読者です 読者をやめる 読者になる 読者になる

意外となんとかなる日記

世迷言を心に、綺麗事を頭に

スポンサーリンク

【Excel】VBAでOutlookメールを作成する

一歩踏み込むVBA

 ExcelのVBAを使用して、Outlookメールを作成するVBAプログラムです。
 日々の業務で、定型文書や毎日決まっているメールを送信するときに使えると思います。



 まず、Excel側での入力画面はこのような想定です。同じ位置になるようにシートを作成してください。

 f:id:Suechan:20160111202747p:plain

 宛先:C4セル
 CC:C5セル
 BCC:C6セル
 件名:C7セル
 本文:C8セル
 メール作成テキストボックスボタン:位置は問いません


 プログラムはこちらです。モジュールを適当に追加して下さい。

Sub MakeMail()
    ' Outlookのメールを作成する
    Dim ol As Object
    
    ' 起動しているOutlookを取得する
    Set ol = GetObject(, "Outlook.Application")
    If ol Is Nothing Then Exit Sub ' Outlookが起動していない場合、終了する
    
    ' メールを作成する
    With ol.CreateItem(0)
        .To = Range("C4").Value         ' 宛先
        .CC = Range("C5").Value         ' CC
        .BCC = Range("C6").Value        ' BCC
        .Subject = Range("C7").Value    ' 件名
        .Body = Replace(Range("C8").Value, vbLf, vbCrLf)    ' 本文
        .Display                        ' 表示
    End With
    
    Set ol = Nothing
End Sub

 このモジュールを追加した後、上で作成した「メール作成」ボタンに「マクロの登録」からマクロを登録してください。

 これで準備ができています。
 Outlookを起動させた状態で「メール作成」ボタンを押すと、このようなメールが作成されます。

 f:id:Suechan:20160111204254p:plain


 基本的な使い方は見ていただければわかると思いますので省略しますが、宛先は";"(セミコロン)で区切って、複数のアドレスを設定することができます。
 また、本文セルには改行(Ctrl+Enter)を入れることができます。

 あとは確認して「送信」ボタンを押すだけです。

 .Displayを.Sendにすると自動送信が可能ですが、危ないのでソース内に入れていません。よほど大丈夫だという状況以外では、使用されないことをおすすめいたします。
 これに限りませんが、技術的に可能ということがわかっていたとしても、しない方が良いという判断です。

 動作確認はExcel2013で行いましたが、2010や2016でも動作するはずです。



suechan.hateblo.jp

suechan.hateblo.jp

スポンサーリンク