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

意外となんとかなる日記

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

スポンサーリンク

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

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

2017年4月19日追記 署名に対応いたしました。

 まず、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    ' 件名
        .Display                        ' 表示
        .Body = Replace(Range("C8").Value, vbLf, vbCrLf) & .Body    ' 本文(署名を本文の下部に表示)
    End With
    
    Set ol = Nothing
End Sub

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


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

 f:id:Suechan:20170419005721j:plain

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

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

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

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


2017年4月19日追記
 コメントにフォントについて頂いたので、html形式について調べてみようとしました。
f:id:Suechan:20170419224603j:plain
f:id:Suechan:20170419224610j:plain

 多分夢だと思いますので、ソースが載ることは無いと思います。



suechan.hateblo.jp

suechan.hateblo.jp

スポンサーリンク