web-dev-qa-db-ja.com

MS Excelで開かずにExcelファイルのVBAマクロ(またはvbaProject.bin)を読み取る

Excelファイル、特にVBAプログラムを含むファイルを分析したいと思います。多くのExcelファイルでこの分析を1つずつ実行する予定なので、これらのファイルをMicrosoft Excel内で開いて分析したくありません。

1つの困難は、ExcelファイルのVBAマクロを見つけて解析することです。 Excelファイルは、多くの.Zipおよび.xmlを含むvbaProject.binファイルに変換できることがわかっています。VBAマクロがvbaProject.binにあることは確かです。しかし、問題はそれをどう読むかです。

VBAマクロを見つけて解析するためのツールまたはAPIがあるかどうか誰もが知っていますか?

vbaProject.binを読み取るためのツールまたはAPIがあるかどうかは誰にもわかりますか?

29
SoftTimur

vbaproject.binから関数を抽出する方法を文書化したMicrosoftの非常に大きなPDFがあります。

https://interoperability.blob.core.windows.net/files/MS-OVBA/%5bMS-OVBA%5d.pdf [ Source ]

このリソースは最新であり、2019年6月27日時点で利用可能です。このリンクが古くなるイベント(Microsoftは定期的にパーマリンク構造を変更するか、ドキュメント/回答リポジトリなどの実装方法を変更します)、MS-OVBA.pdfを検索します。

上記を補完する場合としない場合があるいくつかの追加情報:

http://www.codeproject.com/Articles/15216/Office-2007-bin-file-format

27
David Zemens

2017年に更新された記事 は、これを支援するいくつかのツールをリストしています。 OfficeMalScannerツール を使用して、vbaProject.binからVBAコードを抽出できました。

0
pettys