2016-08-10 6 views
1

Outlookで作成した既存の署名ブロックをどのように使用できるか分かりません。新しい返信メールや転送メールを作成すると、署名がありますが、このコードでメールを作成すると表示されません。私がここで達成しようとしているのは、このコードによって作成された電子メールに自分の署名(またはその問題の署名)を表示することです。既存の署名ブロックをWord VBAからOutlook .htmlbodyに挿入する方法

Sample email with desired signature

Private Sub emailbutton_Click() 
    'No-option email sending 
    Dim OL    As Object 
    Dim EmailItem  As Object 
    Dim Doc    As Document 

    Application.ScreenUpdating = False 
    Set OL = CreateObject("Outlook.Application") 
    Set EmailItem = OL.CreateItem(olMailItem) 
    Set Doc = ActiveDocument 


    If VName.Value = "" Then 
     Doc.SaveAs ("Quotation_Blank 2016") 
    Else 
     Doc.SaveAs2 ("QFORM" & "_" & JNumber.Value & "_" & VName.Value) 

    End If 


    With EmailItem 
     .Subject = "QFORM" & "_" & JNumber.Value & "_" & VName.Value 

     'HTMLbody 
     msg = "<b><font face=""Times New Roman"" size=""3"" color=""blue"">INTEGRATED ASSEMBLY </font></b><br>" _ 
     & " 1200 Woodruff Rd.<br>" _ 
     & " Suite A12<br>" _ 
     & " Greenville, SC 29607<br><br>" _ 
     & "We have recently released subject project, which will contain assemblies to be outsourced. You have been selected to build these assemblies according to the attachment.<br><br>" _ 
     & "As part of this process, please review the quotion form attached and inidcate your acceptance. If adjustments and-or corrections are required please feel free to contact us for quick resolution.<br><br>" _ 
     & "<b><font face=""Times New Roman"" size=""3"" color=""Red"">NOTE: </font></b>" _ 
     & "The information on attached quotation form is not a contract and only an estimate of predetermined costs per hourly rate for outsource assemblies. <br><br>" _ 
     & "*******For your records you may wish to print out the completed quote form. <br><br>" _ 
     & "Thank you, <br><br>" _ 
     & "<b>HARTNESS INTERNATIONAL </b><br>" _ 
     & "H1 Production Control" & vbNewLine & Signature 


     .HTMLBody = msg 

     If VName.Value = "INTEGRATED ASSEMBLY" Then 
      .To = "XXX.com;" 
      .CC = "XXX.com;" & "XXX.com;" 
      .Importance = olImportanceNormal 'Or olImportanceHigh Or   olImportanceLow 
      .Attachments.Add Doc.FullName 
      .Display 
     ElseIf VName.Value = "LEWALLEN" Then 
      .To = "XXX.com;" 
      .CC = "XXX.com;" & "XXX.com;" 
      .Importance = olImportanceNormal 'Or olImportanceHigh Or   olImportanceLow 
      .Attachments.Add Doc.FullName 
      .Display 

     End If 
    End With 

    Application.ScreenUpdating = True 

    Set Doc = Nothing 
    Set OL = Nothing 
    Set EmailItem = Nothing 
End Sub 

答えて

0

私はあなたがMSGを挿入した後、再び.HTMLBodyをコールする必要があると思います。

したがって、たとえば:

.HTMLBody = msg & .HTMLBody 

は、署名を取得する必要があります。私はプログラミングに十分な深さではないがなぜそれを知っている。

+0

私はmsgで.HTMLBodyを呼び出しましたが、署名は入力しませんでした。電子メールのOutlookでの実行方法は変更されていません。いずれにしても、提案をいただきありがとうございます。 –

0

モジュールにOption Explicitが設定されていますか?

署名を設定した場所が表示されない、または空である可能性があり、エラーメッセージが表示されないように宣言しました。

は、私はこのような

何かが

With EmailItem 
    .Display 
    signature = .body 
    .Subject = "QFORM" & "_" & JNumber.Value & "_" & VName.Value 
' and so on .. 

`

+0

Dbmitch、あなたのメッセージを見ました。私は正確にやっていたし、私の答えを投稿 –

+0

それは最初に動作しませんでした。最初のコメントで示唆されているように、私のメッセージで.HTMLBodyを思い出す必要がありました。あなたの助けに感謝します。 –

0

コードを入力して成功した動作するはず空白のボディに引いて、それを最初に取得する必要があると思いますwith文を使ってEmailItemを表示します。msgの後に.HTMLBodyを呼び出すとともに、以下の完全なコードを参照してください。

Private Sub emailbutton_Click() 
    'No-option email sending 
    Dim OL    As Object 
    Dim EmailItem  As Object 
    Dim Doc    As Document 

    Application.ScreenUpdating = False 
    Set OL = CreateObject("Outlook.Application") 
    Set EmailItem = OL.CreateItem(olMailItem) 
    Set Doc = ActiveDocument 

    With EmailItem 
    .Display 
    End With 
     Signature = EmailItem.body 


    With EmailItem 
     .Subject = "QFORM" & "_" & JNumber.Value & "_" & VName.Value 

     'HTMLbody 
     msg = "<b><font face=""Times New Roman"" size=""4"" color=""blue"">INTEGRATED ASSEMBLY </font></b><br>" _ 
     & " 1200 Woodruff Rd.<br>" _ 
     & " Suite A12<br>" _ 
     & " Greenville, SC 29607<br><br>" _ 
     & "We have recently released subject project, which will contain assemblies to be outsourced. You have been selected to build these assemblies according to the attachment. <br><br>" _ 
     & "As part of this process, please review the quotation form attached and indicate your acceptance. If adjustments and-or corrections are required, please feel free to contact us for quick resolution. <br><br>" _ 
     & "<b><font face=""Times New Roman"" size=""4"" color=""Red"">NOTE: </font></b>" _ 
     & "The information on attached quotation form is not a contract and only an estimate of predetermined costs per hourly rate for outsource assemblies. <br><br>" _ 
     & "*******For your records you may wish to print out the completed quote form. <br><br>" _ 
     & "Thank you, <br><br>" _ 
     & "<b>HARTNESS INTERNATIONAL </b><br>" _ 
     & "H1 Production Control <br>" _ 
     & vbNewLine & Signature 

     .HTMLBody = msg & .HTMLBody 

     If VName.Value = "INTEGRATED ASSEMBLY" Then 
      .To = "[email protected];" 
      .CC = "[email protected];" & "[email protected];" 
      .Importance = olImportanceNormal 'Or olImportanceHigh Or   olImportanceLow 
      .Attachments.Add Doc.FullName 
      .Display 
     ElseIf VName.Value = "LEWALLEN" Then 
      .To = "[email protected];" 
      .CC = "[email protected];" & "[email protected];" 
      .Importance = olImportanceNormal 'Or olImportanceHigh Or   olImportanceLow 
      .Attachments.Add Doc.FullName 
      .Display 

     End If 
    End With 


    If VName.Value = "" Then 
     Doc.SaveAs ("Quotation_Blank 2016") 
    Else 
     Doc.SaveAs2 ("QFORM" & "_" & JNumber.Value & "_" & VName.Value) 

    End If 

    Application.ScreenUpdating = True 

    Set Doc = Nothing 
    Set OL = Nothing 
    Set EmailItem = Nothing 
End Sub 
関連する問題