| 
    
     |  | アクロバットにそんな機能があれば、より簡単にできるでしょうけど 私はリーダーしか持ってないのでリーダーを立ち上げて、SendKeysで
 キーを送ってテキストを作りました。古くさいやり方かも知れませんが、
 アクロバットでもリーダーでもショートカットキーが有効に働くので、
 適当にインターバルを入れてやれば結構うまくいきますよ。一例ですが
 こんなコードも考えられます。新規ブックへ入れてお試し下さい。
 
 *Microsoft Forms 2.0 Object Library に参照設定する
 
 Sub Test_PDF_Copy()
 Static i As Integer
 Dim MyF As String, NewF As String, Buf As String
 Dim Ret As Long
 Dim DObj As New DataObject
 Dim Ary As Variant
 Const Acbat As String = _
 "C:\Program Files\Adobe\Acrobat 5.0\Reader\AcroRd32.exe"
 
 If i = Worksheets.Count Then i = 0
 ChDir "C:\My Documents" 'PDFファイルの保存先フォルダーに変更
 With Application
 MyF = .GetOpenFilename("PDFファイル(*.pdf),*.pdf")
 If MyF = "False" Then GoTo EndLine
 i = i + 1: NewF = Left(Dir(MyF), Len(Dir(MyF)) - 3) & "xls"
 Worksheets(i).Cells.ClearContents
 Ret = Shell(Acbat & " " & MyF, 1)
 .Wait Time + TimeValue("00:00:02")
 SendKeys "^(a)"
 .Wait Time + TimeValue("00:00:01")
 SendKeys "^(c)"
 .Wait Time + TimeValue("00:00:01")
 DObj.GetFromClipboard
 Buf = DObj.GetText(1)
 Ary = .WorksheetFunction.Transpose(Split(Buf, ChR(10)))
 .ScreenUpdating = False
 With ThisWorkbook.Worksheets(i)
 .Range("A1").Resize(UBound(Ary) + 1).Value = Ary
 .Copy
 End With
 ActiveWorkbook.Close True, .DefaultFilePath & "\" & NewF
 .ScreenUpdating = True: Erase Ary
 AppActivate Ret
 .Wait Time + TimeValue("00:00:01")
 SendKeys "^(q)"
 EndLine:
 .CutCopyMode = False
 ChDir .DefaultFilePath
 End With
 End Sub
 
 |  |