我知道可以使用 Excel 宏来执行此操作,请参阅:Programmatically extract macro (VBA) code from Word 2007 docs,但我在这里想要做的是使用 VB6 来制作一个执行相同操作的应用程序。
我在如何指向 Excel 工作簿(thisworkbook.VBproject
在上面的示例中使用)时遇到问题。
是否可以从 hd 中选择任何 .xls 文件,例如c:\try.xls
,提取/显示其宏?请指教!
我知道可以使用 Excel 宏来执行此操作,请参阅:Programmatically extract macro (VBA) code from Word 2007 docs,但我在这里想要做的是使用 VB6 来制作一个执行相同操作的应用程序。
我在如何指向 Excel 工作簿(thisworkbook.VBproject
在上面的示例中使用)时遇到问题。
是否可以从 hd 中选择任何 .xls 文件,例如c:\try.xls
,提取/显示其宏?请指教!
设置对 Microsoft Excel 12.0 对象库(或所需的任何版本)的引用并使用工作簿的 VBProject.VBComponents 集合,例如
Sub ExportCode()
Dim app As Excel.Application
Set app = New Excel.Application
Dim wb As Excel.Workbook
Set wb = Excel.Application.Workbooks.Open("C:\Book2.xls")
Dim strExt As String
Dim VBComp As Object
For Each VBComp In wb.VBProject.VBComponents
Select Case VBComp.Type
Case 2 ' Class module
strExt = ".cls"
Case 3 ' Form
strExt = ".frm"
Case 1 ' Standard module
strExt = ".bas"
Case 100 ' Document?
strExt = ".cls"
Case Else
Stop ' What else is there?
strExt = ".cls"
End Select
VBComp.Export "C:\" & VBComp.Name & strExt
Next
wb.Close False
app.Quit
End Sub
以下行:
Set wb = Excel.Application.Workbooks.Open("C:\Book2.xls")
应该
Set wb = app.Workbooks.Open("C:\Book2.xls")