PDFをExcelに取り込む!VBAで業務効率化を目指そう

こんにちは!大阪市を拠点に活動している『縁紡ぐ』の稲垣です。
SWELLを使ったホームページ制作や、Excel、ACCESS、RPAなどのシステム開発を行っています。
また、Excel、Word、Outlookの研修や、情報セキュリティ研修も行っています。身近なITの相談相手になりたいと思っています。
お気軽にお問い合わせください。
概要
今回は、お客様がPDFファイルを見ながらWebシステムへ入力作業している仕事があるのですが、PDFのあっちやこっちを見ないと入力する項目が拾えないということで、何とか効率化したいということでご依頼があり作成しました。
今回は、その全体の一部分ですが、PDFファイルの内容をExcelに無料で簡単に取り込む方法を紹介します。VBA初心者でも安心して使えるコードを解説しながら、業務の効率化に役立つポイントをお伝えします。
PDFをExcelに取り込む理由

PDFファイルは便利ですが、データを活用するにはExcelに取り込む必要がありますよね。手作業で入力すると間違いが起きる可能性があるので、チェック作業まで発生します。
ただ、それを手動でコピペしたら、複数ページあるのに1ページだけやってしまったり、時間がかかるし、ミスも起こりやすい。そこで、VBAを使って自動化することで、業務の効率化が図れます。
VBAコードの解説
以下のVBAコードを使って、PDFファイルをExcelに取り込むことができます。
ポイント
先にポイントして紹介しておきます。
PDFファイルは、Wordで開いてからExcelに貼り付けると、もとの体裁を維持しやすくなります!
なので、今回は
PDF➡Wordで開く➡WordからExcelに貼り付ける
という流れになります。
Sub ImportPDFtoExcel()
Dim pdfFilePath As String
Dim wordApp As Object
Dim wordDoc As Object
Dim excelSheet As Worksheet
' PDFファイルを選択するダイアログを表示
pdfFilePath = Application.GetOpenFilename("PDF Files (*.pdf), *.pdf", , "PDFファイルを選択")
' ユーザーがキャンセルを押した場合
If pdfFilePath = "False" Then Exit Sub
' Wordアプリケーションを作成
Set wordApp = CreateObject("Word.Application")
' PDFをWordで開く
Set wordDoc = wordApp.Documents.Open(pdfFilePath)
' 新しいExcelシートを取得
Set excelSheet = ThisWorkbook.Sheets(1)
' Wordの全内容を選択してコピー
wordDoc.Content.Select
wordApp.Selection.Copy
' Excelシートに貼り付け
excelSheet.Range("A1").PasteSpecial DataType:=xlPasteText
' Wordドキュメントを閉じる
wordDoc.Close False
wordApp.Quit
' オブジェクトの解放
Set wordDoc = Nothing
Set wordApp = Nothing
MsgBox "PDFの内容をExcelにコピーしました。"
End Sub
注意点
Wordがインストールされていないと使えないの?
はい、Wordがないと使えませんのでご注意ください。
処理速度
PDFファイルをWordで開くには時間がかかります。なので処理に時間がかかります。
コメント