3

Excelでメール署名を作成/編集したいのですが:

最初のセル:|よろしく、|
2番目のセル(名前):| Asaf Gilad |
3番目のセル(タイトル):| PMO |
4番目のセル(メール):| Asaf@mail.com |

そのため、[送信]をクリックすると、メッセージの本文は次のようになります。

拝啓
................................。
.......メッセージの内容.......。
................................。
................................。

よろしく、
アサフギラッド    
PMO           
Asaf@mail.com

署名には写真も含まれています。

範囲を画像として保存し、その画像を添付ファイルとして送信することができましたが、添付ファイルとして正しく送信されたにもかかわらず、画像は本文で空であることが判明しました。

私が使用するコードは次のとおりです。

Public Sub ExportEmail(recipentName As String)
    エラーの場合GoToerr:
    Outlook.ApplicationとしてのDimolApp
    Outlook.Namespaceとしての薄暗い
    Dim olMail As Outlook.MailItem
    Dim strEmailTo As String、strEmailCC As String、strEmailBCC As String
    文字列としての薄暗いFNAME
    Dim oRange As Range
    Dim oChart As Chart
    画像としての薄暗い
    strEmailTo = ""
    strEmailCC = ""
    strEmailBCC = ""
    strEmailTo = "a@a.com"
    strEmailCC = "b@b.com
    strEmailTo""の場合
        olApp =NewOutlook.Applicationに設定します
        Set olNs = olApp.GetNamespace( "MAPI")
        olNs.Logon
        Set olMail = olApp.CreateItem(olMailItem)
        olMail.To = strEmailTo
        olMail.CC = strEmailCC
        olMail.BCC = strEmailBCC
        olMail.Subject="私の件名"
        oRange = Sheets(1).Range( "A1:Z100")を設定します
        oChart=Charts.Addを設定します
        oRange.CopyPicture xlScreen、xlPicture
        oChart.Paste
        FNAME = Environ $( "temp")& "\ testPic.gif"
        oChart.Export Filename:= FNAME、FilterName:= "GIF"
        olMail.Attachments.Add FNAME
        olMail.HTMLBody = ""&_
            ""
        olMail.Attachments.Add FNAME
        olMail.Send
    終了する場合
    Application.StatusBar = False
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
    FNAMEを殺す
    olApp=Nothingを設定します
    olNs=なしを設定します
    oRange=Nothingを設定します
    oChart=Nothingを設定します
    oImg=Nothingを設定します
    サブを終了
エラー:
    MsgBoxerr.Description
サブ終了
4

2 に答える 2

2

これは良い質問だ、アサフ。自動化された電子メール ソリューションを構築したとき、署名欄を入力するのが難しいことに気付きました。それは可能ですが、簡単ではありません。2010年に更新されたのかもしれませんが、まだチェックしていません。

本文全体をドライブ上のテキスト ファイルに配置し、書式設定に必要な html タグをすべて付けます。これにより、変数を割り当てることもできる適切にフォーマットされた電子メールを作成する際の柔軟性が大幅に向上します。

Microsoft Scripting Runtime次に、ライブラリを介してそれらのファイルにアクセスします。

以下のコード スニペットを参照してください。

Option Explicit

Const strEmailBoiler As String = "\\server\path\folder\subfolder\email_text\"

Sub PrepMessage()

Dim strBody As String, strMon As String

strMon = range("Mon").Value
strFY = range("FY").Value
strBody = FileToString(strEmailBoiler, "reports_email_body.txt")

strBody = Replace(strBody, "[MONTH]", strMon)
strBody = Replace(strBody, "[YEAR]", Right(strFY, 2))
strBody = Replace(strBody, "[FILE PATH]", strFileName)

SendMail "firstname.lastname@xyz.com", "Subject Goes Here " & strMon & " YTD", strBody

End Sub

Function FileToString(ByVal strPath As String, ByVal strFile As String) As String
'requires reference to Microsoft Scripting Runtime Object Library (or late binding)

    Dim ts As TextStream

    Set fso = New FileSystemObject
    Set ts = fso.OpenTextFile(strPath & strFile, ForReading, False, TristateUseDefault)

    FileToString = ts.ReadAll
    ts.Close

    Set ts = Nothing
    Set fso = Nothing

End Function

Sub SendMail(strTo As String, strSubject As String, strHTMLBody As String, Optional strAttach As String, Optional strCC As String)
'requires reference to Microsoft Outlook X.X Object Library (or late binding)

Dim olApp As Outlook.Application
Dim olMI As Outlook.MailItem

Set olApp = CreateObject("Outlook.Application")
Set olMI = olApp.CreateItem(olMailItem)

With olMI

    .To = strTo
    .Subject = strSubject
    .HTMLBody = strHTMLBody
    If strAttach <> vbNullString Then .Attachments.Add strAttach
    .Display 'using this because of security access to Outlook
    '.Send

End With

End Sub

次に、私のreports_email_body.txtファイルは次のようになります。

<p>Hello Person,</p> 
<p>The Reports file for [MONTH] FY[YEAR] has been saved in the following location:</p>
<p><a href="[FILE PATH]">[FILE PATH]</a></p>
<p>Best,</p>
<br>
Scott Holtzman
<br>My Address
<br>my title
<br>whatever else...
于 2012-12-17T17:07:41.207 に答える
1

Excel 2010 (およびおそらく 2007) では、ボディ文字列の末尾に .HTMLBody を追加できます。たとえば、次のようなものを使用します。

    .HTMLBody = "<br>" & strbody & .HTMLBody
                ' <br> is an HTML tag to turn the text into HTML
                ' strbody is your text from cell C9 on the mail tab
                ' .HTMLBody inserts your email signature

これにより、少なくとも署名欄の問題が解決されます。

同じ問題の解決策を探しています:範囲を画像として挿入します。

于 2014-11-13T20:58:46.143 に答える