這裏是我的代碼:讀取宏迅速
For Each pj In wdApp.Application.VBE.VBProjects
x = pj.FileName
y = pj.Protection
If x <> "" Then
If y <> "1" Then
For Each vbcomp In pj.VBComponents
For i = 1 To vbcomp.CodeModule.CountOfLines
newMacro = vbcomp.CodeModule.ProcOfLine(Line:=i, prockind:=vbext_pk_Proc)
If curMacro <> newMacro Then
curMacro = newMacro
cboMacros.AddItem (curMacro)
Debug.Print curMacro
Else: newMacro = Null
End If
Next
Next
End If
Selection.InsertAfter vbCr
End If
x = ""
Next
Selection.Collapse wdCollapseEnd
End Sub
的問題是,我可以在相關的文件返回所有宏的名稱,但它是效率極其低下。 85個宏名稱需要2分鐘。這是因爲程序讀取每個模塊的每一行(CountOfLines)。我只是希望可以在我的else語句中執行一些魔法。如果當前宏與newmacro相同,那麼只要跳到不同的位置即可。我不確定這是否可能。如果沒有,是否有比CountOfLines更好的方法?