How to send Excel contents as PDF attachment with the email using CDOSYS

How to send Excel contents as PDF attachment with the email using CDOSYS

  • Comments 2

One of my customer would like to send Excel 2007 worksheet contents as email using CDOSYS. We are facing issues regarding formatting of the contents in the resultant emails on the different email clients. Then we decided to send contents as PDF attachment to avoid such issues.

Here is the sample code VBA snippet used:

NOTE: Following programming examples is for illustration only, without warranty either expressed or implied, including, but not limited to, the implied warranties of merchantability and/or fitness for a particular purpose. This sample code assumes that you are familiar with the programming language being demonstrated and the tools used to create and debug procedures. This sample code is provided for the purpose of illustration only and is not intended to be used in a production environment.

Sub SendMail()
Dim filepath As String
filepath = "\\server\test\Excel 2007 Chart.pdf" 'TODO:change filepath for the temp pdf file
 'Exporting range of the excel contents which need to sent out
    Range("A1:I22").Select
    Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        filepath, _
        Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas _
        :=False, OpenAfterPublish:=False
 'Setting up CDOSYS configuration to send out the email 
Set iMsg = CreateObject("CDO.Message")
    Set iConf = CreateObject("CDO.Configuration")
    Set Flds = iConf.Fields
    With Flds
        .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 'send via port
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "ServerName" 'TODO:update the SMTP server name here
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
        .Update
    End With
 
    With iMsg
        Set .Configuration = iConf
        .From = "xyz@domain.com" 'TODO:change email address here
        .To = "abc@domain.com" 'TODO:change email address here
        
        .Subject = "Test message with PDF Attachment"
        .HTMLBody = "Please find the attache excel pdf contents report"
        .AddAttachment (filepath)
        .Send
    End With
 
    Set iMsg = Nothing
    Set iConf = Nothing
End Sub
 

Hope this helps.

 

Please feel free to write me if you have question related to Microsoft Messaging APIs.

Leave a Comment
  • Please add 3 and 4 and type the answer here:
  • Post
  • Well thanks a very helpful tutorial indeed.

  • Hey thanks Brijs for sharing this with us, this is a very helpful tutorial and the content is very good. Useful information about how to send Excel content as PDF attachment, thanks again.

Page 1 of 1 (2 items)