用户窗体

来源:百度文库 编辑:神马文学网 时间:2024/06/03 04:55:33
-----------------------
用户窗体(UserForm对象)是VBA的另一类对象。它表现出来是一个窗口或对话框,如前面我们说的MsgBox与InputBox语句弹出来的都属于窗体。使用窗体可以提供一个形象的用户界面。同我们可以在工作表(WorkSheet)上在添加不同的控件一样,在这个界面上,我们可以添加命令按钮、标签、图像、列表框等控件,用户可以通过修改控件的属性、编写不同的事件过程在程序运行过程中与程序进行交互。
1、添加窗体
如果你还没有忘记怎么插入模块?那请用同样的方法插入一个用户窗体。
Alt+F11快捷键打开VBE编辑窗口,在工程资源管理器窗口中单击右键,选择“插入——用户窗体”命令。

1-1.jpg (33.67 KB)
2009-8-16 14:47
 
Excel为用户窗体取名,同为工作表、按钮等取名一样,采用“老大,老二,老三……”的取名方式。所以新插入的用户窗体默认名称为“UserForm1”,如果再继续插入窗体,就是“UserForm2”,接着是“UserForm3”……
当然,你可以为它重新取一个你喜欢的名字,新名字叫大花二花,或者是大狗二狗,随你了,为了方便学习,这里我们统一为其更名为“我的窗体”,方法为:在工程资源管理器中双击窗体对象,在属性窗口中重新修改“(名称)”(对象的name属性)为“我的窗体”即可。修改完成后,可以在工程资源管理器窗口中看到相应的名称已经改变了。

1-2.jpg (81.78 KB)
2009-8-16 14:47
 
这时,窗体的“名称”已经修改好了,再看看窗体,左上角还显示着“UserForm1”,这就相当于贴在一个按钮表面的标签,想要修改它,只需要修改对象的“Caption”属性即可。用改“名称”的方法,我们把这个窗体的“Caption”属性修改为“我的第一个VBA窗体”。
就像你家里贴的地板一样,新建的窗体的大小样子都一样。但是我们根据自己的需要对其进行美化或修改。如大小,背景颜色,背景图片等等,我们可以手动在属性窗口里对其进行修改,也可以程序中用代码进行修改。如修改该窗体的宽度,代码设置为:
复制内容到剪贴板代码:
我的窗体.Width = 500         '500是你需要修改后的宽度,以磅(Point)为单位
动手试一试,在属性窗口里设置“我的窗体”宽300 Point(Width属性),高200 Point(Height属性)。
2、为窗体添加界面元素
窗体就像一个舞台,舞台上得有演员才能和观众进行互动。同样,我们得为窗体这个舞台添加演员,演员可以是命令按钮、标签、文字框等等,你可以根据自己的剧本的需要安排不同的角色。
向窗体添加控件,同在工作表中添加窗体控件一样。如果你现在的VBE编辑窗口中没有“工具箱”,请通过“视图——>工具箱”菜单命令,或单击“工具栏”上的“工具箱”按钮打开它。

1-3.jpg (55.44 KB)
2009-8-16 14:47
 
想知道“工具箱”里的控件是哪一种是“命令按钮”,哪一种是“标签”,哪一种是“文字框”,只需要把鼠标指针移到相应的控件上面,即会显示相应的说明。
在工具箱里用鼠标点选相应的控件,在窗体上按下鼠标左键,拖动即可将控件添加到用户窗体。控件的大小、在窗体上的位置我们可以通过鼠标进行修改,当然,同修改其他属性一样,我们也可以在属性窗口或程序的过程中用代码进行修改。
别闲着,动手试一试:
(1)向窗体添加一个命令按钮
改按钮名称为“确定”。设置显示在按钮上的文字(Caption属性)为“完成”,高25(Height属性),宽60(Width属性),距“我的窗体”左端220(Left属性),距“我的窗体”顶端80(Top属性)。
引用:
当然,上面只是教你怎样在属性窗口里对控件的属性进行修改。要求不是太完美的时候,我们可以在窗体上用鼠标拖动修改一下就可以了。
(2)向窗体添加一个标签
改标签的名称为“说明”。设置字体(Font属性)为“宋体,五号,斜体”,显示的内容(Caption属性)为“请输入内容”(慢速双击激活控件即可输入)。
(3)向窗体添加一个文字框
改文字框的名称为“内容”,设置字体(Font属性)为“楷体五号字”,字体颜色(ForeColor属性)为“红色”。
回到窗体设计模式,按F5键(或者执行“运行——>运行子过程/窗体”菜单命令,或单击工具栏上的“运行子过程/窗体”命令按钮),完整的一个用户窗体就显示在桌面上了。

1-4.jpg (23.78 KB)
2009-8-16 14:47
 
