Tecnología

Inicio

Cómo imprimir un archivo PDF adjunto en VBA de Outlook

Aprender cómo imprimir archivos PDF adjuntos de Microsoft Outlook utilizando Visual Basic para Aplicaciones (VBA) le puede ahorrar tiempo cuando se necesita imprimir muchos archivos PDF adjuntos. VBA es un lenguaje de programación que se utiliza en todas las aplicaciones de Microsoft Office para automatizar tareas como la impresión de archivos. En Outlook, puede crear procedimientos que se añade código VBA y ejecutado con el Editor de Visual Basic. Utilizar la biblioteca "ShellExecute" para ejecutar el comando de impresión e imprimir un archivo PDF. Se puede crear un par de "bucles For ..." para buscar archivos PDF adjuntos en la bandeja de entrada e imprimirlos.

Instrucciones

1 Lanzamiento de Microsoft Outlook, haga clic en el menú "Herramientas" y haga clic en "Macro> Editor de Visual Basic" para abrir las ventanas VB Editor. Haga clic en el menú "Insertar" y haga clic en "Módulo" para añadir un nuevo módulo de código VBA.

2 Copia y pega el código siguiente para definir la función "ShellExecute" que va a utilizar para imprimir los archivos PDF:

Public Declare la función ShellExecute Lib "shell32.dll" Alias ​​"ShellExecuteA"


(ByVal CVent As Long, ByVal lpOperation como secuencia, de ByVal como secuencia lpFile,
lpParameters ByVal como secuencia, de ByVal como secuencia lpDirectory, _
ByVal nShowCmd As Long) As Long

3 Añadir la siguiente función para llamar a la función "ShellExecute" e imprimir el archivo PDF actual:

Función PrintFile (pdfName como secuencia)
ShellExecute 0, "Imprimir", pdfName, vbNullString, "", 1
End Function

4 Copia y pega el código siguiente para recorrer todos los elementos de correo e imprimir cualquier archivo adjunto PDF contenidos utilizando la impresora predeterminada:

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 Pulse la tecla "F5" para ejecutar el código. El código guardará todos los archivos adjuntos PDF en "C: \ Temp" antes de imprimirlas.