vba控件常规使用
UserForm基础
如何显示UserForm
以下是用于显示UserForm编程语法是:
UserFormName.Show
要显示名为UserForm1,UserForm使用以下代码:
UserForm1.Show
不显示它实际上还能加载UserForm装入内存。复杂UserForm可能需要几秒钟以显示。因为预先您能加载到内存,UserForm可决定何时导致此开销。要加载到内存UserForm1不显示它,使用以下代码:
LoadUserForm1
若要显示UserForm,必须使用以前已显示显示方法。
如何以暂时隐藏UserForm
如果要暂时隐藏UserForm,使用隐藏方法。可能想要隐藏UserForm如果应用程序涉及用户窗体之间移动。要隐藏UserForm,使用以下代码:
UserForm1.Hide
如何从内存删除UserForm
要从内存,删除UserForm使用Unload语句。要卸载,名为UserForm1,UserForm使用以下代码:
UnloadUserForm1
如果您卸载UserForm,是与UserForm或者,是与UserForm上控件的事件过程中(例如,您单击CommandButton控件),您可以使用""关键字代替的UserForm名称。将关键字用于卸载UserForm,"Me"使用以下代码:
UnloadMe
如何使用UserForm事件
支持许多预定义事件,可以附加到VBA过程。在事件发生时,该附加到事件过程运行。单个操作由用户执行可初始化多事件。之间最经常对UserForm使用事件是Initialize事件、Click事件,Terminate事件。
注意包含事件过程VisualBasic模块可能称为"后面"UserForm模块。模块包含事件过程是不可见的VisualBasic编辑器ProjectMicrosoftInternetExplorer窗口Modules集合中。您必须双击正文部分UserForm以查看UserForm代码模块。
如何捕获UserForm事件
要捕获UserForm事件,请按照下列步骤操作:
1.
Excel中创建新工作簿。
2.
在工具菜单,指向宏,然后单击VisualBasic编辑器。
3.
在插入菜单上,单击要在工作簿中插入UserFormUserForm
4.
双击以显示代码窗口对于UserFormUserForm
5.
模块,中键入如下代码:
PrivateSubUserForm_Click()
Me.Height=Int(Rnd*500)
Me.Width=Int(Rnd*750)
EndSub
PrivateSubUserForm_Initialize()
Me.Caption="EventsEventsEvents!"
Me.BackColor=RGB(10,25,100)
EndSub
PrivateSubUserForm_Resize()
msg="Width:"&Me.Width&Chr(10)&"Height:"&Me.Height
MsgBoxprompt:=msg,Title:="ResizeEvent"
EndSub
PrivateSubUserForm_QueryClose(CancelAsInteger,CloseModeAsInteger)
msg="NowUnloading"&Me.Caption
MsgBoxprompt:=msg,Title:="QueryCloseEvent"
EndSub
PrivateSubUserForm_Terminate()
msg="NowUnloading"&Me.Caption
MsgBoxprompt:=msg,Title:="TerminateEvent"
EndSub
6.
在运行菜单上,单击运行子过程/用户窗体。
UserForm首先加载,时宏使用Initialize事件改为"事件事件事件!"BackColor属性以深蓝的UserFormCaption属性。
当您单击UserForm,您初始化Click事件。调整UserFormClick事件。因为您创建Resize事件,过程单击UserForm后收到两个消息框。因为Click事件代码更改宽度属性和Height属性是UserFormResize事件发生两次。
关闭UserForm初始化QueryClose事件。QueryClose事件显示消息框包含标题为Initialize事件,您赋予UserForm代码中。可以使用时要执行特定的操作集如果用户关闭vba listbox控件详解UserFormQueryClose事件。
然后生成一个消息框,指出标题为UserFormUserForm1Terminate事件。从内存中删除UserForm并返回到其原始状态标题为UserFormTerminate事件发生。
如何防止UserForm关闭通过关闭按钮
当您运行UserForm,关闭按钮添加到UserForm窗口的右上角。如果要防止UserForm关闭通过关闭按钮,您必须捕获QueryClose事件。
QueryClose事件UserForm是从内存中卸载之前发生。使用QueryClose事件CloseModeCloseMode参数来确定如何UserForm关闭。vbFormControlMenu值为CloseModeCloseMode参数表示时,单击关闭按钮。要保持活动,UserFormCancel取消对QueryClose事件参数为True。要使用QueryClose事件来防止UserForm关闭通过关闭按钮,请按照下列步骤:
1.
Excel中创建新工作簿。
2.
在工具菜单,指向宏,然后单击VisualBasic编辑器。
3.
在插入菜单上,单击要在工作簿中插入UserFormUserForm
4.
CommandButton控件添加到UserForm
5.
双击以显示代码窗口对于UserFormUserForm
6.
在代码窗口,键入如下代码:
PrivateSubCommandButton1_Click()
UnloadMe
EndSub
PrivateSubUserForm_QueryClose(CancelAsInteger,CloseModeAsInteger)
IFCloseMode=vbFormControlMenuThen
Cancel=True
Me.Caption="ClicktheCommandButtontocloseMe!"
EndIf
EndSub
7.
在运行菜单上,单击运行子过程/用户窗体。
当您单击关闭按钮UserForm未关闭。您必须单击CommandButton控件关闭UserForm
注意:代码包含在本文中不包含影响所有属性和对控件事件的示例。如果您不得不,请使用属性窗口要查看可供控件属性的列表。要在视图菜单上,查看列表的属性,请单击属性窗口
如何使用设计模式来编辑控件
当您使用"VisualBasic编辑器来设计一个对话框,使用设计模式。在设计模式,您可编辑控件和可更改属性在属性窗口UserForm上的控制。若要显示属性窗口,在视图菜单上,单击属性窗口。
当您处在设计模式注意控件不响应与事件。当您运行一个对话框,显示方式,用户看到它,程序处于运行模式。当UserForm是从内存中卸载将不会保留更改,对运行模式中控件的属性。
注意控件请回复到事件在运行模式。
如何引用UserForm上控件
如何您引用控件编程取决VisualBasic模块表运行代码的类型。如果代码从常规模块,运行以下语法是:
=
例如,如果要设置名为TextBox,名为到值是Bob,UserForm1UserFormTextBox控件的Text属性使用以下代码:
如果代码是通过事件的控件或者通过UserForm,启动过程中是您不需要引用名为UserForm。而,使用以下代码:
TextBox1.Text="Bob"
当向对象,附加代码代码附加到之一为对象事件。众多,本文示例中,将代码附加到Click事件是CommandButton对象。
标签控件
标签控件主要用于描述UserForm上其他控件。运行UserFormLabel控件不能编辑由用户。
使用Caption属性到设置或返回一个Label控件中文本。用于格式化Label控件其他常用属性包括字体属性和ForeColor属性。
如何使用WITH语句设置Label控件格式
要使用WITH语句来更改属性的Label控件,请按照下列步骤:
1.
启动Excel,并打开新空白工作簿。
2.
在工具菜单,指向宏,然后单击VisualBasic编辑器。
3.
在插入菜单上,单击要在工作簿中插入UserFormUserForm
4.
Label控件添加到UserForm
5.
CommandButton控件添加到UserForm
6.
双击以打开代码窗口对于UserFormCommandButton控件。
7.
在代码窗口,CommandButton1Click事件键入下列代码:
PrivateSubCommandButton1_Click()
WithLabel1
'Setthetextofthelabel.
.Caption="ThisisLabelExample1"
'Automaticallysizethelabelcontrol.
.AutoSize=True
.WordWrap=False
'SetthefontusedbytheLabelcontrol.
.Font.Name="TimesNewRoman"
.Font.Size=14
.Font.Bold=True
'Setthefontcolortoblue.
.ForeColor=RGB(0,0,255)
EndWith
EndSub
8.
在运行菜单上,单击运行子过程/用户窗体。
9.
单击CommandButton
文本粗TimesNewRoman用字体大小是14Label控件上显示"Thisis标签示例1"