欢迎来到天天文库
浏览记录
ID:44811949
大小:46.51 KB
页数:8页
时间:2019-10-29
《VBProject:代码操作代码之常用语句》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、一、增加模块 1.增加一个模块,命名为“我的模块” ThisWorkbook.VBProject.VBComponents.Add(vbext_ct_StdModule).Name="我的模块" 系统常量vbext_ct_StdModule=1 2.增加一个类模块,命名为“我的类” ThisWorkbook.VBProject.VBComponents.Add(vbext_ct_ClassModule).Name="我的类" vbext_ct_ClassModule=2 3.增加一个窗体,命名为“我的窗体” ThisWorkbo
2、ok.VBProject.VBComponents.Add(vbext_ct_MSForm).Name="我的窗体" vbext_ct_MSForm=3 二、删除模块 1.删除“模块1”ThisWorkbook.VBProject.VBComponents.RemovehisWorkbook.VBProject.VBComponents("模块1") 2.删除窗体“UserForm1” ThisWorkbook.VBProject.VBComponents.RemoveThisWorkbook.VBProject.VBComponent
3、s("UserForm1") 3.删除类模块“类1”ThisWorkbook.VBProject.VBComponents.RemoveThisWorkbook.VBProject.VBComponents("类1") 4.删除所有的窗体 SubRmvForms() DimvbCmpAsVBComponent ForEachvbCmpInThisWorkbook.VBProject.VBComponents IfvbCmp.Type=vbext_ct_MSFormThenThisWorkbook.VBProject.VBComp
4、onents.RemovevbCmp NextvbCmp EndSub 相关: 工作表和ThisWorkbook的模块类型为vbext_ct_Document=100 三、增加代码 1.在“模块1”中插入代码 如果需要在“Sheet1”、“Thisworkbook”、或“Userform1”中操作,用只需将下面的“模块1”换成相应的名称即可。 方法1: 在模块的开始增加代码,增加的代码放在公共声明option,全局变量等后面。 SubAddCode1() ThisWorkbook.VBProject.VBComponents("模
5、块1").CodeModule.AddFromString_ "subaTest()"&Chr(10)&_ "msgbox""Hello"""&Chr(10)&_ "endsub" EndSub 方法2: 在模块指定行处增加代码,原代码后移。增加代码不理会和判断插入处代码的内容。当指定行大于最后一行行号时,在最后一行的后面插入。 SubAddCode2() WithThisWorkbook.VBProject.VBComponents("模块1").CodeModule .InsertLines1,"subaTest()
6、" .InsertLines2,"msgbox""Hello""" .InsertLines3,"endsub" EndWith EndSub 相关语句: (1)“模块1”中代码总行数: ThisWorkbook.VBProject.VBComponents("模块1").CodeModule.CountOfLines (2)“模块1”中代码公共声明部分的行数: ThisWorkbook.VBProject.VBComponents("模块1").CodeModule.CountOfDeclarationLines (3)显
7、示“模块1”中第1行起的3行代码内容: SubShowCodes() Dims$ s=ThisWorkbook.VBProject.VBComponents("模块1").CodeModule.Lines(1,3) Debug.Prints EndSub (4)过程aTest的起始行数: ThisWorkbook.VBProject.VBComponents("模块1").CodeModule.ProcBodyLine("aTest",vbext_pk_Proc) ThisWorkbook.VBProject.VBComponent
8、s("模块1").CodeModule.ProcStartLine("aTest",0) 系统常量vbext_pk_Proc=0 二者的区别是ProcBodyLine返回subaTest或Fu
此文档下载收益归作者所有