以下是引用bluebdy在2006-5-12 13:44:38的发言: rt,困扰我好久了 谢谢各位帮忙!
做了两个小代码,供参考: '* +++++++++++++++++++++++++++++ '* Created By SHOUROU@ExcelHome 2006-7-12 6:23:46 '仅测试于System: Windows NT Word: 11.0 Language: 2052 '№ 0036^The Code CopyIn [ThisDocument-ThisDocument]^' '* ----------------------------- Sub Example1() Dim mySub As String mySub = "GetViewFieldCodes" On Error GoTo ErrHandle Application.Run "Normal.ThisDocument." & mySub Exit Sub ErrHandle: MsgBox "指定路径下未找到" & mySub & "宏!", vbInformation End Sub '---------------------- Sub Example2() Dim mySub As String On Error GoTo ErrHandle ' mySub = "GetViewFieldCodes" mySub = "Test" ' Debug.Print Word.NormalTemplate.VBProject.VBComponents(1).CodeModule.ProcBodyLine(mySub, vbext_pk_Proc) ' Debug.Print Me.VBProject.VBComponents(1).CodeModule.ProcBodyLine("Example3", vbext_pk_Proc) Debug.Print ActiveDocument.VBProject.VBComponents("Module1").CodeModule.ProcBodyLine(mySub, vbext_pk_Proc) MsgBox "指定模块中包含" & mySub & "宏!", vbInformation Exit Sub ErrHandle: MsgBox "指定路径下未找到" & mySub & "宏!", vbInformation End Sub 第一个代码适用于非执行的过程,否则,将运行该宏后发生宏指定的动作,可通过撤消方式解除。 第二个代码必须在宏安全性中勾选信任对于VB项目的访问。 还可以通过引用,枚举宏名,此处不做讲解了。 |