2011-03-08 69 views

回答

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 
+0

但我的應用程序是在C#。我怎樣才能使用這段代碼?你能給我建議嗎? –

相關問題