Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access数据库-教程

VBA代码编程方法详解(十)

时 间:2010-10-30 13:17:45
作 者:江羽   ID:3967  城市:南昌
摘 要:VBA代码编程方法详解(第十部分)
正 文:

6.8 代码模块中添加代码操作

6.8.1 向指定部件添加一行代码

'过程功能:向指定部件或模块添加代码

'输入参数:strNewCode(字符串)添加的代码字符串

'          VBCompNameOrIndex(Variant)可选参数,部件名或索引

Sub AddNewCodeInComps (ByVal strNewCode As String, _

                      Optional VBCompNameOrIndex As Variant)

   Dim VBProj          As VBProject

   Dim VBCodeModule   As CodeModule

  

   Set VBProj = VBE.ActiveVBProject

  

   '如不指定部件或模块,及为当前窗格部件代码模块

   If VBCompNameOrIndex = "" Then

      Set VBCodeModule = VBE.ActiveCodePane.CodeModule

   Else

      Set VBCodeModule = VBProj.VBComponents(VBCompNameOrIndex).CodeModule

   End If

   '向模块中添加新代码

   VBCodeModule.AddFromString strNewCode

End Sub

 

 

'*********************************************************

'调用示例:向指定部件“模块1,添加代码

Dim strNewCode  As String

strNewCode = "Sub Test ()" & vbLf & _

           Space(4) & "Msgbox " & Chr(34) & "这是添加的代码!" & Chr(34) & vbLf & _

          "End Sub"

Call AddNewCodeInComps(strNewCode, "模块1")

 

 

6.9 代码模块中插入代码操作

6.9.1 在某个部件指定行插入一行或多行代码过程

'过程功能:在代码模块的某个指定行,插入一行或多行的代码

'输入参数:strNewCode(字符串)添加的代码字符串

'          CodeLines(长整型)代码行

'          VBCompNameOrIndex(Variant)部件名或索引

Sub InsertCodeInComps (ByVal strNewCode As String, _

                  Optional CodeLines As Long = 1, _

                  Optional VBCompNameOrIndex As Variant)

   Dim VBProj           As VBProject

   Dim VBCodeModule    As CodeModule

  

   Set VBProj = VBE.ActiveVBProject

  

   '如不指定部件代码模块,及为当前窗格部件代码模块

   If VBCompNameOrIndex = "" Then

      Set VBCodeModule = VBE.ActiveCodePane.CodeModule

   Else

      Set VBCodeModule = VBProj.VBComponents(VBCompNameOrIndex).CodeModule

   End If

 

 '向模块中指定行插入或添加新代码

   VBCodeModule.InsertLines CodeLines, strNewCode

End Sub

 

 

'*********************************************************

'调用示例:向指定部件“模块1,第一第二行分别插入指定代码

Dim strNewCode1, strNewCode2  As String

strNewCode1 =" Option Compare Database"

strNewCode2 ="Option Explicit"

 

Call InsertCodeInComps (strNewCode1, , "模块1")

Call InsertCodeInComps (strNewCode2, 2, "模块1")

 

 

6.10 代码模块中替换代码操作

6.10.1 替换指定行原代码

'过程功能:用新代码替换指定行原代码

'输入参数:strNewCode(字符串)欲替换写入的新代码字符串

'          CodeLines(长整型)欲替换的代码行

'          VBCompNameOrIndex(Variant)部件名或索引

Sub ReplaceLineCodeInComps (ByVal strNewCode As String, _

                  Optional CodeLines As Long = 1, _

                  Optional VBCompNameOrIndex As Variant)

   Dim VBProj           As VBProject

   Dim VBCodeModule    As CodeModule

  

   Set VBProj = VBE.ActiveVBProject

  

   '如不指定部件或模块,及为当前窗格部件代码模块

   If VBCompNameOrIndex = "" Then

      Set VBCodeModule = VBE.ActiveCodePane.CodeModule

   Else

      Set VBCodeModule = VBProj.VBComponents (VBCompNameOrIndex).CodeModule

   End If

   '替换模块中指定行为新代码

   VBCodeModule.ReplaceLine CodeLines, strNewCode

End Sub

 

 

'*********************************************************

'调用示例:向指定部件“模块1,替换原第五行代码为新代码

Dim strNewCode  As String

strNewCode = Space(4) & "Msgbox " & Chr(34) & "这是替换的代码!"

                

Call ReplaceLineCodeInComps(strNewCode, 5, "模块1")

 

 

 

   上一页 下一页

 



Access软件网官方交流QQ群 (群号:483923997)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助