1
我有一个2003 excel文件。使用ofc.exe文件我已将2003 excel文件转换为2007 exls文件。如何以编程方式知道excel文件在C#中有宏文件
现在我的问题是在转换文件之前我可以知道excel文件是在c#.net中的宏excel文件吗?
我有一个2003 excel文件。使用ofc.exe文件我已将2003 excel文件转换为2007 exls文件。如何以编程方式知道excel文件在C#中有宏文件
现在我的问题是在转换文件之前我可以知道excel文件是在c#.net中的宏excel文件吗?
阅读this answer我发现使用Application.VBE.ActiveVBProject.VBComponent
似乎是你想要的。
在MSDN forums上提出了一个类似的问题,虽然涉及Visio而不是Excel。我相信你可以相应地调整代码。
更多this SO question问与您的完全相同。尽管这个答案似乎并不涵盖C#...
在at the eggheadcafe一个用户建议使用此代码段遍历所有VB-组件:
Sub Test()
If bHasMacros(ActiveWorkbook) Then
MsgBox ActiveWorkbook.Name & " has macros."
End If
End Sub
Function bHasMacros(ByRef wkbBook As Workbook) As Boolean
Dim cmpComponent As VBIDE.VBComponent
For Each cmpComponent In wkbBook.VBProject.VBComponents
If cmpComponent.CodeModule.CountOfLines > 1 Then
bHasMacros = True
Exit Function
End If
Next cmpComponent
End Function
但我的应用程序是在C#。我怎样才能使用这段代码?你能给我建议吗? –