2017-07-20 5 views
0

Ich las aus einem Forum-Thread: https://forums.adobe.com/thread/604177 und begann damit zu experimentieren. Aber ich denke, die Funktion hat überhaupt nicht geladen. Ich war mir nicht sicher, was der Grund dafür sein könnte - ich denke, es muss einfach und wahrscheinlich mit der Bibliothek verwandt sein. Kann jemand darauf hinweisen, warum der folgende Code überhaupt nicht kompiliert werden konnte (der Code schien nicht sofort ausgeführt zu werden, als keiner der Breakpoints ausgelöst wurde).Öffnen von Acrobat-Dateien mit VBA

Die Bibliotheken Ich habe umfassen

  • Adobe Acrobat 10.0 Type Library
  • Acrobat Scan 1.0 Type Library
  • Der Computer

    • Acrobat Distiller geladen, die diesen Code auf Acrobat ausgeführt wird Professional ist darauf installiert.

      Public Function GetPDF() '(FilePath As String) As Object 
          Dim origPdf As Acrobat.AcroPDDoc 
          Dim path1 As String 
          MsgBox ("Start") 
      
          path1 = Application.ActiveWorkbook.Path 
          path1 = path1 & "\31700100.pdf" 
      
          Set origPdf = CreateObject("AcroExch.PDDoc") 
      
          If origPdf.Open(path1) Then 
           MsgBox ("weee") 
          End If 
      
          origPdf.Close 
          Set origPdf = Nothing 
      End Function 
      

    Antwort

    0

    Öffnen von Dokumenten in VBA benötigen Sie einen Acrobat App-Objekt haben. Der Code funktioniert, sobald Sie ein App-Objekt in der Funktion haben.

    Public Function GetPDF (FilePath As String) As Object 
        Dim ArcoApp As New Acrobat.AcroApp 
        Dim OriPdf As New Acrobat.AcroPDDoc 
    
        Set ArcoApp = CreateObject("AcroExch.App") 
        Set OriPdf = CreateObject("AcroExch.PDDoc") 
    
        If OriPdf.Open(FilePath) Then 
         MsgBox ("weee") 
        End If 
    
        GetPDF = OriPdf 
    
        OriPdf.Close 
        AcroApp.Close 
        Set OriPdf = Nothing 
        Set AcroApp = Nothing 
    End Function 
    
    0

    Erstellen Sie ein Modul mit diesem:

    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 GetPDF() 
        Dim path1 As String 
    
        MsgBox "Start" 
    
        path1 = Application.ActiveWorkbook.Path 
        path1 = path1 & "\31700100.pdf" 
    
        ShellExecute 0, "Open", path1, "", "", _   
        vbNormalNoFocus 
    End Sub 
    
    +0

    Hmm, die Aussage, die Sie hinzugefügt haben, zeigte sich mit einem Syntaxfehler ... Oder mache ich es falsch? – Isa

    +0

    @Isa In welcher Zeile wird der Syntaxfehler angezeigt? Ich benutze Excel 2007 und es gibt keine Fehler. –

    +0

    Ich verwende Excel 2013. Die Deklarationsfunktionszeile, die Sie vorgeschlagen haben, ist die inakzeptable Syntax, als ich sie kopiert und eingefügt habe. – Isa

    Verwandte Themen