web-dev-qa-db-ja.com

データの表をPDFファイルからExcelにコピーするにはどうすればよいですか?

データのテーブルがあり、Excelに取り込む必要があります。 MS Wordにコピーして貼り付けてから、「テキストを表に変換」を使用することを提案しているWebサイトをいくつか見つけました。これは、列の間にスペースがあるため、残念ながら機能しませんが、列の区切り文字としてスペースを選択すると、複数の単語が含まれる列を異なる列に分割します。

PDFファイルからExcelにテーブルを取得するためのより良い推奨方法はありますか?

1
leora

全体は、他の回答で述べられているよりもはるかに単純です。

Acrobat/Readerで、テキスト選択ツールを選択し、テーブルを完全に表示します。

ここで、Ctrl/Optionキーを押して、テーブルを選択します。カーソルが変化することに気付くでしょう。選択が完了したら、コピーしてExcelに貼り付けることができます。

1
Max Wyss

VBAコードをお勧めします。これにより、コピーされたデータテーブルがPDFからExcelに転置されます。

以下の手順に従ってください。

  1. PDFファイルからテーブルデータをコピーします。
  2. Excelシートの列に貼り付けます。
  3. VBAコードを実行します。

スクリーンショットを確認してください。

enter image description here

Private Sub CommandButton1_Click()
Dim xLRow As Long
    Dim xNRow As Long
    Dim i As Long
    Dim xUpdate As Boolean
    Dim xRg As Range
    Dim xOutRg As Range
    Dim xTxt As String

    On Error Resume Next

    xTxt = ActiveWindow.RangeSelection.Address

    Set xRg = Application.InputBox("Select Data Range(only one column):", "Transpose to Excel", xTxt, , , , , 8)
    Set xRg = Application.Intersect(xRg, xRg.Worksheet.UsedRange)

    If xRg Is Nothing Then Exit Sub
    If (xRg.Columns.Count > 1) Or _
       (xRg.Areas.Count > 1) Then
        MsgBox "Used range only contain one column", , "Transpose to Excel"
        Exit Sub
    End If

    Set xOutRg = Application.InputBox("Select output range(specify one cell):", "Transpose to Excel", xTxt, , , , , 8)

    If xOutRg Is Nothing Then Exit Sub

    Set xOutRg = xOutRg.Range(1)

    xUpdate = Application.ScreenUpdating
    Application.ScreenUpdating = False
    xLRow = xRg.Rows.Count

    For i = 1 To xLRow Step 3
        xRg.Cells(i).Resize(3).Copy
        xOutRg.Offset(xNRow, 0).PasteSpecial Paste:=xlPasteAll, Transpose:=True
        xNRow = xNRow + 1
    Next
    Application.ScreenUpdating = xUpdate

End Sub

NB:コードのテストに使用したデータには3列(REDカラー値)があるため、Forループステップとサイズ変更の値は3です。データ構造に応じて変更します。

これがお役に立てば幸いです。

0
Rajesh S