当然,因为没有添加任何的VBA指令,此时,窗体里的控件是不会工作的。
(4)为命令按钮添加事件过程
上面的标签,文字框,命令按等控件(ActiveX控件,同我们刚开始说的窗体控件是有区别的)都属于对象,我们可以通过编写相应的代码设置其属性,调用其方法,响应其事件来达到我们需要实现的操作。
比如在“我的窗体”中,如果需要在点击“完成”按钮(按钮名称为“确定”)后,用一个Msgbox告诉我们,文字框(名称为“内容”)里输入的是什么内容。
有了这个思想,我们可以模拟把程序写为:
Sub 确定_单击()
Msgbox “文字框里输入的内容是:” & 内容.输入的内容
End Sub
有了这个模拟的程序,再来写就简单了。
“单击”是“确定”的一个事件,即Click事件,“内容.输入的内容”是读取“内容”的Value属性。
这样,我们的程序实际上是:
复制内容到剪贴板代码:
Sub 确定_Click()
MsgBox "文字框里输入的内容是:" & 内容.Value
End Sub
回到窗体,双击按钮,切换到代码模式,在左面“对象列表”中选择对象“确定”,右面事件列表中选择事件“Click”,将Sub与End Sub之间输入代码MsgBox "文字框里输入的内容是:" & 内容.Value。回到设计模式下,按F5键,再次运行窗体,在文字框里输入内容,单击“完成”。
也许你需要在文字框里什么也没有输时,单击按钮后,提示我们“文字框里没有输入任何内容”,并退出程序。可以的,加一个If—Then语句即可。如果需要将文字框里的内容换行显示,那么在提示内容与显示内容之间再连接一个“Chr(13)”,就个的作用相当工作表中的“Char(10)”,这里不再多说。
我最后写的代码是:
复制内容到剪贴板代码:
Private Sub 确定_Click()
If 内容.Value = "" Then
MsgBox "文本框里没有输入任何内容!"
Exit Sub      '退出sub过程,不再执行下面的语句
End If
MsgBox "文字框里输入的内容是:" & Chr(13) & 内容.Value
End Sub
3、显示窗体
显示窗体就是把窗体显示给用户。
显示窗体可以调用窗体的Show方法。
窗体的显示模式有两种:
(1)模式窗体:窗体显示后将停显示之后的代码直到退出或隐藏此窗体,并且必须退出或隐藏此窗体后,才可以操作非此窗体的其他界面元素。
也就是说,当你使用模式窗体显示某窗体的时候,当程序执行完“显示窗体”这条命令后,将暂停执行程序里剩余的语句,真正这个窗体被隐藏或退出。关且当窗体显示出来以后,你不能激活该窗体以外的任何区域。
(2)无模式窗体:窗体显示后会继续执行程序里余下的语句,而其他的窗体或界面也可以进行操作。
显示窗体的语句:
(1)模式窗体的显示代码:
窗体名称.Show  vbModal
也可以写成:窗体名称.Show 1
(2)无模式窗体的显示代码:
窗体名称.Show  vbModeless
也可以写成:窗体名称.Show 0
引用:
悄悄告诉你:因为对于Show方法,如果不指定模式,则默认为模式窗体,又因为我很懒,所以我的习惯是:当我需要用模式窗体的时候,就直接“窗体.Show”,需要无模式的时候就“窗体.Show 0”,多个0少个0而已,懒得去记那有模式无模式的字母,我英文差,反正看了也不一定认识。
4、关闭窗体
当不再需要使用某个窗体后,我们需要把它关闭。当然,每一个窗体上都有“关闭”按钮。但这肯定不能满足我们在程序的设计过程中的需求。
我们可以通过Hide来隐藏窗体。代码为:
窗体名称.Hide
也可以通过Unload来卸载窗体。代码为:
Unload 窗体名称
二者都可以关闭窗体,但是却是有区别的。Show一个Hide的窗体比Show一个Unload的窗体用的时间要短。所以,当你需要反复使用某个窗体的时候,建议你用Hide而不用Unload。
------------------------------------------------------------最后-----------------------------------------
上面讲的这些内容,打开VBE窗口,插入窗体,添加控件,修改属性,编写事件过程等等,这些,你都跟着做了吗?如果你已经做了,那最后我再留给你一点事情算是作业吧:
(1)插入一个模块,编写两个Sub过程,分别以“模式窗口”和“无模式窗口”显示“我的窗体”(可在显示窗体命令的下一行再编写另外一条指令查看两者在程序执行过程中的区别);
(2)在工作表上插入两个窗体控件的按钮(记住是窗体控件),分别改按钮上显示的字为“模式窗体”和“无模式窗体”,并把刚才编写的两个宏分别指定给它们;
(3)再次进行入“我的窗体”的设计模式,添加两个按钮,分别改其“Caption”属性为“隐藏窗体”和“卸载窗体”。分别为两个按钮编写响应其相应事件的代码,使得当单击“隐藏窗体”按钮时,隐然“我的窗体”,单击“卸载窗体”时,卸载“我的窗体”。
弄好后,你可以点击工作表上的铵钮,调出窗体,看看自己的第一件作品了。
PS:这是我的作业,供参考!用户窗体.rar (9.94 KB)用户窗体.rar (9.94 KB)
下载次数: 496
2009-8-16 14:40