使用MsgBox函数精品文档13页.docx
- 文档编号:12549070
- 上传时间:2023-04-20
- 格式:DOCX
- 页数:23
- 大小:27.39KB
使用MsgBox函数精品文档13页.docx
《使用MsgBox函数精品文档13页.docx》由会员分享,可在线阅读,更多相关《使用MsgBox函数精品文档13页.docx(23页珍藏版)》请在冰豆网上搜索。
使用MsgBox函数精品文档13页
使用MsgBox函数
唐宋或更早之前,针对“经学”“律学”“算学”和“书学”各科目,其相应传授者称为“博士”,这与当今“博士”含义已经相去甚远。
而对那些特别讲授“武事”或讲解“经籍”者,又称“讲师”。
“教授”和“助教”均原为学官称谓。
前者始于宋,乃“宗学”“律学”“医学”“武学”等科目的讲授者;而后者则于西晋武帝时代即已设立了,主要协助国子、博士培养生徒。
“助教”在古代不仅要作入流的学问,其教书育人的职责也十分明晰。
唐代国子学、太学等所设之“助教”一席,也是当朝打眼的学官。
至明清两代,只设国子监(国子学)一科的“助教”,其身价不谓显赫,也称得上朝廷要员。
至此,无论是“博士”“讲师”,还是“教授”“助教”,其今日教师应具有的基本概念都具有了。
你目前使用的MsgBox函数局限于给用户用一个简单的,一个按钮的对话框显示信息。
你点击确定按钮或者回车来关闭该信息框。
要创建一个简单的信息框,只要在MsgBox函数名称后面带上一个用引号包括起来的文本就可以了。
换句话说,要显示信息“过程已完成”,你应该准备下列语句:
MsgBox"过程已完成"‘(注意,英文状态的引号)
死记硬背是一种传统的教学方式,在我国有悠久的历史。
但随着素质教育的开展,死记硬背被作为一种僵化的、阻碍学生能力发展的教学方式,渐渐为人们所摒弃;而另一方面,老师们又为提高学生的语文素养煞费苦心。
其实,只要应用得当,“死记硬背”与提高学生素质并不矛盾。
相反,它恰是提高学生语文水平的重要前提和基础。
你可以将它输入立即窗口,快速地测试上面的指令,当你输入完这条指令并且回车后,VB就显示如,图4-5的信息框。
图4-5将文本作为MsgBox函数的参数,来给用户显示信息
课本、报刊杂志中的成语、名言警句等俯首皆是,但学生写作文运用到文章中的甚少,即使运用也很难做到恰如其分。
为什么?
还是没有彻底“记死”的缘故。
要解决这个问题,方法很简单,每天花3-5分钟左右的时间记一条成语、一则名言警句即可。
可以写在后黑板的“积累专栏”上每日一换,可以在每天课前的3分钟让学生轮流讲解,也可让学生个人搜集,每天往笔记本上抄写,教师定期检查等等。
这样,一年就可记300多条成语、300多则名言警句,日积月累,终究会成为一笔不小的财富。
这些成语典故“贮藏”在学生脑中,自然会出口成章,写作时便会随心所欲地“提取”出来,使文章增色添辉。
MsgBox函数允许你使用其它参数,使你可能决定可用的按钮数目,或者将默认的信息框的标题(MicrosoftExcel)改为你自己的标题。
也可以设置你自己的帮助主题。
MsgBox的语法如下:
MsgBox(prompt[,buttons][,title],[,helpfile,context]),注意,MsgBox函数有五个参数,只有第一个,Prompt(提示),是必须的;这些列在方括号里面的参数都是可选的。
当你在提示参数输入一个非常长的文本时,VB决定如何断句,使文本适合信息框
大小。
我们在立即窗口里来做些练习,看不同的文本格式技巧:
1.在立即窗口输入以下指令,确保在一行里输入整个文本,回车
MsgBox"Alldone.Nowopen""Chap04.xls""andplaceanemptydiskinthediskettedrive.Thefollowingprocedurewillcopythisfiletothedisk."一旦回车,VB显示信息框,如图4-6图4-6如果你设置一下文本格式,长信息看上去将会更吸引人如果你遇到编译错误,可以点击确定,然后确定文件名用双引号括起来——““Chap04.xls””。
当你的信息文本特别长时,你可以使用VBA函数Chr将它分割为好几行。
Chr函数需要你跟参数,这个参数是0到255之间的数字,它返回这个数字代表的字符。
例如Chr(13)返回的是回车(这和按下回车键相同),以及Chr(10)返回换行字符(这在文本行之间添加空行很有用)。
2.将上面的指令修改为下述方式:
MsgBox"Alldone."&Chr(13)&"Nowopen""Chap04.xls""andplace"&Chr(13)&"anemptydiskinthediskettedrive."&Chr(13)&"Thefollowingprocedurewillcopythisfiletothedisk."
图4-7通过使用Chr(13)可以将长文本分割成几行
你必须将每段文本片断用引号括起来,内嵌在括号里面的文本(显示状态)需要再用一对括号来括起来,例如““Chap04.xls””。
Chr(13)函数指明你希望开始新的一行的地方。
字符串的连接字符(&)用来返回连接字符串的字符。
在一行输入及其长的文本的时候,很容易失误。
回想一下,VB有一个专门的线连续字符(下划线_)帮你将长VBA语句分割为几行,不幸的是,这个线连续符不能在立即窗口使用。
3.在工程MyFunctions(Chap04.xls)里添加一个新模块并命名为Sample6
4.激活模块Sample6并且输入如下所示的子程序MyMessage,确保在每个线连续符前面加个空格:
SubMyMessage()
MsgBox"Alldone."&Chr(13)_
91
&"Nowopen""Chap04.xls""andplace"&Chr(13)_
&"anemptydiskinthediskettedrive."&Chr(13)_
&"Thefollowingprocedurewillcopythisfiletothedisk."
EndSub
你运行过程MyMessage时,VB显示如图4-7一样的信息。
正如你看到的,在几行输入的文本更具可读性,而且代码更容易维护。
你可以在文本行之间添加一下空白行,来增加信息的可读性。
使用Chr(13)或twoChr(10)函数就可以做到,如下列步骤所述。
5.输入下面的MyMessage2过程:
SubMyMessage2()
MsgBox"Alldone."&Chr(10)&Chr(10)_
&"Nowopen""Chap04.xls""andplace"&Chr(13)_
&"anemptydiskinthediskettedrive."&Chr(13)&Chr(13)_
&"Thefollowingprocedurewillcopythisfiletothedisk."
EndSub
图4-8显示了MyMessage2过程产生的信息框。
图4-8你可以通过在文本行之间添加空行增加信息的可读性既然你已经掌握了文本的格式技术,那么我们就来仔细地看看MsgBox函数的下一个参数吧。
尽管按钮参数时可选的,但是它的使用还是很频繁的。
这个按钮参数明确多少个按钮,并且是什么样的按钮你想要出现了信息框上,这个参数可以是个常量(参见表4-1),也可以是个数字。
如果你忽略这个参数,结果辛苦只会有一个“确定”按钮,正如你在前面的例子里看到的那样。
表4-1MsgBox按钮参数的设置
常量
按钮设置
vbOKOnly
vbOKCancel
vbAbortRetryIgnore
vbYesNoCancel
vbYesNo
vbRetryCancel
图标设置
vbCritical
vbQuestion
vbExclamation
vbInformation
默认按钮设置
vbDefaultButton1
vbDefaultButton2
vbDefaultButton3
vbDefaultButton4
信息框形式
vbApplicationModal
值
0
1
2
3
4
5
16
32
48
64
0
256
512
768
0
描述
仅显示确定按钮,这是默认值
显示确定和取消按钮
显示终止,重试和忽略按钮
显示是,否和取消按钮
显示是和否按钮
显示重试和取消按钮
显示重要信息图标
显示问号图标
显示警告信息图标
显示信息图标
第一个按钮是缺省值
第二个按钮是缺省值
第三个按钮是缺省值
第四个按钮是缺省值
应用程序强制返回;应用程序一直被挂起,直到
vbSystemModal
MsgBox显示的其它设置
vbMsgBoxHelpButton
vbMsgBoxSetForeground
vbMsgBoxRight
vbMsgBoxRtlReading
4096
16384
65536
524288
1048576
用户对消息框作出响应才继续工作。
系统强制返回;全部应用程序都被挂起,直到用
户对消息框作出响应才继续工作。
将Help按钮添加到消息框
指定消息框窗口作为前景窗口文本为右对齐
指定文本应为在希伯来和阿拉伯语系统中的从右到左显示
你什么时候应该使用按钮参数呢?
假设你要用户对一个问题回到“是”或“否”,你的信息框就需要两个按钮,当信息框有一个以上的按钮时,就需要将其中一个设置为缺省值,当用户回车的时候,这个默认的按钮就会自动地被选上。
因为,你可以显示各种各样的信息(重要,警告,信息),所以,你需要通过按钮参数设置图形代表(图标)来指明信息的重要性。
除了信息类型之外,按钮参数还可以设置是否用户必须先关闭该信息框才能切换到另外的应用程序。
很多情况下,用户需要在对信息框的问题做出反应之前,切换到另外的程序或者进行另外的操作。
如果这个信息框是应用程序模式(vbApplicationModal)的话,用户必须先关闭该信息框后才能继续使用你的应用程序另一方面,如果你想要在用户对信息框响应之前,将所有应用程序挂起,那么你必须在按钮参数里加上系统强制返回设置(vbSystemModal)。
按钮参数的设置分为五组:
按钮设置,图标设置,默认按钮设置,信息框形式和其它的MsgBox显示设置(参见图4-1)。
每组设置里面只能选一个加入按钮参数里面。
你可以将每种需要的设置加和起来,来设置按钮参数,例如,要显示一个带两个按钮(“是”和“否”),问号图标以及将“否”按钮设置为缺省值的信息框,你可以在表4-1里查找相应的值并且加和起来,你应该得到292(4+32+256)。
你可以在立即窗口里面输入下列代码,快速查看使用该计算的按钮参数的信息框:
MsgBox"Doyouwanttoproceed?
",292
下面显示的就是信息框结果。
当你直接使用加和起来的值作为参数时,你的程序可读性就不高了,因为没有参考索引表格供你检查292背后的意思。
要改善你信息框函数的可读性,最好使用常量,而不要使用它们的值,例如,在立即窗口输入下列修改后的语句:
MsgBox"Doyouwanttoproceed?
",vbYesNo+vbQuestion+vbDefaultButton2
上面的语句得到如图4-9所示的相同结果。
图4-9你可以使用可选的按钮参数来确定信息框上的按钮个数,下面的例子示范如何在VB过程里使用按钮参数:
1.在工程MyFunctions(Chap04.xls)里添加一新模块,并命名为Sample7
2.激活Sample7模块,并且输入如下子程序MsgYesNo:
SubMsgYesNo()
DimquestionAsString
DimmyButtonsAsInteger
question="是否要打开一个新工作簿?
"
myButtons=vbYesNo+vbQuestion+vbDefaultButton2
MsgBoxquestion,myButtons
EndSub
在上面的子程序里,变量question储存了你的信息文本,而按钮参数的设置则储存于变量
myButtons。
除了使用常量名称之外,你还可以使用它们的值,例如下面的:
myButtons=4+32+256,但是,明确了按钮常数的常量名称的话,你可以使你的程序对你自己以及将来可能要使用该程序的人来说更容易理解。
变量question和myButtons用作MsgBox函数的参数。
运行该程序后,你将看到如图4-9所示的结果。
注意,现在按钮“否”是被选中的,它是该对话框的默认按钮,如果你按下回车,Excel将该信息框从屏幕上移除,因为MsgBox函数后面没有任何指令,所以,不会发生其它操作。
将默认按钮换成vbDefaultButton1设置,可以更改默认按钮。
MsgBox函数的第三个参数是标题,虽然这也是个可选参数,但是它很方便,因为当你忽略它们(默认为MicrosoftExcel)时,就不能给程序提供可视提示。
你可以使用这个参数,将标题栏设置为你想要的任何文字。
假设你要过程MsgYesNo显示标题为“新工作簿”,下面的过程MsgYesNo2示范如何使用标题参数:
SubMsgYesNo2()
DimquestionAsString
DimmyButtonsAsInteger
DimmyTitleAsString
question="Doyouwanttoopenanewworkbook?
"
myButtons=vbYesNo+vbQuestion+vbDefaultButton2
myTitle="Newworkbook"
MsgBoxquestion,myButtons,myTitle
EndSub
标题参数文本储存于变量myTitle。
如果你没有明确标题参数的内容,VB将默认显示为“MicrosoftExcel”。
注意,参数是基于MsgBox函数决定的顺序列出的,如果你要按你自己的顺序列出这些参数的话,你就必须将参数名称一起写出,例如:
MsgBoxtitle:
=myTitle,prompt:
=question,buttons:
=myButtons
后面两个参数——帮助文件(helpfile)和上下文(context)——经常为那些对Windows环境下的帮助文件很熟悉的程序员使用。
参数helpfile指明某个包含你要显示给用户的附加信息的具体帮助文件的名称,当你明确了这个参数后,Help按钮就会在信息框上显示出来。
当你使用helpfile参数时,你同时也使用context参数。
这个参数表明在帮助文件里你要显示的那个帮助主题。
假设Help.hlp是你创建的帮助文件,55是你要使用的帮助主题,你可以按照如下指令来显示这些信息于信息框上:
MsgBoxtitle:
=mytitle,_
prompt:
=question_
buttons:
=mybuttons_
helpFile:
="HelpX.hlp",_
context:
=55
上面只是一条VBA语句,使用连接符打断为好几行。
12.MsgBox函数的运行值
当你显示只有一个按钮的信息框时,可以点击确定按钮或者回车键将信息框从屏幕上移除,然而,当信息框有两个或以上的按钮时,你的程序需要知道按的是哪个按钮。
你可以将信息框结果储存在一个变量上来实现。
表4-2显示了MsgBox函数返回值。
表4-2MsgBox函数返回值选择的按钮
OK(确定)
Cancel(取消)
Abort(终止)
Retry(重试)
Ignore(忽略)
Yes(是)
No(否)
常数
VbOK
vbCancel
vbAbort
vbRetry
vbIgnore
vbYes
vbNo
值
1
2
3
4
5
6
7
MsgYesNo3过程是MsgYesNo2过程修改后的版本,示范如何确定用户按下的是哪个按钮:
SubMsgYesNo3()
DimquestionAsString
DimmyButtonsAsInteger
DimmyTitleAsString
DimmyChoiceAsInteger
question="Doyouwanttoopenanewworkbook?
"
myButtons=vbYesNo+vbQuestion+vbDefaultButton2
myTitle="Newworkbook"
myChoice=MsgBox(question,myButtons,myTitle)
MsgBoxmyChoice
EndSub
在上面的过程里,你将MsgBox函数的结果赋给变量myChoice。
注意,现在,MsgBox函数的参数列在括号里面:
myChoice=MsgBox(question,myButtons,myTitle)
当你运行MsgYesNo3时,出现带有两个按钮的信息框,当你点击“是”时,MsgBoxmyChoice将显示数字6;当点击“否”则得到数字7。
你将在第五章里面学习如果让程序根据按钮的选择进行不同的任务。
技巧4-11MsgBox函数——使用还是不使用括号?
当你需要使用MsgBox函数返回的结果时,需要使用括号将该函数的参数包括起来。
不使用括号,意味着你告诉VB你将忽略该函数的结果。
当MsgBox函数包含两个或以上的按钮时,你很可能想要使用该函数的结果。
13.使用InputBox函数
InputBox函数显示一个信息提示用户输入数据,这个对话框有两个按钮——“确定”和“取消”,当你点击确定时,InputBox函数返回用户输入在信息框里的信息;当你点击取消时,函数则返回空字符串(””)。
InputBox函数的语法显示如下:
InputBox(prompt[,title][,default][,xpos][,ypos]_[,helpfile,context])
第一个参数,prompt,是你想要显示在对话框上的信息,你可以使用函数Chr(13)或Chr(10)将长文本打断为几行(参见本章中使用MsgBox函数的例子)。
剩下所有的参数都是可选的。
第二个参数,title,让你改变对话框的默认标题,默认的标题是MictosoftExcel。
InputBox函数的第三个参数,default,让你在文本框里显示一个默认值,如果你忽略这个参数的话,显示的将是空白编辑框。
接下来的两个参数,xpos和ypos,允许你设置该对话框在屏幕上出现的位置,如果你忽略这两个参数,对话框就会出现了当前窗口的中央,xpos参数决定对话框在屏幕上从左起的水平位置,忽略它时,对话框显示在水平中央,而ypos参数决定对话框在屏幕从上而下的竖直位置,忽略它,对话框就在竖直大约三分之一的位置。
xpos和ypos都使用一个叫twips的专门单位衡量,1twip大约等于0.0007英寸。
最后两个参数,helpfile和context,和在本章前期讨论的MsgBox函数相应的参数使用方法一样。
现在你知道了InputBox参数的意义了,我们来看看这个函数的使用示例:
1.在MyFunctions(Chap04.xls)工程里添加一个新模块,重命名为Sample8
2.激活Sample8模块,并且输入下列子程序:
SubInformant()
InputBoxprompt:
="Enteryourplaceofbirth:
"&Chr(13)_
&"(e.g.,Boston,GreatFalls,etc.)"
EndSub
上面的过程显示一个带两个按钮的对话框,输入提示显示在两行里。
象MsgBox函数一样,如果你想要使用用户输入的数据,那么你应该使用一个变量来储存该对话框结果。
下面显示的子程序
Informant2将InputBox函数的结果赋值给变量town:
图4-10Informant子程序产生的对话框
SubInformant2()
DimmyPromptAsString
DimtownAsString
ConstmyTitle="Enterdata"
myPrompt="Enteryourplaceofbirth:
"&Chr(13)_
&"(e.g.,Boston,GreatFalls,etc.)"
town=InputBox(myPrompt,myTitle)
MsgBox"Youwerebornin"&town&".",,"Yourresponse"
EndSub
注意,这次,InputBox函数的参数列在了括号中间。
如果你需要在稍后的程序中需要使用InputBox函数的结果,那么括号是必须的。
Informant2子程序使用常数来确定显示在对话框标题上的文本。
因为,这个值在过程执行过程中从始至终都是保持不变的,所以,可以将对话框的标题声明为一个常量,然而,如果你愿意,你也可以使用一变量。
当你运行使用了InputBox的过程时,使用该函数的对话框总是出现在屏幕的同一位置,你可以按前面解释的那样,提供xpos和ypos参数来改变对话框的位置。
3.修改过程Informant2中的InputBox函数,让对话框显示在屏幕的左上角,例如:
town=InputBox(myPrompt,myTitle,,1,200)注意,参数myTitle后面紧跟两个逗号,第二个逗号是忽略掉的默认值参数。
下面两个参数决定对话框的水平和竖直位置。
如果你忽略了参数myTitle后面的第二个逗号,VB将会使用数字1作为默认值。
如果你使用了参数名称的话,(例如,prompt:
=myPrompt,title:
=myTitle,xpos:
=1,
ypos:
=200),你就不必记住在每个忽略了参数的地方加逗号了。
如果你输入了一个数字,而不是一个城镇的名称,后果会怎样?
因为,用户经常会在对话框里输入错误的数据,所以,你的程序必须验证用户输入的数据是否可以在将来的数据操作里使用。
InputBox函数本身并没有提供验证数据的工具,要验证用户的输入,你必须使用其它的VBA指令,这将在下章里讲述。
14.数据类型转变
InputBox函数的结果总是字符串,如果用户输入的是个数字,用户输入的字符串值必须转换成为数字值之后,才能用于你程序里的数学计算。
VB转换数据类型轻而易举,不过,在早期的Excel版本里,这是不可能的。
1.激活模块Sample8,并输入以下过程AddTwoNums:
SubAddTwoNums()
DimmyPromptAsString
Dimvalue1AsString
ConstmyTitle="Enterdata"
DimmySumAsSingle
myPrompt="Enteranumber:
"
value1=InputBox(myPrompt,myTitle,0)
mySum=value1+2
MsgBoxmySum&"("&value1&"+2)"
EndSub
96
图4-11要给用户提示数据的确切类型,你可以在编辑框里提供一个默认值上面的程序显示如图4-11所示的对话框。
注意,这个对话框使用了两个专门的功能,InputBox函数的可选参数标题和默认值。
该对话框显示了有常量myTitle确定的文本字符串作为标题,而不是默认的“MicrosoftExcel”。
在编辑框
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 使用 MsgBox 函数 精品 文档 13