一般社団法人 全国個人事業主支援協会

COLUMN コラム

お疲れ様です
高崎です、3月分の投稿になります。
今回はExcelVBAでOutlookで送信するメールのテンプレート作成するマクロです。
ExcelVBAでOutlookの定型文が書かれたメールの下書きを署名を加えて作成します。
以下に記載していこうと思っています。(テキスト形式のメールを送る場合です。)

Sub 返信用メール作成_Click()

Dim objOutlook As New Outlook.Application
Dim objMail As Outlook.MailItem
Set objMail = objOutlook.ActiveExplorer.Selection.Item(1)
Dim objReply As Outlook.MailItem
Set objReply = objMail.ReplyAll
Dim objForward As Outlook.MailItem
Set objForward = objMail.Forward
Dim MeilSet As Worksheet
Set MeilSet = ThisWorkbook.Sheets(“返信用メール作成”)
Dim NS As Outlook.Namespace
Set NS = objOutlook.GetNamespace(“MAPI”)
Dim objFolder As Outlook.Folder
Dim FSO As Object
Set FSO = CreateObject(“Scripting.FileSystemObject”)
Dim WSH As Object
Set WSH = CreateObject(“Wscript.Shell”)
Dim 本文
本文 = “担当者” & vbCrLf & MeilSet.Range(“$A1”).Value & “ 様” _
        & vbCrLf & vbCrLf _
        & “いつもお世話になっております。” & vbCrLf & “株式会社○○の” & MeilSet.Range(“$A2”).Value & “です。” _
        & vbCrLf & vbCrLf _
        & MeilSet.Range(“$A3”).Value & “ について、” & vbCrLf _
        & “依頼されていた作業が正常に完了いたしました。” _
        & vbCrLf & vbCrLf _
        & “以上、よろしくお願いいたします。”
※vbCrLf →改行
※Excelに特定の文字を入力し、本文中に挿入します。
Dim 全文
全文 = 本文 & vbLf & vbLf & 署名(“署名.txt”) ‘本文 + Function 署名を挿入’
With objForward
    objForward.To = objReply.To ‘メール宛先
    objForward.CC = objReply.CC ‘メールCC
    objForward.Subject = objReply.Subject ‘メール件名
    objForward.Body = 全文 & .Body ‘メール本文
    objForward.BodyFormat = olFormatPlain     ‘メール形式に設定
End With
MeilSet.Range(“$A1”).MergeArea.ClearContents ‘担当者名クリア
MeilSet.Range(“$A2”).MergeArea.ClearContents ‘作業者名クリア
MeilSet.Range(“$A3”).MergeArea.ClearContents ‘依頼名クリア
objForward.Display ‘画面を表示する
objForward.Save ‘下書き保存
Set objOutlook = Nothing
Set objMail = Nothing
Set objForward = Nothing
Set NS = Nothing
Set objFolder = Nothing

End Sub

※以下署名に関するマクロ部分(別枠)—————————————————————————————

Function 署名(ByVal 署名ファイル As String) As String ‘署名ファイル=(“署名.txt”)’

Dim FSO As Object
Set FSO = CreateObject(“Scripting.FileSystemObject”)
Dim WSH As Object
Set WSH = CreateObject(“Wscript.Shell”)
Dim 署名フォルダ As String ‘署名元ネタフォルダの定義
署名フォルダ = WSH.SpecialFolders(“AppData”) & “\Microsoft\Signatures” ‘署名元ネタフォルダのフォルダパス
Dim txt As Object
Set txt = FSO.GetFile(署名フォルダ & “\” & 署名ファイル).OpenAsTextStream(1, -2) ‘署名ファイル=(“署名.txt”)→署名署名.txtを以下の設定で開く
‘※OpenAsTextStream(1, -2)→1(読み取り専用),-2(システムの規定の設定でファイルを開く)
署名 = txt.ReadAll ‘署名.txtの内容を全文読み込み
txt.Close ‘署名.txtを閉じる
Set WSH = Nothing
Set FSO = Nothing
Set txt = Nothing

End Function

上記の様な感じです。
署名の挿入はFunctionで別枠作っています。
どこかのサイトを参考にしましたがどこだったか忘れました。
今回は以上になります。
The following two tabs change content below.

takasaki_m0620

最新記事 by takasaki_m0620 (全て見る)

この記事をシェアする

  • Twitterでシェア
  • Facebookでシェア
  • LINEでシェア