Cómo usar VBA para abrir e imprimir un archivo PDF

Visual Basic for Applications (VBA) es el lenguaje de programación de Microsoft Office para tareas dinámicas, como abrir e imprimir PDFs. Necesitas conocimientos básicos de VBA y el editor VBA incluido en Office. Este código sirve para cualquier aplicación de Office.

Paso 1

Abre el editor VBA en la aplicación Office donde quieras el código. En Office 2003 o anterior: "Archivo" > "Herramientas" > "Macros" > "Editor de Visual Basic". En Office 2007: pestaña "Programador" > "Visual Basic".

Paso 2

Haz clic en la ventana de código donde quieras insertar el código.

Paso 3

Añade el código para abrir el PDF. Algo así:

Sub AbrirPDF()
    Dim strPDFFileName As String
    'Edita para añadir la ruta completa al PDF que quieres abrir
    strPDFFileName = "C:\ejemplo.pdf"
    'Esta función verifica si el archivo no está ya abierto
    If Not FileLocked(strPDFFileName) Then
        'Si devuelve False, continúa abriendo el PDF
        Documents.Open strPDFFileName
    End If
End Sub

Copia y pega en tu ventana de código. Solo cambia la ruta completa al PDF: reemplaza C:\ejemplo.pdf por tu ruta y nombre.

Paso 4

Añade el código para imprimir el PDF:

Sub ImprimirPDF(strPDFFileName As String)
    Dim sAdobeReader As String
    'Ruta completa a Adobe Reader, Acrobat o cualquier lector PDF en tu ordenador
    sAdobeReader = "C:\Program Files\Adobe\Acrobat 6.0\Reader\AcroRd32.exe"
    RetVal = Shell(sAdobeReader & " /p " & Chr(34) & strPDFFileName & Chr(34), 0)
End Sub

Solo cambia la ruta al lector PDF en tu ordenador.

Paso 5

Usa un disparador para llamar las funciones. Así el código sabe cuándo ejecutarse. Usa el que quieras: formulario, botón, casilla, etc. Ejemplo con evento "Click" de un botón:

Sub CommandButton_Click()
    'Llama primero a abrir para que el PDF se abra antes de imprimir
    Call AbrirPDF
    'Ahora llama a imprimir
    Call ImprimirPDF
End Sub

Copia la parte central (entre Sub y End Sub) en el elemento y disparador que elijas.

Consejo

En Office 2007, si no ves la pestaña "Programador", haz clic en el botón "Office" > "Opciones" (abajo del menú). Marca "Mostrar pestaña Programador en la cinta" y "Aceptar".