Mostrar archivos PDF en Formulario de Excel vba
Como todos saben, cuando se me presenta alguna situación informática para solucionar siempre busco a Excel como mi primer programa para solucionarla.
Y bueno, en esta ocasión este post no es excepción.
Por qué mostrar PDFs en Excel si ya tenemos un visor
Bueno, para ejecutar correctamente la visualización de archivos PDF necesitaremos tener instalado algún visor, llámese como se llame, no hay predilección por alguno de los que existen en el mercado.
Mi versión es que si estamos trabajando en un archivo de Excel y tenemos la necesidad de mostrar archivos PDF en la misma ventana, esta es la solución. Todo en el mismo lugar, sin cambiar de ventana.
Ver Video Mostrar archivos PDF en Formulario de Excel
Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.
Cómo lo hacemos
Nuestro formulario tendrá un cuadro de texto donde se mostrará le ruta completa del archivo elegido. También tenemos un botón que nos permitirá examinar nuestras carpetas en busca de archivos con extensión .pdf.
Figura 1. El formulario tendrá un filtro sólo con archivos .pdf.
Cuando hayamo elegido nuestro archivo se activará el botón cargar PDF y será mostrado en el control WebBrowser.
Código
El evento Initialize el formulario pondrá en Disable los controles de texto y el botón de cargar PDF.
Private Sub UserForm_Initialize() With Me .btnCargarPDF.Enabled = False .txtNombrePDF.Enabled = False End With End Sub
El botón examinar utiliza el diálogo msoFileDialogOpen para buscar archivos .pdf.
Private Sub btnExaminar_Click() With Application.FileDialog(msoFileDialogOpen) .InitialFileName = Application.DefaultFilePath & " \ " .Title = "EXCELeINFO - Abrir archivo PDF" .Filters.Clear .Filters.Add "PDF files", "*.pdf" .InitialView = msoFileDialogViewDetails .Show If .SelectedItems.Count = 0 Then Else Me.txtNombrePDF.Value = .SelectedItems(1) End If End With ' 'Me = Nuestro formulario With Me If .txtNombrePDF.Value <> "" Then .btnCargarPDF.Enabled = True Else .btnCargarPDF.Enabled = False End If End With End Sub
Para cargar el archivo en el control WebBrowser se utiliza el siguiente código.
Private Sub btnCargarPDF_Click() Me.WebBrowser1.Navigate Me.txtNombrePDF.Value End Sub
Anexos