VBS能不能用vba inputbox用法?

3080人阅读
脚本的世界(2)
VBScript是无法实现inputbox多输入框出现在同一个dialog中的,但是如果使用IE的话,还是可以实现同样的效果的。
在网上找到了一个高人的范例,贴在下面
&textarea cols=&50& rows=&15& name=&code& class=&vb&&WScript.Echo &这个例子是模仿你贴出来的图片&
ss = multiInputBox(&实例&, &要搜索的文件或文件夹名为:^^M|包含文字:^^C&)
WScript.Echo &输入的文件名是:& & ss(0)
WScript.Echo &包含文字是:& & ss(1)
'**************************************************************
&VBS多重输入框&
(P)&(C) 2010 『据说是李先生』
返回值为一个数组,依次是各个输入值。
输入框标题
一个字符串,包含显示信息,具体格式为
提示信息^默认值^热键|提示信息^默认值^热键|...
&^& 和 &|& 做分隔符,只有提示信息是必需的
热键:一个字符,比如&M&,按住Alt,再按M就能快速定位到此条输入框
'***************************************************************
Function multiInputBox(title, content)
Dim htmlStr, temp, i, l, height, allInputs, input, contentArr(), result()
temp = Split(content, &|&)
ReDim contentArr(UBound(temp))
For i = 0 To UBound(temp)
contentArr(i) = Split(temp(i), &^&)
l = UBound(contentArr)
ReDim result(l)
height = l * 50 + 155
htmlStr = &&html&&head&&title&& & title & &&/title&&
htmlStr = htmlStr & &&meta http-equiv=content-type content=&&text/ charset=gb18030&&&&
htmlStr = htmlStr & &&mce:style type=&&text/css&&&&!--
*{font:12px/1.2em A} .input_box{width:250height:23padding-top:3border-color:#CCC;color:#333;background-color:#EEE;}
--&&/mce:style&&mce:style type=&&text/css&& mce_bogus=&1&&&!--
*{font:12px/1.2em A} .input_box{width:250height:23padding-top:3border-color:#CCC;color:#333;background-color:#EEE;}
--&&/mce:style&&style type=&&text/css&& mce_bogus=&1& mce_bogus=&1&&*{font:12px/1.2em A} .input_box{width:250height:23padding-top:3border-color:#CCC;color:#333;background-color:#EEE;}&/style&&
htmlStr = htmlStr & &&mce:script type=&&text/javascript&&&&!--
function cf(e){if(e.altKey)try{eval(String.fromCharCode(e.keyCode)).focus()}catch(e){};}
// --&&/mce:script&&
htmlStr = htmlStr & &&/head&&body scroll=&&no&& onkeyup=&&cf(event)&&&&
For i = 0 To l
temp = &&input onfocus=&&javascript:this.select();&& class=&&input_box&& type=&&text&&&
If UBound(contentArr(i)) & 0 Then temp = temp & &&& value=&&& & contentArr(i)(1)
If UBound(contentArr(i)) & 1 Then
temp = temp & &&& name=&&& & UCase(contentArr(i)(2))
temp = contentArr(i)(0) & &(&u&& & UCase(contentArr(i)(2)) & &&/u&)&br&& & temp
temp = contentArr(i)(0) & &&br&& & temp
temp = temp & &&& /&&br&&br&&
htmlStr = htmlStr &
htmlStr = htmlStr & &&br&&input type=&&hidden&& name=&&ching&& value=&&me&&/&&
htmlStr = htmlStr & &&input type=&&button&& value=&&确定&& onclick=&&javascript:ching.value='ching';&&/&&
htmlStr = htmlStr & &&input type=&&button&& value=&&取消&& onclick=&&javascript:ching.value='caofackri';&&/&&
htmlStr = htmlStr & &&/body&&/html&&
'本来想用UMU在点关闭的时候清空数据,但那样至少要分割成两个函数,因此改用错误忽略。
With WScript.CreateObject(&InternetExplorer.Application&, &UMU_&)
.menubar=0:.addressbar=0:.toolbar=0:.statusbar=0:.resizable=0
.width=300:.height=height:.navigate &about:blank&:.visible=1
.document.write htmlStr
On Error Resume Next
WScript.Sleep 100
If .document.body.all.ching.value = &ching& Then
Set allInputs = .document.getElementsByTagName(&input&)
For Each input In allInputs
If i & l Then Exit For
result(i) = input.value
If .document.body.all.ching.value = &caofackri& Then
If Err.Number && 0 Then Exit Do
multiInputBox = result
End Function&/textarea&
针对工作中的应用,对上述的代码进行了一定的修改,修改成了多个inputbox和checkbox框组合显示的情况
将代码粘在下面
&textarea cols=&50& rows=&15& name=&code& class=&vb&&
strSetting = multiInputBox(&Setting:&, &Execute1:|Execute2:|Input times of execute3:|Input times of execute4:&)
WScript.Echo strSetting(0)&strSetting(1)&strSetting(2)&strSetting(3)
If strSetting(0) = &execute& Then
MsgBox(&The first checkbox is checked&)
'***************************************************************
Function multiInputBox(title, content)
Dim htmlStr, temp, i, l, height, allInputs, input, contentArr, result()
contentArr = Split(content, &|&)
l = UBound(contentArr)
ReDim result(l)
contentArr(0)=contentArr(0)+&&&+&&&+&&&
height = l * 50 + 155 - 2 * 15 - 5
htmlStr = &&html&&head&&title&& & title & &&/title&&
htmlStr = htmlStr & &&meta http-equiv=content-type content=&&text/ charset=gb18030&&&&
htmlStr = htmlStr & &&mce:style type=&&text/css&&&&!--
*{font:12px/1.2em A} .input_box{width:250height:23padding-top:3border-color:#CCC;color:#333;background-color:#EEE;}
--&&/mce:style&&style type=&&text/css&& mce_bogus=&1&&*{font:12px/1.2em A} .input_box{width:250height:23padding-top:3border-color:#CCC;color:#333;background-color:#EEE;}&/style&&
htmlStr = htmlStr & &&mce:style type=&&text/css&&&&!--
*{font:12px/1.2em A} .check_box{width:30height:20padding-top:1border-color:#CCC;color:#333;background-color:#EEE;}
--&&/mce:style&&style type=&&text/css&& mce_bogus=&1&&*{font:12px/1.2em A} .check_box{width:30height:20padding-top:1border-color:#CCC;color:#333;background-color:#EEE;}&/style&&
htmlStr = htmlStr & &&mce:script type=&&text/javascript&&&&!--
function cf(e){if(e.altKey)try{eval(String.fromCharCode(e.keyCode)).focus()}catch(e){};}
// --&&/mce:script&&
htmlStr = htmlStr & &&mce:script type=&&text/javascript&&&&!--
function check(obj){for(i=0;i&document.all(obj).i++){document.all(obj)[i].value='on';if(document.all(obj)[i].checked) document.all(obj)[i].value='execute'}}
// --&&/mce:script&&
htmlStr = htmlStr & &&/head&&body scroll=&&no&& onkeyup=&&cf(event)&&&&
For i = 0 To l
If(i = 0 Or i =1) Then
temp = &&input onfocus=&&javascript:this.select();&& class=&&check_box&& name = &&checkboxes&& type=&&checkbox&& onclick=&&check('checkboxes')&&;&
temp = contentArr(i)
'& &&br&&
temp = temp & &&& /&&br&&br&&
htmlStr = htmlStr &
temp = &&input onfocus=&&javascript:this.select();&& class=&&input_box&& type=&&text&&&
temp = contentArr(i) & &&br&& & temp
temp = temp & &&& /&&br&&br&&
htmlStr = htmlStr &
htmlStr = htmlStr & &&br&&input type=&&hidden&& name=&&ching&& value=&&me&&/&&
htmlStr = htmlStr & &&input type=&&button&& value=&&OK&& onclick=&&javascript:ching.value='OK';&&/&&
htmlStr = htmlStr & &&input type=&&button&& value=&&Cancel&& onclick=&&javascript:ching.value='Cancel';&&/&&
htmlStr = htmlStr & &&/body&&/html&&
With WScript.CreateObject(&InternetExplorer.Application&, &UMU_&)
.menubar=0:.addressbar=0:.toolbar=0:.statusbar=0:.resizable=0
.width=300:.height=height:.navigate &about:blank&:.visible=1
.document.write htmlStr
On Error Resume Next
WScript.Sleep 100
If .document.body.all.ching.value = &OK& Then
Set allInputs = .document.getElementsByTagName(&input&)
For Each input In allInputs
If i & l Then Exit For
result(i) = input.value
If .document.body.all.ching.value = &Cancel& Then
If Err.Number && 0 Then Exit Do
multiInputBox = result
End Function&/textarea&&
其实也可以实现类似单选框,多选框,文本框等的组合,在以上的基础上进行改进就可以了~~
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:61715次
排名:千里之外
原创:19篇
评论:13条
(11)(4)(1)(3)【求教、】关于inputbox_vbs吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:10,338贴子:
【求教、】关于inputbox收藏
问下:消息框可以用popup控制时间,像inputbox这样的文本框如何实现popup那样控制时间?到底可不可以啊...求方法·求代码
2017年在职研究生有没有取消,具体的政策有什么变化
不可以。。。
不可以……
Set ws = CreateObject("WScript.Shell")Set fso = CreateObject("Scripting.FileSystemObject")Set fs = fso.CreateTextFile("abc.vbs")fs.WriteLine("Set ws = WScript.CreateObject(""WScript.Shell"")")fs.WriteLine("WScript.Sleep&#x")fs.WriteLine("ws.run ""taskkill /f /im WScript.exe"",hide")Set fs = Nothingws.run ".\abc.vbs"a = Inputbox("呵呵呵","消息框在5秒后关闭")Set fs = fso.CreateTextFile("adada")fs.WriteLine(a)
唉,果然如此……
对了,sendkeys啊!我怎么就没想到!
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或VBScript InputBox 函数
VBScript InputBox 函数
定义和用法
InputBox 函数可显示一个对话框,用户可在其中输入文本并/或点击一个按钮。如果用户点击点击确认按钮或按键盘上的回车键, 则 InputBox 函数返回文本框中的文本。如果用户点击取消按钮,函数返回一个空字符串(&&)。
注释:若同时规定helpfile 和 context 参数,则会向对话框添加一个帮助按钮。
提示:请参阅 MsgBox 函数。
InputBox(prompt[,title][,default][,xpos][,ypos][,helpfile,context])
必需的。现实在对话框中的消息。prompt 的最大长度大约是 1024 个字符,这取决于所使用的字符的宽度。如果 prompt 中包含多个行,则可在各行之间用回车符 (Chr(13))、换行符 (Chr(10)) 或回车换行符的组合 (Chr(13) & Chr(10)) 以分隔各行。
可选的。显示在对话框标题栏中的字符串表达式。如果省略 title,则应用程序的名称将显示在标题栏中。
可选的。显示在文本框中的字符串表达式,在没有其它输入时作为默认的响应值。如果省略 default,则文本框为空。
可选的。数值表达式,用于指定对话框的左边缘与屏幕左边缘的水平距离(单位为缇)。如果省略 xpos,则对话框会在水平方向居中。
可选的。数值表达式,用于指定对话框的上边缘与屏幕上边缘的垂直距离(单位为缇)。如果省略 ypos,则对话框显示在屏幕垂直方向距下边缘大约三分之一处。
可选的。字符串表达式,用于标识为对话框提供上下文相关帮助的帮助文件。如果已提供 helpfile,则必须提供 context。
可选的。数值表达式,用于标识由帮助文件的作者指定给某个帮助主题的上下文编号。如果已提供 context,则必须提供 helpfile。
fname=InputBox(&Enter your name:&)
MsgBox(&Your name is & & fname)

我要回帖

更多关于 inputbox用法举例 的文章

 

随机推荐