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#。我怎樣才能使用這段代碼?你能給我建議嗎? –