2011-12-14 101 views
0

Excelで自分のPDFファイルを開くときに問題が発生しました。私はPDF文書を開き、すべてをコピーしてExcelワークブックに貼り付けるマクロを書きましたが、pdfファイルを開くことはできません。私は1004ランタイムエラーを取得し続けます。助けのアイデアは高く評価されます。これまでに試したことは次のとおりです。VBAを使用してExcelでPDFファイルを開く

Public Sub PDFCopy() 

Dim o As Variant 
Dim App As AcroPDDoc 
Worksheets("Sheet3").Range("A2").Activate 

'App.Open ("C:\NetworkDiagrams\100-Viking.pdf") 
o = Shell("calc.exe", vbNormalNoFocus) 
' ActiveWorkbook.FollowHyperlink ("C:\NetworkDiagram\100-Viking.pdf") 

Application.Wait Now + TimeValue("00:00:05") 
SendKeys ("^a") 
SendKeys ("^c") 
SendKeys "%{F4}" 

Worksheets("Sheet3").Range("A2").Activate 

SendKeys ("^v") 



End Sub 

3つの方法で同じランタイムエラーが発生しています。私はアイデアがありません。

答えて

0

これがうまくいくかどうかわかりませんが、PDFを開いてA2にコピーします。うまくいけば誰かが少しきれいなものでチャイムインすることができます。

Public Sub PDFCopy() 

    'Filepath for your Adobe reader 
    MyPath = "C:\Program Files\Adobe\Reader 10.0\Reader\AcroRd32.exe" 
    'Filepath for your PDF to open 
    MyFile = "C:\Documents\test.pdf" 
    Shell MyPath & " " & MyFile, vbNormalFocus 

    SendKeys ("^a") 
    SendKeys ("^c") 
    SendKeys "%{F4}" 

    Windows("Test.xlsm").Activate 
    Worksheets("Sheet2").Activate 
    ActiveSheet.Range("A2").Select 

    SendKeys ("^v") 

End Sub 
1

これには2通りの方法があります。

まず、システムにインストールされているものを知る必要があります。
AcrobatはAcrobatまたはAdobe Readerとは異なります。

Acrobat Readerのみの場合のコードは次のとおりです。シェル関数を使用します。
次に、PDFのコンテンツをコピーするには、SendKeysを使用します。
汚れたコードの種類は100%信頼できるものではありませんが、それでも動作すると言えます。あなたが持っているしかし、Acrobatがインストールされている場合

Sub Get_Pdf() 
    Dim XLName As String, PDFPath As String, READERPath As String 
    Dim OpenPDF, sh As Worksheet 

    XLName = ThisWorkbook.Name 
    Set sh = Thisworkbook.Sheets(1) 
    PDFPath = Application.GetOpenFilename(filefilter:="PDF file (*.pdf), *.pdf") 
    If UCase(PDFPath) = "FALSE" Then Exit Sub 
    '~~> Below path differs depending Adobe version and installation path 
    READERPath = "C:\Program Files\Adobe\Reader 11.0\Reader\AcroRd32.exe " 
    Shell READERPath & PDFPath, vbNormalFocus: DoEvents 

    Application.Wait Now + TimeValue("00:00:2") 

    SendKeys "^a", True 
    Application.Wait Now + TimeValue("00:00:2") 

    SendKeys "^c" 
    Application.Wait Now + TimeValue("00:00:2") 

    Windows(XLName).Activate 
    sh.Paste sh.Range("A1") 
    SendKeys "%{F4}", True 
End Sub 

は、thisポストを参照し、正しい答えに掲載のリンクをご確認ください。
更新プログラムがリンクに掲載されており、ADOBEリーダーのみがインストールされていてもPDFを開くことができます。

関連する問題