2022年用宏操作代码模块 .pdf

上传人:H****o 文档编号:39719076 上传时间:2022-09-07 格式:PDF 页数:8 大小:123.75KB
返回 下载 相关 举报
2022年用宏操作代码模块 .pdf_第1页
第1页 / 共8页
2022年用宏操作代码模块 .pdf_第2页
第2页 / 共8页
点击查看更多>>
资源描述

《2022年用宏操作代码模块 .pdf》由会员分享,可在线阅读,更多相关《2022年用宏操作代码模块 .pdf(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、1 用宏操作代码模块。With ThisWorkbook.VBProject.VBComponents(Module1).CodeModule.DeleteLines.ProcBodyLine(delMacro,0),.ProcCountLines(delMacro,0)End With ThisWorkbook.VBProject.VBComponents(thisworkbook).CodeModule.DeleteLines 12,3 Application.VBE.ActiveVBProject.VBComponents.remove Application.VBE.ActiveVBP

2、roject.VBComponents(模块 1)VBComponents 属性返回包含在一个工程中的部件的集合。说明使用VBComponents 集合访问、增加或删除工程中的部件。部件可以是窗体、模块或类。VBComponents 集合是标准集合,可用For?Each 块中。可用Parent 属性返回VBComponents 集合所在的工程名。在用Visual Basic 编写应用程序时,可以用Import 方法从文件往工程中增加部件。CodeModule 属性返回一个对象,代表与部件相关的代码。此属性为只读。说明如果该部件没有关联的代码模块,CodeModule 属性返回 Nothing。

3、注意CodePane 对象代表一个可见的代码窗口,一个给定的部件可以有多个CodePane 对象,CodeModule 对象代表部件内的代码。一个部件只能有一个CodeModule 对象。CodeModule 属性示例下列示例使用CodeModule 及 CountOfLines 属性返回某代码模块内的行数。Debug.Print Application.VBE.ActiveVBProject.VBComponents(6).CodeModule.CountOfLines 以下为 CodeModule.*.AddFromFile 方法对于References 集合,此方法添加一个从文件到工程

4、的引用。对于CodeModule 对象,此方法添加文件内容到 模块 中。语法object.AddFromFile(filename)AddFromFile语法有以下几个部分:部分描述object必需的。一个 对象表达式,其值是“应用于”列表中的一个对象。Filename必需的。一个 字符串表达式,用来指定欲添加到工程或模块的文件名。如果找不到文件名或未指明路径名,Windows OpenFile 函数可搜寻目录。说明对于CodeModule对象,AddFromFile方法可在 代码模块 中第一个 过程之前的行开始插入文件的内容。如果模块没有包含过程,AddFromString可将文件的内容放置

5、在模块的最后。AddFromFile 方法示例下列示例使用AddFromFile 方法将某文件的内容加到所指定的代码窗格中。Application.VBE.CodePanes(3).CodeModule.AddFromFile c:Code Filesbook2.frm 名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 8 页 -2.AddFromString 方法将文本添加到模块。语法object.AddFromStringobject 为一个 对象表达式,其值是“应用于”列表中的一个对象。说明AddFromString方法可在模块中第一个过程 之前插入文件的内容。如果模块没有包

6、含过程,AddFromString可将文件的内容安置在模块最后。AddFromString 方法示例下列示例使用AddFromString方法添加一行代码“Dim intJack As Integer”到指定的代码窗格中。Application.VBE.CodePanes(3).CodeModule.AddFromString Dim intJack As Integer CodePane 属性返回一个CodePane 对象,此属性为只读。说明如果存在一个代码窗格,则它将变成活动的代码窗格,并且,包含它的窗口将变成活动的窗口。如果该模块 的代码窗格不存在,则CodePane 属性将创建一个代码

7、窗格CountOfDeclarationLines 属性返回一个Long 型数,它包含 代码模块 的“声明”部分的代码行数。此属性为只读。CountOfDeclarationLines 属性示例下列示例使用CountOfDeclarationLines属性返回指定的代码窗格中声明行的数目。Debug.Print Application.VBE.CodePanes(2).CodeModule.CountOfDeclarationLines CountOfLines 属性返回一个Long 型数,包含一个代码模块 中代码的行数。此属性为只读CountOfLines 属性示例下列示例使用CountOf

8、Lines 属性返回指定代码窗格中的总行数。Application.VBE.CodePanes(2).CodeModule.CountOfLines CreateEventProc 方法创建一个事件过程。语法object.CreateEventProc(eventname,objectname)As Long CreateEventProc 语法有以下几个部分:部分描述object必需的。一个 对象表达式,其值是“应用于”列表中的一个对象。eventname必需的。一个 字符串表达式,用来指定欲添加到模块 的事件名称。objectname必需的。一个字符串表达式,用来指定事件源的对象名称。说明

9、使用CreateEventProc 方法来创建一个事件过程。例如,欲为名为Command1 的 Command Button 控件创建Click 事件 过程,可以用以下的代码,其中CM 表示 CodeModule 类型的对象:TextLocation=CM.CreateEventProc(Click,Command1)CreateEventProc 方法可返回事件过程的开始行。如果参数 引用到一个不存在的事件,CreateEventProc 名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 8 页 -3 将失败。CreateEventProc 方法示例下列示例使用CreateEve

10、ntProc方法来创建Button_Click 过程。Debug.Print Application.VBE.SelectVBComponents.CodeModule.CreateEventProc(Click,Button)DeleteLines 方法删除一个单行或指定行范围的代码。语法object.DeleteLines(startline)count DeleteLines 语法有以下几个部分:部分描述object必需的。一个对象表达式,其值是“应用于”列表中的一个对象。Startline必需的。一个Long 型数,用来指定欲删除的开始行。Count可选的参数。一个Long 型数,用来

11、指定欲删除的行数。说明如果没有指定欲删除的行数,DeleteLines 将只删除一行。DeleteLines 方法示例下列示例包含两个步骤。第一个步骤里的For Next 循环使用InsertLines 方法将26 个英文字母排成 26 行文本(第一行从只有一个字母“A”,第二行有两个字母“ab”,其余依此类推,最后一行就包含“A”到“z”共 26 个字母),插入到CodePanes(1)中。第二个步骤里的For-Next循环使用DeleteLines 方法,将第一个步骤所生成的26 行文本之单数行删除。虽然在第二个循环里,表面上看起来好象是在删除前面13 行文本(For I=1 to 13)

12、,但实际上每删除掉一行,其后每一行的行号就都减少了,所以其实删除的只有单数行。下面的解释应使读者更清楚:当I=1 时,删除第一行,则第二行变成第一行,第三行变成第二行;因此当I=2 时,表面上删除的是第二行,但这个第二行是原本的第三行,因此删除的是原本的单数行,并且此时第三行变成第二行,第四行变成第三行;依次而下,直到删除所有的单数行为止。For I=1 to 26 Application.VBE.SelectedVBComponent.CodeModule.InsertLines i,Mid$(abcdefghijklmnopqrstuvwxyz,1,I)Next For I=1 to 13

13、 Application.VBE.SelectedVBComponent.CodeModule.DeleteLines I Next Find 方法(VBA 外接程序对象模型)在活动 模块 上搜寻一个特定字符串。语法object.Find(target,startline,startcol,endline,endcol,wholeword ,matchcase,patternsearch)As BooleanFind 方法语法有以下几个部分:部分描述object必需的。一个 对象表达式,其值是“应用于”列表中的一个对象。target必需的。一个String 型数,用来指定欲查找的文本或样式。S

14、tartline必需的。一个Long 型数,用来指定欲搜寻的器始行:如果找到的话,将设为匹名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 8 页 -4 配行。第一行为数字1。Startcol必需的。一个Long 型数,用来指定欲搜寻的起始列:如果找到的话,将设为匹配列。第一列是数字1。endline必需的。一个Long 型数,表示最后一个匹配的字符串所在的行数。最后一行可以被指定为-1。endcol必需的。一个Long 型数,表示最后一个匹配的字符串所在的列数。最后一列可以被指定为-1。wholeword可选的参数。一个Boolean 型数,表示是否只匹配整个字。如为True,表

15、示只匹配整个字。默认为False。matchcase可选的参数。Boolean,表示是否进行大小写匹配。如为True,表示大小写皆匹配。默认为False。patternsearch可选的参数。Boolean,表示欲查找的字符串是否为常规表达式。如为True,表示为常规表达式;默认为False。说明如找到匹配项,Find 方法可返回True,否则返回False。matchcase 和 patternmatch 参数 是互斥的;如果两参数皆为True,将产生错误。Find 方法不影响Find 对话框中的内容。指定的行和列范围是“或”的关系,因此如果所提供的endcol 是-1 或行的长度,则能够找

16、到指定的最后一行的样式。Find 方法示例下列示例使用Find方法验证在某个代码窗格的指定范围内,从第1261 行到1279 行中包含Tabs.Clear 字符串。Application.VBE.CodePanes(2).CodeModule.Find(Tabs.Clear,1261,1,1280,1,False,False)InsertLines 方法在一个代码块的某个指定位置,插入一行或多行的代码。语法object.InsertLines(line,code)InsertLines 语法有以下几个部分:部分描述object必需的。一个对象表达式,其值是“应用于”列表中的一个对象。Line必

17、需的。一个Long 型数,用来指定要插入代码的位置。Code必需的。一个String 型数据,即要插入的代码。说明如果使用InsertLines 方法所插入的文本用换行回车分隔,则将依此插入一些行。InsertLines 方法示例下列示例使用InsertLines 方法将“Option Explicit”这行文本插入到指定的代码窗格中。Application.VBE.CodePanes(1).CodeModule.InsertLines 1,Option Explicit Lines 属性返回一个字符串,它包含指定行数的代码。语法object.Lines(startline,count)As

18、String Lines 语法包含以下部分:名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 8 页 -5 部分描述object 必需的。对象表达式,其值是“应用于”列表中的一个对象。startline 必需的。Long 型值,指定起始行号。count 必需的。Long 型值,指定要返回的行数。说明代码模块 中的 行号 是从 1 开始。Parent 属性返回包含另一对象或集合的对象或集合,此属性为只读。说明大部分的对象都可有一个Parent 属性或是Collection 属性,它们是用来在这个对象模式中指向此对象的父对象。Collection 属性只有在父对象是集合时才可被使用。使

19、用Parent 属性来访问一个对象的父对象的属性、方法 及控件。Parent 属性示例下列示例使用Parent 属性返回在对象层次中某一对象之父对象的名称。Debug.Print Application.VBE.ActiveVBProject.VBComponents.Parent.Name ProcBodyLine 属性返回 过程 的第一行。语法object.ProcBodyLine(procname,prockind)As Long ProcBodyLine 语法有以下部分:部分描述object必需的。对象表达式,其值是“应用于”列表中的对象。procname必需的。包含过程名的字符串pr

20、ockind必需的。指定要定位的过程种类。Property 过程 在模块 中可以有多种表示,必须指定要定位的过程种类。除了使用vbext_pk_Proc 的 Property 过程(即,Sub 和 Function 过程)之外的所有过程。对 prockind参数 可以使用如下的常数 之一:常数描述vbext_pk_Get 指定一个返回属性值的过程。vbext_pk_Let 指定一个赋值给属性的过程。vbext_pk_Set 指定一个给对象设置引用的过程。vbext_pk_Proc 指定所有过程除了Property 过程。说明Sub、Function 或 Property 出现在一个过程的第一行

21、。ProcBodyLine 属性示例以下示例使用ProcBodyLine 属性,返回指定过程SetupTabs 中代码第一行的行号到特定的代码窗格。Debug.Print Application.VBE.CodePanes(3).CodeModule.ProcBodyLine(SetupTabs,vbext_pk_Proc)ProcCountLines 属性名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 8 页 -6 返回特定 过程 的行数。语法object.ProcCountLines(procname,prockind)As Long ProcCountLines 语法有三部

22、分部分描述object 必需的。对象表达式,其值是“应用于”列表中的对象。procname 必需的。包含过程名的字符串prockind 必需的。指定要定位的过程种类。Property 过程在模块 中可以有多种表示,必须指定要定位的过程种类。所有过程除了Property 过程(即,Sub 和Function 过程)用vbext_pk_Proc。对 prockind 参数 可以使用如下的常数 之一:常数描述vbext_pk_Get 指定一个返回属性值的过程。vbext_pk_Let 指定一个赋值给属性的过程。vbext_pk_Set 指定一个给对象设置引用的过程。vbext_pk_Proc 指定所

23、有过程除了Property 过程。说明ProcCountLines 属性返回在过程声明之前的所有空行及注释行的计数,并且,如果该过程是一段代码模块 的最后一个,那么此过程之后的所有空行也计入。ProcCountLines 属性示例以下示例使用ProcCountLines 属性,返回指定过程SetupTabs中代码的行数到特定的代码窗格。Debug.Print Application.VBE.CodePanes(3).CodeModule.ProcCountLines(SetupTabs,vbext_pk_Proc)ProcOfLine 属性返回特定的行所在的过程名。语法object.ProcO

24、fLine(line,prockind)As StringProcOfLine语法有三部分:部分描述object必需的。对象表达式,其值是“应用于”列表中的对象。line必需的。指定要检查行的long。prockind必需的。指定要定位的过程种类。Property 过程 在模块中可以有多种表示,必须指定要定位的过程种类。所有过程除了Property 过程(即,Sub 和 Function 过程)用 vbext_pk_Proc。可以给prockind 参数 使用如下的 常数之一:常数描述vbext_pk_Get指定一个返回属性值的过程。vbext_pk_Let指定一个赋值给属性的过程。vbext

25、_pk_Set指定一个给对象设置引用的过程。vbext_pk_Proc指定所有过程除了Property 过程。说明一个过程声明之前的空行或注释行属于该行,并且,如果该过程是一个代码模块 的最后一个过程,则该模块后面将有一行或多行空白行。ProcCountLines 属性返回在过程声明之前的所有空行及注释行的计数,并且,如果该过程是一段代码名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 8 页 -7 模块 的最后一个,那么紧接着该过程之后的空行或行也是。ProcOfLine 属性示例以下示例使用ProcOfLine属性返回在特定代码窗格中包含指定行号的过程名。Debug.Print

26、 Application.VBE.CodePanes(3).CodeModule.ProcOfLine(1270,vbext_pk_Proc)ProcStartLine 属性返回指定 过程的起始行。语法object.ProcStartLine(procname,prockind)As LongProcStartLine语法有三部分:部分描述Object必需的。对象表达式,其值是“应用于”列表的对象。Procname必需的。包含过程名称的字符串Prockind必需的。指定要定位的过程种类。Property 过程在模块 中可以有多种表示,必须指定要定位的过程种类。所有过程除了Property 过程

27、(即,Sub 和Function 过程)用vbext_pk_Proc。对 prockind 参数 可以使用如下的常数之一:常数描述Vbext_pk_Get指定一个返回属性值的过程。vbext_pk_Let指定一个赋值给属性的过程。vbext_pk_Set指定一个给对象设置引用的过程。vbext_pk_Proc指定所有过程除了Property 过程。说明一个过程在前面过程的End Sub 语句下开始第一行。如果该过程是第一个,那么此过程在通用声明部分之后开始。ProcStartLine 属性示例以下示例使用ProcStartLine 属性返回指定过程开始的行到指定的代码窗格。Debug.Prin

28、t Application.VBE.CodePanes(3).CodeModule.ProcStartLine(SetupTabs,vbext_pk_Proc)ReplaceLine 方法用特定的代码代替原代码。语法object.ReplaceLine(line,code)ReplaceLine 语法有以下几个部分:部分描述object必需的。一个 对象表达式,其值是“应用于”列表中的一个对象。Line必需的。一个Long 型数,用来指定所要代替的行。Code必需的。一个String 型数,用来指定要插入的代码。ReplaceLine 方法示例下列示例包含两个步骤。第一个步骤里的For-Nex

29、t循环使用InsertLines 方法将26 个英文字母排成 26 行文本(第一行从只有一个字母“A”,第二行有两个字母“ab”,其余依此类推,最后一行包含“A”到“z”共 26 个字母),插入CodePanes(1)。第二个步骤里的For next 循环使用ReplaceLine 方法将偶数行的内容变成该行的最后一个字母,奇数行不变。名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 8 页 -8 For I=1 to 26 Application.VBE.CodePanes(1).CodeModule.InsertLines I,Mid$(abcdefghijklmnopqrst

30、uvwxyz,1,I)Next I For I=1 to 13 Application.VBE.CodePanes(1).CodeModule.ReplaceLine 2*I,Mid$(abcdefghijklmnopqrstuvwxyz,I,1)Next I VBE 属性返回该VBE 对象的根,此属性为只读。说明所有的对象都有一个指向VBE 对象根的VBE 属性。VBE 属性示例下列示例使用VBE 以及Name 属性返回活动工程名称。Debug.Print Application.VBE.ActiveVBProject.Name 名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 8 页 -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术总结

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