Come stampare un allegato PDF in VBA Outlook

September 19

Imparare a stampare gli allegati PDF da Microsoft Outlook utilizzando Visual Basic, Applications Edition (VBA) consente di risparmiare tempo quando è necessario stampare molti allegati PDF. VBA è un linguaggio di programmazione utilizzato in tutte le applicazioni di Microsoft Office per automatizzare le attività come i file di stampa. In Outlook, è possibile creare procedure in cui si aggiunge il codice VBA e eseguito utilizzando l'Editor VB. Utilizzare la libreria "ShellExecute" per eseguire il comando di stampa e stampare un file PDF. È possibile creare un paio di "cicli FOR ..." per cercare gli allegati PDF nella cartella di posta in arrivo e stamparle.

istruzione

1 Avviare Microsoft Outlook, fare clic sul menu "Strumenti" e fare clic su "Macro> Basic Editor" per aprire le finestre VB Editor. Fare clic sul menu "Inserisci" e fare clic su "modulo" per aggiungere un nuovo modulo di codice VBA.

2 Copiare e incollare il seguente codice per definire la funzione "ShellExecute" che verrà utilizzato per stampare i file PDF:

Public Declare Function ShellExecute Lib "shell32.dll" Alias ​​"ShellExecuteA"


(ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile come stringa,
lpParameters ByVal come stringa, ByVal lpDirectory come stringa, _
ByVal nShowCmd As Long) As Long

3 Aggiungere la seguente funzione per richiamare la funzione "ShellExecute" e stampare il file PDF corrente:

PrintFile Funzione (pdfName As String)
ShellExecute 0, "Stampa", pdfName, vbNullString, "", 1
End Function

4 Copia e incolla il seguente codice di ciclo tra tutti gli elementi di posta e stampare gli eventuali allegati in formato PDF trovati utilizzando la stampante predefinita:

PrintAttachments Public Sub ()

Dim myInbox As MAPIFolder
Dim mailItem As mailItem
Dim attchmt As Attachment
Dim pdfName As String
Set myInbox = GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)
For Each mailItem In myInbox.Items
For Each attchmt In mailItem.Attachments
If (InStr(1, attchmt, ".pdf", vbTextCompare) <> 0) Then
pdfName = "C:\Temp\" & attchmt.fileName
attchmt.SaveAsFile pdfName
Call printFile(pdfName)
End If
Next
Next
Set myInbox = Nothing

End Sub

5 Premere il tasto "F5" per eseguire il codice. Il codice salverà tutti gli allegati PDF in "C: \ Temp" prima di stamparle.