Öppna PDF-filer

Här visas ett flertal möjliga lösningar för att visa PDF-filer genom VBA i Excel. Idag finns det ett utbud av olika program för att hantera s k PDF-filer. Det ledande programmet utgörs fortfarande av Adobe Acrobat, vilket gör att samtliga exemplen utgår från denna programvara och att vi måste ha den installerad för att exemplena ska fungera.

Generell procedur

Detta är den mest generella proceduren och som kan användas när andra alternativ endera inte fungerar eller inte är möjliga. Som framgår utgår den från API.

Option Explicit  

Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _

      (ByVal hwnd As Long, _

      ByVal lpOperation As String, _

      ByVal lpFile As String, _

      ByVal lpParameters As String, _

      ByVal lpDirectory As String, _

      ByVal nShowCmd As Long) As Long

Sub Oppna_PDF()  

   ShellExecute 0, "open", "e:\Datahantering.pdf", "", "", 1  

End Sub


Shell-funktionen

Här använder vi en annan teknik där vi mha av Shell-funktionen öppnar PDF-filen.

Sub Oppna_PDF1()

   '© 2002 Alla rättigheter XL-Dennis  

   Dim dbRetValue As Double  

   Dim stAdobeExe As String, stFileName As String  

   stAdobeExe = "C:\Program\Adobe\Acrobat 5.0\Acrobat\Acrobat.exe"  

   stFileName = "e:\Datahantering.pdf"  

   dbRetValue = Shell(stAdobeExe & " " & stFileName, vbMaximizedFocus)  

End Sub

 


Adobe Acrobat bibliotek

Här anger vi först en referens till Adobe Acrobat x.0 bibliotek som vi sedan nyttjar i proceduren enligt följande:

Sub Oppna_PDF2()

   '© 2002 Alla rättigheter XL-Dennis

   Dim AcroApp As Acrobat.CAcroApp

   Dim PDDoc As Acrobat.CAcroPDDoc

   Dim avDoc As Acrobat.CAcroAVDoc

 

   Set AcroApp = CreateObject("AcroExch.App")

   Set PDDoc = CreateObject("AcroExch.PDDoc")

  

   If PDDoc.Open("e:\Datahantering.pdf") Then

      AcroApp.Show

      Set avDoc = PDDoc.OpenAVDoc("")

   Else

      MsgBox "Unable to open the PDF-file", vbInformation

   End If

 

    Set avDoc = Nothing

   Set PDDoc = Nothing

   Set AcroApp = Nothing

 End Sub