Macro para incrustar archivos PDF en Excel
Para incrustar un archivo PDF en Excel es necesario tener instalado un visor PDF cualquiera en su computador, en este caso utilizamos como referencia Acrobat Reader pues es tal vez el más popular y agregar a la lista de referencias el controlador Adobe Acrobat Browser Control Type Library 1.0 (ver imagen)
A continuacion es necesario crear un formulario suficientemente grande para contener una página de lectura del archivo PDF. Llamaremos a este formulario PdfForm
Luego creamos una función para llamar el formulario con el archivo PDF ya cargado. Llamaremos a esta función LoadPDF. El código se encuentra a continuación:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
Sub LoadPDF(FicPdf As String, NoPage As Integer) 'Creacion del objeto Set mObjPDF = PdfForm.Controls.Add("AcroPDF.PDF.1", "VisuPDF") ch = mObjPDF.src 'Llamar la version de acrobat ver = mObjPDF.GetVersions 'Parametros en la ventana de Acrobat With PdfForm.Controls("VisuPDF") .Visible = True 'Determinar alto y ancho de la ventana en el formulario .Height = PdfForm.Height - 20 .Width = PdfForm.Width - 5 'mObjPDF.setViewRect 0, 0, 650, 580 End With 'Parametros del objeto pdf With mObjPDF .src = FicPdf 'Nombre del archivo o URL .setShowScrollbars (True) .setShowToolbar (True) .setPageMode ("none") 'Determina el mode de presentacion: none/bookmarks/thumbs .setLayoutMode ("SinglePage") 'Typo de presentacion: DontCare/SinglePage/OneColumn/TwoColumnLeft/TwoColumnRight .setCurrentPage (NoPage) 'Numero de la pagina a presentar .setView ("Fit") 'Tipo de presentacion: Fit/FitH/FitV/FitB/FitBH/FitB '.setZoom (100) 'Determina el zoom End With 'Presentar la hoja: PdfForm.Show End Sub |
Lo demás es sencillo, requiere crear una macro que llame la función LoadPDF con el parámetro correcto (ruta del archivo a abrir).
Un ejemplo de como se incorporan estas funciones se puede descargar en el siguiente link.