有时我可能需要不使用VB的IDE,也不需要建立VB工程而单独执行一段VB代码,比如在我的程序中计算一个表达式,预览一下某个VB内部的函数,而用户想要执行的代码又是不确定的,这样很难用程序控制,因此我们可以直接调用VBIDE的解释功能,随便用户输入什么,只要是有效的就可以正常运行,以上只是我的想法,技术是这个,但是具体使用这么用那就看使用者的意图了.
其实实现很简单,只需要调用一个API
Private Declare Function EbExecuteLine Lib "vba6.dll" (ByVal pStringToExec As Long, ByVal Unknownn1 As Long, ByVal Unknownn2 As Long, ByVal fCheckOnly As Long) As Long
好条件已经充足,下面就看我我们怎么使用了.
Public Function ExecuteLine(sCode As String, Optional fCheckOnly As Boolean) As Boolean
ExecuteLine = EbExecuteLine(StrPtr(sCode), 0&, 0&, Abs(fCheckOnly)) = 0
End Function
使用时这样调用一下,
Private Sub Command1_Click()
Dim res As Boolean
res = ExecuteLine(Text1.Text)
End Sub
在Text1中输入一个例句如:MsgBox "^_^,这是一句VB语句",,"OK"
执行一下看看效果如何,很方便吧
这里没有任何高深的技术,虽然是几个API但有的时候作用可不小啊!
^_^