(3)显示“模块1”中第1行起的3行代码内容: Sub ShowCodes() Dim s$ s = ThisWorkbook.VBProject.VBComponents("模块1").CodeModule.Lines(1, 3) Debug.Print s End Sub (4)过程aTest的起始行数: ThisWorkbook.VBProject.VBComponents("模块1").CodeModule.ProcBodyLine("aTest", vbext_pk_Proc) ThisWorkbook.VBProject.VBComponents("模块1").CodeModule.ProcStartLine("aTest", 0) 系统常量vbext_pk_Proc=0 二者的区别是ProcBodyLine返回sub aTest或Function aTest所在的行号,如果sub前面有空行,ProcStartLine返回空行的行号。 (5)过程aTest的总行数: ThisWorkbook.VBProject.VBComponents("模块1").CodeModule.ProcCountLines("aTest", vbext_pk_Proc) 2.建立事件过程 建立事件过程除了使用上面的代码如下面的AddEventsCode1外,还可以使用CreateEventProc方法,如AddEventsCode2所示。 一般方法: Sub AddEventsCode1() ThisWorkbook.VBProject.VBComponents("ThisWorkbook").CodeModule.AddFromString _ "Private Sub Workbook_Open()" & Chr(13) & _ "MsgBox ""Hello""" & Chr(13) & _ "End Sub" End Sub CreateEventProc方法: Sub AddEventsCode2() Dim i% With ThisWorkbook.VBProject.VBComponents("Sheet1").CodeModule i = .CreateEventProc("SelectionChange", "Worksheet") + 1 .InsertLines i, "Msgbox ""Hello""" End With End Sub 上面CreateEventProc的两个参数建立的事件过程为Worksheet_SelectionChange,分别是下划线两边的内容。
[此贴子已经被作者于2006-10-2 21:10:37编辑过] |