Gem Excelfil som PDF med VBA og send den med mail

Gem Excelfil som PDF med VBA og send den med mail

I denne artikel vil jeg vise hvordan du med VBA kan gemme Excelfilen som PDF og herefter sende en mail hvor denne PDF-fil er vedhæftet.
Det første du skal have gjort er at gemme Excelfilen som PDF. Her kan du udnytte, at Excel selv har en funktion hvor den kan gemme som PDF. Du anvender koden:

Dim i As Long
Dim PdfFile As String, Title As String
PdfFile = ActiveWorkbook.FullName
i = InStrRev(PdfFile, ".")
If i > 1 Then PdfFile = Left(PdfFile, i - 1)
PdfFile = PdfFile & "_" & ActiveSheet.Name & ".pdf"
With ActiveSheet
 .ExportAsFixedFormat Type:=xlTypePDF, Filename:=PdfFile, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
End With

Denne gemmer altså det aktive ark i Excelfilen som en PDF-fil. Navnet på PDF-filens navn bliver Excelfilens navn og herefter arkets navn med et “_” imellem.
Nu skal du så have åbnet Outlook, hvis den da ikke allerede er åben.

Dim IsCreated As Boolean
Dim OutlApp As Object
Error Resume Next
Set OutlApp = GetObject(, "Outlook.Application")
If Err Then
Set OutlApp = CreateObject("Outlook.Application")
IsCreated = True
End If
OutlApp.Visible = True
On Error GoTo 0

Altså her tjekker den først om der allerede er et Outlook-vindue åben, og er der ikke det, så åbner den Outlook.

With OutlApp.CreateItem(0)
.Subject = "Ny PDF-rapport"
.To = "test@test.dk"
.CC = "andenperson@test.dk" '
.Body = "Hej," & vbLf & vbLf _
 & "Hermed den rapport jeg lovede dig i PDF" & vbLf & vbLf _
 & "Med venlig hilsen," & vbLf _
 & Application.UserName & vbLf & vbLf
.Attachments.Add PdfFile
On Error Resume Next
.Send
Application.Visible = True
If Err Then
MsgBox "E-mail blev ikke sendt", vbExclamation
Else
MsgBox "E-mail blev sendt", vbInformation
End If
On Error GoTo 0
End With
Kill PdfFile
If IsCreated Then OutlApp.Quit
Set OutlApp = Nothing

Denne kode tager altså den PDF-fil vi lige har oprettet, vedhæfter en i en mail hvor du selv kan angive tekst, emne og modtager for mailen. Og så sender den mailen automatisk og sletter herefter PDF-filen.

Andreas Andersen

Forfatter og grundlægger af IT-blogger.dk, der har blogget om IT-emner siden 2012

Skriv et svar

%d bloggers like this: