2017-07-20 115 views
0

我正在閱讀論壇主題: https://forums.adobe.com/thread/604177 並開始嘗試使用它。但我認爲該功能根本沒有加載。我不確定它背後的原因是什麼 - 我認爲它必須簡單,可能與圖書館有關。有人可以幫忙指出爲什麼下面的代碼根本無法編譯(代碼似乎沒有立即執行,因爲沒有觸發任何斷點)。使用VBA打開Acrobat文件

我已加載該庫包括

  • 的Acrobat Distiller中
  • 的Adobe Acrobat 10.0類型庫
  • Acrobat掃描1.0類型庫此碼上執行

的計算機具有的Acrobat專業安裝在它上面。

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 

回答

0

在VBA打開文件會要求你有一個Acrobat中的App對象。一旦你在函數中有一個應用程序對象,代碼就可以工作。

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

與此創建模塊:

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

嗯,你添加的語句出現了一個語法錯誤...或者我做錯了嗎? – Isa

+0

@Isa在哪一行顯示語法錯誤?我使用Excel 2007,並沒有任何錯誤。 –

+0

我使用的是Excel 2013.當我複製並粘貼時,您建議的declare函數行突出顯示爲不可接受的語法。 – Isa