コンピュータや音楽の事書いてます

Excel, PowerPoint, Wordのマクロのエクスポートvbs

マクロのソースを比較したい時、ソース管理システムに登録したい時など、xlsm、pptmなどのファイルから、モジュール単位でテキストファイルに吐き出す。Excel, PowerPointで出来たので、多分Wordも出来る。

VBAプロジェクトオブジェクトモデルへのアクセスを許可する必要あり。
以下を名前「マクロのソースexport.vbs」で保存し、目的のxlsやxlsm、pptmなどのファイルをエクスプローラー上でドロップすると実行される。

set fso = createobject("scripting.filesystemobject")

for each f in WScript.Arguments
	exec f
next

sub exec(f)
	set theFile = fso.getfile(f)
	toDir = theFile.ParentFolder & "\" & fso.GetBaseName(f)
	if not fso.FolderExists(toDir) then set toDir = fso.CreateFolder(toDir)
	set ppt = wscript.GetObject(f)
	For Each VBC In ppt.VBProject.VBComponents
		VBC.Export toDir & "\" & VBC.name & ".bas"
	Next
end sub