如何用VB运行过程中动态执行代码?
如窗体上有个文本框,在文本框中输入“msgbox"HelloWorld!"”就会出现提示框。等,只需实现简单的、最基本的命令即可。其中文本框中的代码可用VB语言书写,然后...
如窗体上有个文本框,在文本框中输入“msgbox"Hello World!" ” 就会出现提示框。等,只需实现简单的、最基本的命令即可。
其中文本框中的代码可用VB语言书写,然后用我编的程序去执行它。请高手教我如何实现。 展开
其中文本框中的代码可用VB语言书写,然后用我编的程序去执行它。请高手教我如何实现。 展开
3个回答
展开全部
可以用VBScript和CallByName函数结合
比如说你要执行msgbox "Hello World!" 这样的语句就这样
Private Sub Command1_Click()
Set vbs = CreateObject("MSScriptControl.ScriptControl")
vbs.Language = "VBScript"
vbs.ExecuteStatement (Text1.Text)
End Sub
假如你要执行“Text1.top=0”的话就用CallByName。
要说明的是:
VB6.0里面没有CObj函数,所以不能直接用这个函数把字符串转换成对象(object);
既然你要执行Text1.top=0,那么你的窗体上必须得有一个name属性为Text1的控件,我们可以通过遍历窗体控件的方法得到这个得到这个控件。这里给出一个demo
Option Explicit
Private Sub Command1_Click()
Dim obj As Object
Dim ObjName As String
Dim ObjProperty As String
Dim ObjValue As Variant
'获取控件名,控件属性,控件值
ObjName = Split(Text1.Text, ".")(0)
ObjProperty = Split(Split(Text1.Text, ".")(1), "=")(0)
ObjValue = Split(Split(Text1.Text, ".")(1), "=")(1)
'遍历窗体控件,然后运用控件的属性
'VbLet——设置属性
For Each obj In Me.Controls
If obj.Name = ObjName Then
CallByName obj, ObjProperty, VbLet, ObjValue
Exit For
End If
Next
End Sub
效果(执行前):
效果(执行后):
效果(执行前):
效果(执行后):
至于应该用哪个,你可以简单做下判断,比如找下要执行的字符串里面有没有“.”等等,,,自己变通下
展开全部
呵呵,我以前也遇到过这个问题,找了很久,终于找到了,跟你分享一下吧:
在窗体上添加一个按钮command1,和一个文本框text1。输入代码:
Private Sub Command1_Click()
Set vbs = CreateObject("MSScriptControl.ScriptControl")
vbs.Language = "VBScript"
vbs.ExecuteStatement (Text1.Text)
End Sub
在文本框中输入要执行的代码,如楼主要求的
msgbox"Hello World!"
点击command1,看看执行效果。
在窗体上添加一个按钮command1,和一个文本框text1。输入代码:
Private Sub Command1_Click()
Set vbs = CreateObject("MSScriptControl.ScriptControl")
vbs.Language = "VBScript"
vbs.ExecuteStatement (Text1.Text)
End Sub
在文本框中输入要执行的代码,如楼主要求的
msgbox"Hello World!"
点击command1,看看执行效果。
追问
但是我在文本框中输入“Text1.top=0”时却显示“缺少对象"Text1"”
追答
这个借用的是vbs脚本的execute功能,vbs不支持窗体、控件,所以无法对窗体或控件进行操作。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你提的这个不是个简单的问题,如你所说,如果只是要出个提示框那好做。但要实现VB的所有功能指令很难——那得另行编造一个VB了,你说的这种需求其实就是VB的编译原理。
如果要实现简单的演示功能,首先要有一个数据库,将VB的基本指令的关键字都录入,当你输入一条指令后,使用字符串查找功能看是哪一个指令,再检查关键字是否齐全,然后将关键字和参数拆分,再将参数传递给程序内已写好的模块内调用相应的函数或指令。
如果要实现简单的演示功能,首先要有一个数据库,将VB的基本指令的关键字都录入,当你输入一条指令后,使用字符串查找功能看是哪一个指令,再检查关键字是否齐全,然后将关键字和参数拆分,再将参数传递给程序内已写好的模块内调用相应的函数或指令。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询