How To Save A Worksheet As PDF File And Email It As An Attachment Through Outlook?
How To Save A Worksheet As PDF File And Email It As An Attachment Through Outlook?

In some cases, you may need to send a worksheet as a PDF file through Outlook. Usually, you have to manually save the worksheet as a PDF file, then create a new email with this PDF file as attachment in your Outlook and finally send it. It is time-consuming to achieve it manually step by step. In this article, we will show you how to quickly save a worksheet as a PDF file and send it automatically as an attachment through Outlook in Excel.
Save a worksheet as PDF file and email it as an attachment with VBA code
Save A Worksheet As PDF File And Email It As An Attachment With VBA Code

You can run the below VBA code to automatically save active worksheet as a PDF file, and then email it as an attachment through Outlook. Please do as follows.
1. Open the worksheet you will save as PDF and send, then press the Alt + F11keys simultaneously to open the Microsoft Visual Basic for Applications window.
2. In the Microsoft Visual Basic for Applications window, click Insert > Module. Then copy and paste the below VBA code into the Code window. See screenshot:
VBA code: Save a worksheet as PDF file and email it as an attachment
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
| Sub Saveaspdfandsend()Dim xSht As WorksheetDim xFileDlg As FileDialogDim xFolder As StringDim xYesorNo As IntegerDim xOutlookObj As ObjectDim xEmailObj As ObjectDim xUsedRng As RangeSet xSht = ActiveSheetSet xFileDlg = Application.FileDialog(msoFileDialogFolderPicker)If xFileDlg.Show = True Then xFolder = xFileDlg.SelectedItems(1)Else MsgBox "You must specify a folder to save the PDF into." & vbCrLf & vbCrLf & "Press OK to exit this macro.", vbCritical, "Must Specify Destination Folder" Exit SubEnd IfxFolder = xFolder + "\" + xSht.Name + ".pdf"'Check if file already existIf Len(Dir(xFolder)) > 0 Then xYesorNo = MsgBox(xFolder & " already exists." & vbCrLf & vbCrLf & "Do you want to overwrite it?", _ vbYesNo + vbQuestion, "File Exists") On Error Resume Next If xYesorNo = vbYes Then Kill xFolder Else MsgBox "if you don't overwrite the existing PDF, I can't continue." _ & vbCrLf & vbCrLf & "Press OK to exit this macro.", vbCritical, "Exiting Macro" Exit Sub End If If Err.Number <> 0 Then MsgBox "Unable to delete existing file. Please make sure the file is not open or write protected." _ & vbCrLf & vbCrLf & "Press OK to exit this macro.", vbCritical, "Unable to Delete File" Exit Sub End IfEnd IfSet xUsedRng = xSht.UsedRangeIf Application.WorksheetFunction.CountA(xUsedRng.Cells) <> 0 Then 'Save as PDF file xSht.ExportAsFixedFormat Type:=xlTypePDF, Filename:=xFolder, Quality:=xlQualityStandard 'Create Outlook email Set xOutlookObj = CreateObject("Outlook.Application") Set xEmailObj = xOutlookObj.CreateItem(0) With xEmailObj .Display .To = "" .CC = "" .Subject = xSht.Name + ".pdf" .Attachments.Add xFolder If DisplayEmail = False Then '.Send End If End WithElse MsgBox "The active worksheet cannot be blank" Exit SubEnd IfEnd Sub |
3. Press the F5 key to run the code. In the Browse dialog box, please select a folder to save this PDF file, and then click the OK button.

Notes:
1. Now the active worksheet is saved as PDF file. And the PDF file is named with the worksheet name.
2. If the active worksheet is blank, you will get a dialog box as below screenshot shown after clicking the OK button.

4. Now a new Outlook email is created and you can see the PDF file is listed as an attachment in the Attached filed. See screenshot:

5. Please compose this email and then send it.
6. This code is only available when you use Outlook as your mail program.
📤How to Download ebooks: https://www.evba.info/2020/02/instructions-for-downloading-documents.html?m=1


Leave a Comment