[マクロの一覧を表示する]
ファイルに含まれているマクロ名の一覧を表示します。
もっと良い方法がありそうだけど・・・
【ソースコード】
[tips0172.vbs]
Option Explicit
On Error Resume Next
Dim objXlApp
Dim objXlBook
Dim objComp
Dim lngLines
Dim strLine
Dim lngLoop
Set objXlApp = WScript.CreateObject("Excel.Application")
If Err.Number = 0 Then
Set objXlBook = objXlApp.Workbooks.Open("C:\Temp\Test.xls")
If Err.Number = 0 Then
For Each objComp In objXlBook.VBProject.VBComponents
If objComp.Type = 1 Then
WScript.Echo "○" & objComp.Name
lngLines = objComp.CodeModule.CountOfLines
For lngLoop = 1 To lngLines
strLine = objComp.CodeModule.Lines(lngLoop, 1)
If Left(Trim(strLine), 4) = "Sub " Then
WScript.Echo " ・" & Mid(strLine, 5)
End If
Next
End If
Next
Else
WScript.Echo "エラー:" & Err.Description
End If
objXlApp.Quit
Else
WScript.Echo "エラー:" & Err.Description
End If
Set objXlBook = Nothing
Set objXlApp = Nothing
【実行結果】
C:\> cscript //NoLogo tips0172.vbs
○Module1
・Auto_Close()
・Macro1()
・Test(ByVal lngCnt As Long)
○Module2
・Macro2()