(できれば) Python で VBA diff プログラムを書きたいと思っています。Excel スプレッドシートに含まれる VBA を読み取ることができる Python ライブラリはありますか?
3588 次
2 に答える
6
手始めに簡単なボイラープレートをいくつか示します。Excel COM オブジェクトを使用します (Windows のみのソリューション)。
from win32com.client import Dispatch
wbpath = 'C:\\example.xlsm'
xl = Dispatch("Excel.Application")
xl.Visible = 1
wb = xl.Workbooks.Open(wbpath)
vbcode = wb.VBProject.VBComponents(1).CodeModule
print vbcode.Lines(1, vbcode.CountOfLines)
これは、この例のために記録したばかげたマクロを出力します。
Sub silly_macro()
'
' silly_macro Macro
'
'
Range("B2").Select
End Sub
1 から始まるインデックス Lines
を使用することに注意してください。モジュール名によるインデックスもサポートしています。また、Excel ではパスにバックスラッシュが必要であることに注意してください。VBComponents
VBComponents
さらに深く掘り下げるには、Pearson のProgramming The VBA Editorを参照してください。(上記の例は、私がそこからすくい取ったものをまとめたものです。)
于 2012-09-05T19:09:59.483 に答える
0
これを行う VbaDiff というアプリケーションを作成しました。2 つの Excel ファイルを提供すると、それぞれの VBA コードが比較されます。また、コマンド ラインから実行することも、独自のプログラムと統合する場合は API に付属のバージョンを使用することもできます。
詳細については、http://www.technicana.com/vbadiff-information.htmlを参照してください。
クリス
于 2012-10-05T10:43:59.693 に答える