【Excel/VBA】PDFやWordから表データだけを抽出するマクロ

Excel/VBA

単純なコピペではレイアウトが崩れてしまい上手く行かないので、簡単に抽出できる方法を考えてみた。

陥りがちな罠

 
例えばこんなPDFがあるとします。

これの表データが欲しい場合、単純にCtrl+ACtrl+CCtrl+VでExcelにコピッペしてしまいがちですが、そうするとこうなってしまいます↓

レイアウトがぶっ壊れてしまい、見るも無残な状態です。今回はこれを何とかしようって事で作ってみた。

 

GetTables

 
以下コピッペでOK。
※Microsoft Word 1X.0 Object Libraryの参照設定必要なので追加してください。

PDFだろうと強制的にWORDで開くのがポイント。WORDで開く事でTablesによりテーブルだけぶち抜けるので綺麗にデータだけ持ってこれます。

複数テーブル有る時は、全部抽出するかメッセージを出し、NOなら最初の表のみ抽出。YESの場合は表と表の間を1行開けて抽出していきます。

実際の動き

 

複数テーブルはこんな感じ↓ テーブルが一個だけならダイアログは出ずそのまま抽出されます。

後はこれを個人用マクロブックにでも忍ばせておけば、いつどんなExcelを開いている時でも呼び出せるようになるのでかなり便利なハズ。是非ご活用ください~(ᵔᴥᵔ)

コメント