データのテーブルがあり、Excelに取り込む必要があります。 MS Wordにコピーして貼り付けてから、「テキストを表に変換」を使用することを提案しているWebサイトをいくつか見つけました。これは、列の間にスペースがあるため、残念ながら機能しませんが、列の区切り文字としてスペースを選択すると、複数の単語が含まれる列を異なる列に分割します。
PDFファイルからExcelにテーブルを取得するためのより良い推奨方法はありますか?
全体は、他の回答で述べられているよりもはるかに単純です。
Acrobat/Readerで、テキスト選択ツールを選択し、テーブルを完全に表示します。
ここで、Ctrl/Optionキーを押して、テーブルを選択します。カーソルが変化することに気付くでしょう。選択が完了したら、コピーしてExcelに貼り付けることができます。
VBAコードをお勧めします。これにより、コピーされたデータテーブルがPDFからExcelに転置されます。
以下の手順に従ってください。
スクリーンショットを確認してください。
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です。データ構造に応じて変更します。
これがお役に立てば幸いです。