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.