Nwlapcug.com


Come stampare un PDF allegato in Outlook VBA

Imparare a stampare PDF allegati da Microsoft Outlook utilizzando Visual Basic per Applications Edition (VBA) può risparmiare tempo quando è necessario stampano molti allegati in formato PDF. VBA è un linguaggio di programmazione utilizzato in tutte le applicazioni di Microsoft Office per automatizzare attività quali la stampa di file. In Outlook, è possibile creare procedure dove il codice VBA viene aggiunto ed eseguito utilizzando l'Editor di Visual Basic. Utilizzare la libreria "ShellExecute" per eseguire il comando di stampa e stampare un file PDF. È possibile creare un paio di "per... Loop"per cercare PDF allegati nella cartella posta in arrivo e stamparle.

Istruzioni

1

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

2

Copiare e incollare il codice seguente per definire la funzione di "ShellExecute" che si utilizzerà per stampare i file PDF:

Public Declare Function ShellExecute Lib "shell32. dll" Alias "ShellExecuteA"
(ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String,

ByVal lpParameters As String, ByVal lpDirectory As String _
ByVal nShowCmd As Long) As Long

3

Aggiungere la seguente funzione per chiamare la funzione di "ShellExecute" e stampare il file PDF corrente:

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

4

Copiare e incollare il codice seguente per scorrere in ciclo tutti gli elementi di posta e stampare gli allegati PDF trovati utilizzando la stampante predefinita:

Public Sub PrintAttachments()

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 "F5" per eseguire il codice. Il codice salverà tutti gli allegati in formato PDF in "C:\Temp" prima di stamparle.