Creando PDFs automáticos con VBA en Excel
Clase 13 de 20 • Curso de Excel Avanzado
Contenido del curso
Automatiza la creación de reportes profesionales en Excel con macros VBA: aprende a exportar la hoja activa a PDF en la carpeta del libro y a alternar entre modo claro y oscuro. Verás cómo usar objetos, métodos y propiedades con claridad, además de técnicas de depuración para resolver errores con confianza.
¿Cómo crear un PDF en Excel con VBA y guardarlo en tu carpeta?
Crear la macro es directo: se inserta un módulo en Visual Basic (Alt+F11) y se pega o importa el código desde Archivo > Agregar. La lógica centra todo en la carpeta donde está guardado el libro y en la hoja activa.
- La variable carpeta toma la ruta con ThisWorkbook.Path.
- El nombre del PDF se construye con el nombre del archivo de Excel y la fecha completa.
- Se exporta la hoja activa con el método ActiveSheet.
- La acción es ExportAsFixedFormat con la propiedad FileName y opciones booleanas (true/false).
¿Qué pasos seguir para ejecutarlo?
- Insertar un módulo nuevo en Visual Basic.
- Cargar el código (Archivo > Agregar) o pegarlo en el módulo.
- En Excel: ir a Macros y ejecutar Crear PDF.
- Se genera un archivo con el nombre del libro y la fecha en la carpeta del workbook.
¿Qué código mínimo ilustra la exportación?
Sub CrearPDF()
Dim carpeta As String
Dim nombrePDF As String
carpeta = ThisWorkbook.Path 'ruta del archivo de Excel
nombrePDF = ThisWorkbook.Name & " - " & Date 'nombre del PDF con la fecha
ActiveSheet.ExportAsFixedFormat _
Type:=xlTypePDF, _
FileName:=carpeta & "\" & nombrePDF, _
OpenAfterPublish:=False
End Sub
- ActiveSheet: garantiza que el PDF siempre sea de la hoja activa.
- FileName: controla la carpeta y el nombre final.
- Booleans (true/false): ajustan comportamientos como abrir el PDF al terminar.
¿Qué rol tienen objetos, métodos y propiedades en la exportación?
Entender la jerarquía de VBA acelera el aprendizaje. Aquí, el flujo usa objetos, métodos y propiedades para describir “qué” y “cómo” se hace.
- Objeto ActiveSheet: la hoja actualmente seleccionada. Siempre exporta esa hoja.
- Método ExportAsFixedFormat: realiza la exportación a PDF.
- Propiedad FileName: indica ruta y nombre del archivo.
- ThisWorkbook.Path: obtiene la carpeta donde está guardado el libro.
- End Sub: marca el fin de la macro.
Sugerencia práctica: grabar una macro que exporte a PDF y luego revisar el código. Eso ayuda a identificar objetos, métodos y propiedades que necesitas y a “limpiar” pasos que sobran.
¿Cómo depurar cuando aparece un error?
- Usar Depurar: el editor resalta en amarillo la línea con error.
- Verificar nombres de hojas: si el código usa "Hoja1" pero tu hoja se llama "dashboard", debes cambiarlo.
- Avanzar con F8: ejecuta paso a paso para entender qué ocurre en cada línea.
¿Cómo alternar modo claro y oscuro con la macro ambiente?
La macro “Ambiente” toma una hoja específica (por nombre) y cambia colores entre negro y blanco. Si renombraste tu hoja, actualiza el nombre en el código para evitar errores.
- Define la hoja por su nombre, por ejemplo: "dashboard".
- Toma como referencia una celda, como A1, para aplicar cambios.
- Modifica colores y luminosidad de las celdas activas.
¿Cómo se vería la estructura básica?
Sub Ambiente()
With Worksheets("dashboard")
.Range("A1").Select 'referencia de inicio
'Cambios de color: claro ↔ oscuro
'Ajustes de luminosidad según tu diseño
End With
End Sub
¿Cómo ejecutar y validar el resultado?
- Ir a Macros, elegir Ambiente y pulsar Ejecutar.
- Si falla por el nombre de la hoja, corregirlo y usar F8 para avanzar línea a línea.
- Al ejecutar otra vez, verás la versión en fondo blanco o fondo negro de tu reporte.
¿Te gustaría que el documento incluya más atajos, variantes de exportación o trucos de depuración? Cuéntame en comentarios qué parte quieres profundizar y en qué contexto lo aplicarías.