システムwiki

ユーザーがPDFファイルから情報を抽出するのを助けるためにExcel VBA

RajeshC 解決済 最終更新日:2021-06-14 11:26

多くの場合、私の連絡先の多くのユーザーは、質問をしてください-Excel VBAがPDFファイルから情報を抽出することができますか?

数年後に私はWeb上の誰かによって共有されているそのようなマクロを見つけました.

残念なことに、今日はそのコードを持っていません、そして、私はそのようなコードを書く方法についてのサンプルコードやより詳細な説明を見つけることができる他の情報/リンクを持っていません.

そのようなサンプルコードを認識している人は誰ですか?またはこれに関する詳細な情報を共有するそのようなサイトは?

返信リスト(回答:4)

3 #
Andreas 1

Web上で見つけるコードのほとんどは、他のインストールされているApplicationまたはサードパーティのツールに基づいています.さらに、物事が時間の経過とともに変化し、あなたがコードを試すとき、あなたはそれのほとんどがもう動作しないことがわかります.
とにかく、ネイティブのPDFを開き、テキストを抽出することしかできません.PDFが保護されている場合は、機能しません.
したがって、何かを試す簡単な方法があります.PDFを単語で開く!
2013 Word以降はネイティブのPDFを開き、PDFをテキストに変換することができます.
アンドレアス.

4 #
DaveM12 2

こんにちはRajesh、これはあなたがおそらくあなたのニーズに合うように調整することができるサブです.これで、PDFファイルを開き、Adobeライブラリを使ってその内容を抽出することができます.コードは、アドビがすでにPCにINをインストールしていることに依存しており、次のようにインストールされているDLLを使用します.
その一部
関数getTextFrompDF(文字列としてbyval strfilename)文字列として
新しいacroavdocとして薄暗いobjavdoc
新しいAcropdDocとしての薄暗いobjpddoc
AcropdPageとして薄暗いobjpage
AcropdTextSelectとして薄暗いobjselection
acrohiliteListとして薄暗いヴォイライト
薄型PageNumの長い
Dim Strtext
strtext= "" "" "" if(objavdoc.open(strfilename、 "")
set objpdoc= objavdoc.getpdoc
PageNum= 0からobjpdoc.getNumpages()-1
set objpage= objpdoc.acquirepage(PageNum)
objhighlight= New Acrohilitelist
objhighlight.add 0,10000 'ページ上のすべてのテキストを取得していない場合はこれを調整します.
set objselection= objpage.CreatePageHilite(objHighlight)
objSelectionがその場合は何もない場合は
tcount= 0からobjselection.getNumText-1
strtext= strtext&objselection.getText(tcount)
次のTCOUNT

の場合は終了 次のPagenum
objavdoc.close 1

の場合は終了 getTextFrompDF= strtext
終了機能
ソース:
stackoverflow.com/questions/36270247...

応答4# ->にスキップ
2 #
RajeshC

私は間違いなく試してみるでしょう.

ちょうど1つの簡単な質問.このコードを使用してパスワードで保護されたPDFを開く方法(もちろんわずかな変更で).それはうまくいきますか?

しかし、Andreasは、PDFファイルがパスワードで保護されているとうまくいかないと彼女の対応では非常に明確に述べられています.

応答2# ->にスキップ
1 #
RajeshC

Dave、

あなたが共有したコードは間違いなく仕事をしましたが、1つの小さな問題がありました.

PDFファイルからのテキストはExcelワークシートの単一のセルで抽出されました.

Excelの1つのセルに1行のPDFテキストを抽出しました.

とにかく、あなたがあなたの回答で共有したリンクは私が解決策に近づくのを助けました.