vba控件常规使用UserForm 基础Word文档下载推荐.docx
《vba控件常规使用UserForm 基础Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《vba控件常规使用UserForm 基础Word文档下载推荐.docx(43页珍藏版)》请在冰点文库上搜索。
使用以下代码:
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)
PrivateSubUserForm_Resize()
msg="
Width:
"
&
Me.Width&
Chr(10)&
Height:
Me.Height
MsgBoxprompt:
=msg,Title:
="
ResizeEvent"
PrivateSubUserForm_QueryClose(CancelAsInteger,CloseModeAsInteger)
NowUnloading"
Me.Caption
QueryCloseEvent"
PrivateSubUserForm_Terminate()
TerminateEvent"
6.
在运行菜单上,单击运行子过程/用户窗体。
UserForm首先加载,时宏使用Initialize事件改为"
事件事件事件!
和BackColor属性以深蓝色的UserFormCaption属性。
当您单击UserForm,您初始化Click事件。
调整UserFormClick事件。
因为您创建Resize事件,过程单击UserForm后收到两个消息框。
因为Click事件代码更改宽度属性和Height属性是UserFormResize事件发生两次。
关闭UserForm初始化QueryClose事件。
QueryClose事件显示消息框包含标题为Initialize事件,您赋予UserForm代码中。
可以使用时要执行特定的操作集如果用户关闭UserFormQueryClose事件。
然后生成一个消息框,指出标题为UserForm是UserForm1Terminate事件。
从内存中删除UserForm并返回到其原始状态标题为UserForm后Terminate事件发生。
如何防止UserForm关闭通过关闭按钮
当您运行UserForm,关闭按钮添加到UserForm窗口的右上角。
如果要防止UserForm关闭通过关闭按钮,您必须捕获QueryClose事件。
QueryClose事件UserForm是从内存中卸载之前发生。
使用QueryClose事件CloseModeCloseMode参数来确定如何UserForm关闭。
vbFormControlMenu值为CloseModeCloseMode参数表示时,单击关闭按钮。
要保持活动,UserForm将Cancel取消对QueryClose事件参数为True。
要使用QueryClose事件来防止UserForm关闭通过关闭按钮,请按照下列步骤:
将CommandButton控件添加到UserForm。
在代码窗口,键入如下代码:
PrivateSubCommandButton1_Click()
UnloadMe
IFCloseMode=vbFormControlMenuThen
Cancel=True
ClicktheCommandButtontocloseMe!
EndIf
7.
当您单击关闭按钮UserForm未关闭。
您必须单击CommandButton控件关闭UserForm。
注意:
代码包含在本文中不包含影响所有属性和对控件事件的示例。
如果您不得不,请使用属性窗口要查看可供控件属性的列表。
要在视图菜单上,查看列表的属性,请单击属性窗口。
如何使用设计模式来编辑控件
当您使用"
VisualBasic编辑器来设计一个对话框,使用设计模式。
在设计模式,您可编辑控件和可更改属性在属性窗口UserForm上的控制。
若要显示属性窗口,在视图菜单上,单击属性窗口。
当您处在设计模式注意控件不响应与事件。
当您运行一个对话框,显示方式,用户看到它,程序处于运行模式。
当UserForm是从内存中卸载将不会保留更改,对运行模式中控件的属性。
注意控件请回复到事件在运行模式。
如何引用UserForm上控件
如何您引用控件编程取决VisualBasic模块表运行代码的类型。
如果代码从常规模块,运行以下语法是:
UserFormName.Controlname.Property=值
例如,如果要设置名为TextBox,名为到值是Bob,UserForm1UserForm上TextBox控件的Text属性使用以下代码:
UserForm1.TextBox1.Text="
Bob"
如果代码是通过事件的控件或者通过UserForm,启动过程中是您不需要引用名为UserForm。
而,使用以下代码:
TextBox1.Text="
当向对象,附加代码代码附加到之一为对象事件。
众多,本文示例中,将代码附加到Click事件是CommandButton对象。
标签控件
标签控件主要用于描述UserForm上其他控件。
运行UserForm时Label控件不能编辑由用户。
使用Caption属性到设置或返回一个Label控件中文本。
用于格式化Label控件其他常用属性包括字体属性和ForeColor属性。
如何使用WITH语句设置Label控件格式
要使用WITH语句来更改属性的Label控件,请按照下列步骤:
启动Excel,并打开新空白工作簿。
将Label控件添加到UserForm。
双击以打开代码窗口对于UserFormCommandButton控件。
在代码窗口,为CommandButton1Click事件键入下列代码:
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
8.
9.
单击CommandButton。
文本粗TimesNewRoman用字体大小是14中Label控件上显示"
Thisis标签示例1"
。
TextBox控件
TextBox控件经常用于收集来自用户输入。
Text属性包含项,TextBox控件中进行。
如何使用TextBox控件来验证密码
如果您设置TextBox控件,PasswordChar属性的它成为"
masked-编辑"
控件。
由字符指定可视取代TextBox控件中键入的每个字符。
要使用TextBox控件来验证密码,请按照下列步骤:
将TextBox控件添加到UserForm。
在视图菜单上,单击属性以显示属性窗口。
对TextBox控件,PasswordChar属性中键入*
注意您正将值改为星号。
IfTextBox1.Text<
>
userform"
Then
MsgBox"
PasswordisIncorrect.Pleasereenter."
TextBox1.Text="
TextBox1.SetFocus
Else
Welcome!
10.
11.
在TextBox控件中键入密码userform。
12.
单击CommandButton控件。
对于本例,密码是"
userform"
如果您键入正确密码,您收到一个消息框,指出密码不正确,然后重新键入密码可清除TextBox控件,并且。
当您键入正确密码,收到欢迎消息,并UserForm关闭。
CommandButton控件
您可以使用CommandButton控制来启动VBA过程。
VBA过程通常附加到CommandButton控件的Click事件。
要使用CommandButton控件Click事件发生,时,运行过程请按照步骤:
双击以显示代码窗口对于UserFormCommandButton控件。
red=Int(Rnd*255)
green=Int(Rnd*255)
blue=Int(Rnd*255)
CommandButton1.BackColor=RGB(red,green,blue)
EndSub
CommandButton1控件的背景颜色更改每次您单击它。
ListBox控件
ListBox控件的目的是为了向用户显示要选择的项目列表。
您可以存储为Excel工作表上ListBox控件项目列表。
使用RowSource属性来填充工作表,上ListBox控件与范围的单元格。
ListBox控件在使用MultiSelect属性,时可设置为接受多重选择。
如何从ListBox控件获取当前选定项
使用Value属性的ListBox控件可返回当前选定项。
要返回单项选择ListBox控件,中当前选定项请按照下列步骤操作:
在单元格A1:
A5Sheet,键入了您要用于填充ListBox控件值。
将ListBox控件添加到UserForm。
双击ListBox控件以显示代码窗口对ListBox控件。
在代码窗口,为ListBox1Click事件键入下列代码:
PrivateSubListBox1_Click()
MsgBoxListBox1.Value
当单击列表,中的项目与当前选定项目将出现一个消息框。
如何获取多选择ListBox控件中选定项
确定多选择ListBox控件,中所选项目必须循环列表,中所有项目并再查询Selected属性。
要返回多选择,ListBox控件中当前选定项请按照下列步骤操作:
在视图菜单上,单击属性以查看属性窗口。
键入值,对于下列ListBox控件属性表示:
PropertyValue
----------------------------------
MultiSelect1-frmMultiSelectMulti
RowSourceSheet1!
A1:
A8
SubCommandButton1_Click()
LoopthroughtheitemsintheListBox.
Forx=0toListBox1.ListCount-1
Iftheitemisselected...
IfListBox1.Selected(x)=TrueThen
displaytheSelecteditem.
MsgBoxListBox1.List(x)
Nextx
列表中选择一个或多个项目。
13.
单击CommandButton1。
单击CommandButton1,后,在ListBox控件中选择每个项目显示在一个单独的消息框。
UserForm在消息框中,出现所有选定项后自动关闭。
如何使用RowSource属性来填充工作表上以ListBox控件
要使用RowSource属性来填充工作表,上ListBox控件从范围的单元格请按照下列步骤:
ListBox1.RowSource="
=Sheet1!
A5"
注意ListBox1不包含任何值。
ListBox1填充单元格A1:
A5Sheet中有值。
如何填充一个ListBox控件数组中有值
下例显示您如何填充以数组ListBox控件。
数组中每次为ListBox控件项必须分配值。
通常,此过程要求您使用循环结构,如Forà
Next循环。
要填充以数组,ListBox控件请按照下列步骤操作:
在插入菜单上,单击要插入模块表模块。
SubPopulateListBox()
DimMyArrayAsVariant
DimCtrAsInteger
MyArray=Array("
Apples"
"
Oranges"
Peaches"
Bananas"
Pineapples"
)
ForCtr=LBound(MyArray)ToUBound(MyArray)
UserForm1.ListBox1.AddItemMyArray(Ctr)
Next
UserForm1.Show
然后单击运行在工具菜单上,、"
PopulateListBox,和宏。
PopulateListBox过程建立简单数组,并数组中通过使用AddItem方法添加到ListBox控件项目。
然后,UserForm出现。
如何使用工作表上水平的单元格区域来填充一个ListBox控件
如果将ListBox控件的RowSource属性到水平区域的单元格,ListBox控件中第一个值只会出现。
要通过使用AddItem方法,ListBox控件从水平区域的单元格填充请按照下列步骤操作:
启