VBA代码编程方法详解(十)-江羽
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> Access数据库-教程


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

发表时间:2010/10/30 13:17:45 评论(0) 浏览(7868)  评论 | 加入收藏 | 复制
   
摘 要: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群(群号:198465573)
 
 相关文章
VBA代码编程方法详解(八)  【江羽坛  2010/10/29】
VBA代码编程方法详解(九)  【江羽  2010/10/30】
VBA代码编程方法详解(十一)  【江羽  2010/10/30】
VBA代码编程方法详解(十二)  【江羽  2010/10/31】
VBA代码编程方法详解实例(源码)  【江羽  2010/10/31】
常见问答
技术分类
相关资源
文章搜索
关于作者

江羽

文章分类

文章存档

友情链接