我有一个2003 excel文件。使用ofc.exe文件我已将2003 excel文件转换为2007 exls文件。
现在我的问题是在转换文件之前我知道excel文件是c#.net中的宏excel文件吗?
答案 0 :(得分:2)
阅读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