12利用VBA增强窗体的交互性.docx
- 文档编号:29903355
- 上传时间:2023-08-03
- 格式:DOCX
- 页数:34
- 大小:147.20KB
12利用VBA增强窗体的交互性.docx
《12利用VBA增强窗体的交互性.docx》由会员分享,可在线阅读,更多相关《12利用VBA增强窗体的交互性.docx(34页珍藏版)》请在冰豆网上搜索。
12利用VBA增强窗体的交互性
第十二章利用VBA增强窗体的交互性
能够利用对话框和窗体使Word文档加倍人性化,增强文档的交互性。
能够利用Word内置的对话框,也能够自概念对话框。
也能够在窗体中增加反映用户的如进行鼠标单击或按下键盘等事件的代码,以响应用户的各类操作。
12.1利用对话框
对话框有Word内置的对话框,用户也能够自概念需要的对话框。
12.1.1显示Word内置对话框
用VisualBasic可显示一个内置对话框以获取用户输入,或操纵Word.Dialog对象的Show方式显示和处置任一来自Word内置对话框的操作。
通过指定WdWordDialog常量的Dialogs属性可访问某一Word内置对话框。
例如,以下宏显示【打开】对话框。
Dialogs(wdDialogFileOpen).Show
选定文件并单击【确信】按钮后,文件被打开(该操作被执行)。
下例显示打印对话框。
Dialogs(wdDialogFilePrint).Show
设置DefaultTab属性能够访问Word对话框的特定制表符位置。
下例显示【格式】菜单下【边框和底纹】对话框中的页边框项。
WithDialogs(wdDialogFormatBordersAndShading)
.DefaultTab=wdDialogFormatBordersAndShadingTabPageBorder
.Show
EndWith
Display方式显示对话框但不处置来自对话框的操作。
若是要用对话框来提示用户并返回设置,此方式比较有效。
例如,以下宏指令显示【选项】对话框中的【用户信息】选项卡,而且返回和显示用户名称。
WithDialogs(wdDialogToolsOptionsUserInfo)
.Display
MsgBox.Name
EndWith
如在上例中修改了用户名称,那么那个转变可不能阻碍对话框的设置。
用Execute方式能够执行一个对话框中的设置,但不显示该对话框。
下例显示了【用户信息】对话框,若是名称不是空字符串,那么利用Execute方式设置对话框中的项目。
WithDialogs(wdDialogToolsOptionsUserInfo)
.Display
If.Name<>""Then.Execute
EndWith
12.1.2返回和修改对话框设置
返回或修改对话框设置之前,需要标识对话框。
用带有WdWordDialog常量的Dialogs属性完成这一操作。
下例返回一个参考格式菜单中段落对话框的Dialog对象。
SetmyDialog=Dialogs(wdDialogFormatParagraph)
取得Dialog对象后即可返回或设置对话框中的选项。
下例显示从段落对话框取得的右缩进值。
SetmyDialog=Dialogs(wdDialogFormatParagraph)
Msgbox"Rightindent="&myDialog.RightIndent
许多Word内置对话框具有如此的参数,它们可利用户从对话框中取值或对其进行设置(例如,上例中的RightIndent)。
返回对话框设置的同时,还能够设定对话框的设置。
下例在【段落】对话框中的【与下段同】复选框做了标记。
WithDialogs(wdDialogFormatParagraph)
.KeepWithNext=1
.Execute
EndWith
上例将【与下段同】检查框设为有效,并用Execute方式设置了对话框中的值。
以下VisualBasic指令和上例的四条指令等价。
Selection.Paragraphs
(1).KeepWithNext=True
关于修改用属性或方式设置的值而言,用Dialog对象并非有效。
用户可用Update方式确信对话框中的值是不是和当前值一致。
若是已经在宏中设置了对话框变量的值,只需要返回或修改当前设置,可用Update方式。
12.1.3预定对话框设置
上例返回和设定了对话框的值,但没有显示该对话框。
用户还可在用Show方式前,修改Word内置对话框的设置。
例如,可在显示【编辑】菜单中的【替换】对话框之前修改要查找的文字。
下例显示【替换】对话框,并在【查找内容】编辑框中填入【Blue】。
WithDialogs(wdDialogEditFind)
.Find="Blue"
.Show
EndWith
下例显示【打开】对话框及所有文件名。
WithDialogs(wdDialogFileOpen)
.Name="*.*"
.Show
EndWith
12.1.4检查一个对话框的关闭方式
由Show和Display方式返回的值显示了对话框关闭时所单击的按钮。
下例显示【分隔符】对话框,如单击【确信】按钮,那么在状态栏中显示一条消息。
IfDialogs(wdDialogInsertBreak)Show=-1Then
StatusBar="Breakinserted"
EndIf
表12-1列出了返回的值与显示对话框关闭时所单击的按钮的关系。
表12-1返回的值与显示对话框关闭时所单击的按钮的关系
描述
描述
-2
【关闭】按钮
-1
【确定】按钮
0(零)
【取消】按钮
>0(零)
一个命令按钮,1为第一个按钮,2为第
二个按钮,依次类推
12.1.5自概念对话框
创建一个自概念对话框超级简单,方式如下:
(1)打开VisualBasic编辑器,选定一个文档的工程。
(2)单击【插入】菜单中的【用户窗体】命令,现在弹出一个名为UserForm1的窗体,并自动弹出一个工具箱。
(3)依照需要,在工具箱当选择相应的控件,绘制需要的对象,如图12-1所示。
图12-1自概念窗体
(4)选中某个对象,单击右键,在弹出的快捷菜单当选择【属性】菜单项,打开【属性】窗口,设置各个对象的属性。
如字体、显示的题目、名称等。
设置完毕后,就能够够在某个进程中挪用自概念的对话框,挪用的语句是:
UserForm1.show
若是要使对话框中的两个按钮响应用户的操作,还需要为它们添加代码。
方式是:
双击该按钮,即可打开【代码】窗口,然后选择相应的事件,添加适合的代码,如图12-2所示。
图12-2为窗体对象添加代码
若是需要,还能够对窗体中的各个对象的各个事件添加代码,以使对象响应不同的事件。
其中窗体本身也是一个对象,一样有各类不同的事件,也需要设置其相应的属性。
具体的操作方式,用户能够参考有关的VisualBasic编程的书籍。
按下F5键,或有个进程挪用了该对话框,即可显示如图12-3所示的对话框,输入正确的密码后单击【确信】按钮,即可弹出相应的消息框。
图12-3用户自概念的对话框
若是单击【退出】按钮,将退出该对话框。
12.2利用窗体对象、集合和控件
用户能够在设置窗体时利用【控件工具箱】在窗体中插入各类不同的控件,并在这些对象的某些事件添加处置代码,以使这些对象响应用户的不同操作。
下面第一介绍如安在窗体中插入各类对象。
(1)新建一个文档,对着工具栏单击右键,在弹出的快捷菜单当选中【控件工具箱】。
(2)在【控件工具箱】工具栏中按下按钮
,使文档处于设置状态。
(3)把光标移到需要插入控件的位置,在【控件工具箱】工具栏单击相应的控件。
(4)重复步骤(3),即可插入多个不同的控件,如图12-4所示。
图12-4在窗体中插入对象
从图中能够看出,插入的对象显示的都是默许的名称,尚未什么意义,下一节介绍如何设置修改各类对象的名称。
12.3为窗体对象设置属性
若是要设置修改各类对象的名称,就需要设置各个对象的属性。
方式是选中该对象,单击【控件工具箱】工具栏中的【属性】按钮,即可弹出该对象【属性】对话框,每一个对象的属性有许多相同的选项,也有很多不同的选项。
下面以文字框的属性为例,介绍各个属性的意义,如图12-5所示。
属性框中的属性项目能够按字母顺序排列,也能够对它们依照功能分类后再排序。
图12-5【属性】对话框(文字框)
ØScrollBars属性:
指定一个控件、窗体或页面是不是有垂直或水平转动条,或二者都有。
Text属性:
返回或设置文本框的文本。
若是是组合框或列表框那么改变组合框或列表框当选定的行。
BackColor属性:
规定对象的背景色。
ØBackStyle属性:
返回或设置对象的背景方式。
其语法为:
object.BackStyle[=fmBackStyle]
BackStyle属性的语法包括如表12-2所示的几个成份。
表12-2Backstyle属性的语法成份成份
成分
描述
Object
必需。
有效对象
fmBackStyle
可选。
指定控件背景
fmBackStyle的设置值如表12-3所示。
表12-3fmBackStyle的设置值
常数
值
描述
fmBackStyleTrans
0
背景为透明
parentfmBackStyleOpaque
1
背景为不透明(默认值)
ØBorderColor属性:
设置对象的边框颜色。
ØBorderStyle属性:
返回或设置文字框的边框的方式。
ØForeColor属性:
设置前景颜色。
ØPasswordChar属性:
若是当前在后面输入一个符号,如星号“*”,那么该文字框就类似一个输入密码的文字框,每输入一个字符,都以星号来显示。
ØSpecialEffect属性:
指定对象的外观。
fmSpecialEffect的设置值如表12-4所示。
表12-4fmSpecialEffect的设置值
常数
值
描述
fmSpecialEffectFlat
0
对象显示为平面的,借助于边框、颜色的变化或二者的共同变化,与周围的窗体相区别。
该值为图像和标签的默认值;对所有控件均有效
fmSpecialEffectRaised
1
对象的上边和左边高亮,下边和右边具有阴影。
fmSpecialEffectSunken
2
对复选框和选项按钮无效对象的上边和左边具有阴影,下边和右边高亮。
控件及其边框显示好象刻入所在的窗体似的。
复选框和选项按钮的默认值;
fmSpecialEffectEtched
3
对所有控件有效(默认)边框显示为沿着控件边缘被雕刻。
对复选框和选项按钮无效
mSpecialEffectBump
6
对象下边和右边隆起,而上边和左边显示为平面的。
对复选框或选项按钮无效
关于框架,默许值是Sunken。
需要注意的是,复选框、数值调剂钮和切换按钮只同意Flat和Sunken(0和2)。
而其他控件可同意所列的全数值。
ØValue属性:
概念某给定的控件的状态或内容。
ØAutoSize属性:
规定对象是不是自动调整大小以显示其完整的内容。
ØAutoTab属性:
用来规定当用户在文本框或组合框的文本框区域输入最大许诺字符数时,是不是自动跳格。
ØAutoWordSelect属性:
指定是采纳单词仍是采纳字符,来作为扩展选定内容的大体单元。
ØEnabled属性:
设置控件是不是可用,即是不是响应用户的操作。
ØEnterKeyBehavior属性:
概念在文本框中按下Enter键的结果,若是为True,按Enter键将创建一个新行;若是为False,按Enter键,将核心移到Tab键顺序的下一个对象(默许)。
ØHideSelection属性:
指定当控件没有核心时被选定的文本是不是维持突出显示。
ØIntegralHeight属性:
指定列表框或文本框是显示列表中全数文本行仍是显示部份行。
ØLocked属性:
指定一个控件可否被编辑。
ØMaxLength属性:
规定用户能够在文本框或组合框中输入的最多字符数。
假设将MaxLength属性设置为0,说明只要内存许诺那么没有限制。
ØMultiLine属性:
规定控件可否同意和显示多行文本。
ØSelectionMargin属性:
规定用户可否通过单击文本左侧区域来选中一行。
ØTabKeyBehavior属性:
决定是不是许诺制表符出此刻编辑区。
ØTextAlign属性:
概念控件中文本的对齐方式。
ØWordWrap属性:
指出一个控件的内容在行末是不是自动换行。
(名称)属性:
用来标识该控件,与显示无关,但在程序代码中通过该标识来挪用该对象。
ØDragBehavior属性:
指定系统是不是许诺在文本框或组合框中执行拖放功能。
ØEnterFieldBehavior属性:
指定进入文本框或组合框时的选择行为。
fmEnterFieldBehavior的设置值如表12-5所示。
表12-5fmEnterFieldBehavior的设置值常数值描述
常数
值
描述
fmEnterFieldBehaviorSelectAll
0
进入控件时选定编辑区域的全部内容(默认)
fmEnterFieldBehaviorRecallSelection
1
保持不变的选择。
实际上,所用的是控件上次激活时起作用的选择
ØHeight属性:
用来讲明对象的高度。
ØIMEMode属性:
指定进入文本框或组合框时的选择行为。
为控件指定输入法编辑器(IME)的默许的运行时刻模式。
那个属性只用于为远东地域编写的应用程序,在其他应用程序中被忽略。
ØMouseIcon属性:
为对象指定一个自概念的图标。
ØMousePointer属性:
指定当用户把鼠标放到特定对象上时,所显示鼠标指针的类型。
ØWidth属性:
用来讲明对象的宽度。
ØFont属性:
用来设置对象文字(若是有文字要显示的话)的字体。
关于其他对象的属性,那个地址就不一一讲述,用户能够参考其他相应的书籍。
需要说明的是,作为控件容器的文档窗体(ThisDocument)也是一个对象,用户也能够设置它的属性,使其更适合用户的实际需要。
设置完成后的窗体如图12-6所示。
图12-6设置完成后的窗体
12.4挪用窗体对象的方式用
户在图12-6中能够看到,若是仅仅只靠设置对象的属性,还不能设置出中意的窗体。
如列表框和组合列表框的选项就无法通过设置属性来设置。
现在需要挪用对象的各类方式来设置。
对象的方式很多,对象不同,方式也不尽相同。
列表框和组合列表框都有一个AddItem方式,通过挪用那个方式,即可在列表框和组合列表框中加入相应的选项。
为了在文档打开时能够自动对窗体的对象进行初始化,能够在AutoOpen进程中挪用,其代码如下:
PublicSubAutoOpen()
ListBox1.AddItem"党员"
ListBox1.AddItem"团员"
ListBox1.AddItem"民主党派"
ListBox1.AddItem"无党派人士"
ComboBox1.AddItem"北京"
ComboBox1.AddItem"广西"
ComboBox1.AddItem"广东"
ComboBox1.AddItem"陕西"
ComboBox1.AddItem"山西"
ComboBox1.AddItem"山东"
EndSub
通过以上代码,在打开文档时若是设置了运行自动宏,即可显示如图12-7所示的界面。
图12-7加了列表项目的窗体
若是【选项】对话框的【编辑器】选项卡中设置了【自动列出成员】复选框,那么在输入某个对象的名称后输入“.”,即可在屏幕上列出该对象的方式和属性,图12-8所示的是自动组合列表框的成员。
图12-8自动列出成员
对象的方式前面由图标
来标识,其他的为该对象的属性。
下面介绍VBA中常经常使用到的一些方式及其意义。
Add方式
用于在TabStrip或多页中添加或插入一个标签或页,或通过其程序设计标识符(ProgID)在页或窗体中添加控件。
语法:
关于多页和TabStrip:
SetObject=object.Add([Name[,Caption[,index]]])
关于其他控件:
SetControl=object.Add(ProgID[,Name[,Visible]])
Add方式的语法包括表12-6所示成份。
成分
描述
object
必需。
有效对象名
Name
可选。
指定被添加的对象的名称。
如果没有指定名称,系统将根据使用该窗体的应用程序的规则产生一默认的名称
Caption
可选。
指定在标签或控件上出现的题注。
如果没有指定题注,系统将根据使用该窗体的应用程序的规则产生一默认的题注
index
可选。
表示页或标签在Pages或Tabs集合中的位置。
若没有规定索引,系统会将页或标签添加Pages或Tabs集合的末尾,并赋于它相应的索引值
ProgID
必需。
程序设计标识符。
是用于标识对象类的、没有空格的文本串。
ProgID的标准语法是
ProgID会被映射为类标识符(CLSID)
Visible
可选。
若对象为可见的(这是默认方式)则为True;若对象为隐藏的则为False
表12-6Add方式的语法成份。
AddItem方法
关于单列的列表框或组合框,在列表中添加一项。
关于多列的列表框或组合框,在列表中添加一行。
语法:
Variant=object.AddItem[item[,varIndex]]
AddItem方法的语法有表12-7所示的成分。
成分
描述
object
必需。
有效对象
Item
可选。
指定要添加的项或行。
第一个项或行的编号为0;第二个项或行的编号为1,依次类推
varIndex
可选。
整数,指定新的项或行在对象中的位置
表12-7AddItem方式的语法成份
Clear方式
从一个对象或集合中删去所有对象。
语法:
object.Clearobject为必需的有效对象。
Copy方式
将对象的内容复制到剪贴板上。
语法:
object.Copyobject为必需的有效对象。
Cut方式
从一个对象中删除选定的信息并将它送到剪贴板。
语法:
object.Cutobject为必需的有效对象
DropDown方式
显示组合框的列表区。
语法:
object.DropDownobject为必需的有效对象。
在组合框中利用DropDown方式打开组合框中的列表。
GetFormat方式
返回一个整数值,说明指定的格式是不是在DataObject上。
语法:
Boolean=object.GetFormat(format)
GetFormat方式的语法成份如表12-8所示。
表12-8GetFormat方式的语法成份
成分
描述
object
必需。
有效对象
format
必需。
整数或字符串,用来表示可能存在于DataObject之中的特定格式。
如果特定的格式存在于DataObject之中,则GetFormat返回True
设置format的设置如表12-9所示。
表12-9Format的设置值
设置值
描述
1
文本格式
字符串或任何非的整数
由SetText传递到DataObject的用户自定义的DataObject格式
GetFromClipboard方式
从剪贴板复制数据到DataObject。
语法:
String=object.GetFromClipboard()
说明DataObject能够包括多个数据项,但每一个数据项必需有不同的格式。
例如,DataObject能够包括一个文本项和用户概念项,但不能同时有两个文本项。
GetText方式
用特定的格式在DataObject中检索一文本串。
语法:
String=object.GetText([format])
GetText方式的语法成份如表12-10所示。
成分
描述
object
必需。
有效对象名
format
可选。
字符串或整数,用来指定要在DataObject
中检索的数据的格式
表12-10Item方式的语法成份
说明DataObject支持多种格式,但只支持每种格式的一个数据项。
例如,DataObject可能包括一个文本项和一个自概念格式的项;但不能包括两个文本项。
若是不指定格式,GetText方式要求从DataObject中取得文本格式的信息。
Item方式
返回集合的一个成员,不管按位置,仍是按名称。
语法:
SetObject=object.Item(collectionindex)
Item方式的语法成份如表12-11所示。
表12-11Item方式的语法成份
成分
描述
object
必需。
有效对象
collectionindex
必需。
集合中成员的位置或索引
collectionindex能够是字符串,也能够是整数。
若是是字符串,那么必需是一个有效的成员名。
若是是一个整数,其最小值为0,而最大值比集合中的项目数少1。
Move方式
移动一个窗体或控件,或移动Controls集合中的所有控件。
语法:
关于窗体或控件
object.Move([Left[,Top[,Width[,Height[,Layout]]]]])
关于Controls集合
object.Move(X,Y)
Move方式的语法成份如表12-12所示。
成分
描述
object
必需。
有效对象名
Left
可选。
单精度值,以磅为单位,表示对象左边缘的横坐标
Top
可选。
单精度值,以磅为单位,表示对象上边缘的纵坐标
Width
可选。
单精度值,以磅为单位,表示对象的宽度
Height
可选。
单精度值,以磅为单位,表示对象的高度
Layout
可选。
布尔量,表示在这次移动之后控件的父对象是否初始化Layout事件。
其默认值为False
X,Y
必需。
单精度值,以磅为单位,指定了Controls集合中每个控件的当前水平和垂直位置的变化量
Left、Top、Width、Height、X和Y参数的最大值和最小值,随应用程序的不同而不同。
Paste方式
把剪贴板上的内容传送到一个对象。
语法:
object.Paste
说明将粘贴到组合框或文本框中的数据作为文本来处置。
粘贴方式假设用于窗体,可将任何对象粘贴到窗体上。
PutInClipboard方式
将数据从DataObject移到剪贴板上。
RedoAction方式
其作用与目前大多数撤消操作相反。
语法:
Boolean=object.RedoAction
说明重复取最后一个撤消操作的相反结果,那个撤消不必然是最后一个采取的动作。
不是所有的操作都能撤消的。
例如,往文本框中粘贴文本以后,然后
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 12 利用 VBA 增强 窗体 交互