1、vba控件常规使用UserForm 基础vba控件常规使用UserForm基础如何显示UserForm以下是用于显示UserForm编程语法是:UserFormName.Show要显示名为UserForm1,UserForm使用以下代码:UserForm1.Show不显示它实际上还能加载UserForm装入内存。复杂UserForm可能需要几秒钟以显示。因为预先您能加载到内存,UserForm可决定何时导致此开销。要加载到内存UserForm1不显示它,使用以下代码:LoadUserForm1若要显示UserForm,必须使用以前已显示显示方法。如何以暂时隐藏UserForm如果要暂时隐藏Us
2、erForm,使用隐藏方法。可能想要隐藏UserForm如果应用程序涉及用户窗体之间移动。要隐藏UserForm,使用以下代码:UserForm1.Hide如何从内存删除UserForm要从内存,删除UserForm使用Unload语句。要卸载,名为UserForm1,UserForm使用以下代码:UnloadUserForm1如果您卸载UserForm,是与UserForm或者,是与UserForm上控件的事件过程中(例如,您单击CommandButton控件),您可以使用我关键字代替的UserForm名称。将关键字用于卸载UserForm,Me使用以下代码:UnloadMe如何使用User
3、Form事件支持许多预定义事件,可以附加到VBA过程。在事件发生时,该附加到事件过程运行。单个操作由用户执行可初始化多事件。之间最经常对UserForm使用事件是Initialize事件、Click事件,和Terminate事件。注意包含事件过程VisualBasic模块可能称为后面UserForm模块。模块包含事件过程是不可见的VisualBasic编辑器ProjectMicrosoftInternetExplorer窗口Modules集合中。您必须双击正文部分UserForm以查看UserForm代码模块。如何捕获UserForm事件要捕获UserForm事件,请按照下列步骤操作:1.Ex
4、cel中创建新工作簿。2.在工具菜单,指向宏,然后单击VisualBasic编辑器。3.在插入菜单上,单击要在工作簿中插入UserFormUserForm。4.双击以显示代码窗口对于UserFormUserForm。5.模块,中键入如下代码:PrivateSubUserForm_Click()Me.Height=Int(Rnd*500)Me.Width=Int(Rnd*750)EndSubPrivateSubUserForm_Initialize()Me.Caption=EventsEventsEvents!Me.BackColor=RGB(10,25,100)EndSubPrivateSub
5、UserForm_Resize()msg=Width:&Me.Width&Chr(10)&Height:&Me.HeightMsgBoxprompt:=msg,Title:=ResizeEventEndSubPrivateSubUserForm_QueryClose(CancelAsInteger,CloseModeAsInteger)msg=NowUnloading&Me.CaptionMsgBoxprompt:=msg,Title:=QueryCloseEventEndSubPrivateSubUserForm_Terminate()msg=NowUnloading&Me.CaptionM
6、sgBoxprompt:=msg,Title:=TerminateEventEndSub6.在运行菜单上,单击运行子过程/用户窗体。UserForm首先加载,时宏使用Initialize事件改为事件事件事件!和BackColor属性以深蓝色的UserFormCaption属性。当您单击UserForm,您初始化Click事件。调整UserFormClick事件。因为您创建Resize事件,过程单击UserForm后收到两个消息框。因为Click事件代码更改宽度属性和Height属性是UserFormResize事件发生两次。关闭UserForm初始化QueryClose事件。QueryClos
7、e事件显示消息框包含标题为Initialize事件,您赋予UserForm代码中。可以使用时要执行特定的操作集如果用户关闭UserFormQueryClose事件。然后生成一个消息框,指出标题为UserForm是UserForm1Terminate事件。从内存中删除UserForm并返回到其原始状态标题为UserForm后Terminate事件发生。如何防止UserForm关闭通过关闭按钮当您运行UserForm,关闭按钮添加到UserForm窗口的右上角。如果要防止UserForm关闭通过关闭按钮,您必须捕获QueryClose事件。QueryClose事件UserForm是从内存中卸载之前
8、发生。使用QueryClose事件CloseModeCloseMode参数来确定如何UserForm关闭。vbFormControlMenu值为CloseModeCloseMode参数表示时,单击关闭按钮。要保持活动,UserForm将Cancel取消对QueryClose事件参数为True。要使用QueryClose事件来防止UserForm关闭通过关闭按钮,请按照下列步骤:1.Excel中创建新工作簿。2.在工具菜单,指向宏,然后单击VisualBasic编辑器。3.在插入菜单上,单击要在工作簿中插入UserFormUserForm。4.将CommandButton控件添加到UserFor
9、m。5.双击以显示代码窗口对于UserFormUserForm。6.在代码窗口,键入如下代码:PrivateSubCommandButton1_Click()UnloadMeEndSubPrivateSubUserForm_QueryClose(CancelAsInteger,CloseModeAsInteger)IFCloseMode=vbFormControlMenuThenCancel=TrueMe.Caption=ClicktheCommandButtontocloseMe!EndIfEndSub7.在运行菜单上,单击运行子过程/用户窗体。当您单击关闭按钮UserForm未关闭。您必须
10、单击CommandButton控件关闭UserForm。注意:代码包含在本文中不包含影响所有属性和对控件事件的示例。如果您不得不,请使用属性窗口要查看可供控件属性的列表。要在视图菜单上,查看列表的属性,请单击属性窗口。如何使用设计模式来编辑控件当您使用VisualBasic编辑器来设计一个对话框,使用设计模式。在设计模式,您可编辑控件和可更改属性在属性窗口UserForm上的控制。若要显示属性窗口,在视图菜单上,单击属性窗口。当您处在设计模式注意控件不响应与事件。当您运行一个对话框,显示方式,用户看到它,程序处于运行模式。当UserForm是从内存中卸载将不会保留更改,对运行模式中控件的属性。
11、注意控件请回复到事件在运行模式。如何引用UserForm上控件如何您引用控件编程取决VisualBasic模块表运行代码的类型。如果代码从常规模块,运行以下语法是:=值例如,如果要设置名为TextBox,名为到值是Bob,UserForm1UserForm上TextBox控件的Text属性使用以下代码:如果代码是通过事件的控件或者通过UserForm,启动过程中是您不需要引用名为UserForm。而,使用以下代码:TextBox1.Text=Bob当向对象,附加代码代码附加到之一为对象事件。众多,本文示例中,将代码附加到Click事件是CommandButton对象。标签控件标签控件主要用于描
12、述UserForm上其他控件。运行UserForm时Label控件不能编辑由用户。使用Caption属性到设置或返回一个Label控件中文本。用于格式化Label控件其他常用属性包括字体属性和ForeColor属性。如何使用WITH语句设置Label控件格式要使用WITH语句来更改属性的Label控件,请按照下列步骤:1.启动Excel,并打开新空白工作簿。2.在工具菜单,指向宏,然后单击VisualBasic编辑器。3.在插入菜单上,单击要在工作簿中插入UserFormUserForm。4.将Label控件添加到UserForm。5.将CommandButton控件添加到UserForm。6
13、.双击以打开代码窗口对于UserFormCommandButton控件。7.在代码窗口,为CommandButton1Click事件键入下列代码:PrivateSubCommandButton1_Click()WithLabel1Setthetextofthelabel.Caption=ThisisLabelExample1Automaticallysizethelabelcontrol.AutoSize=True.WordWrap=FalseSetthefontusedbytheLabelcontrol.Font.Name=TimesNewRoman.Font.Size=14.Font.Bo
14、ld=TrueSetthefontcolortoblue.ForeColor=RGB(0,0,255)EndWithEndSub8.在运行菜单上,单击运行子过程/用户窗体。9.单击CommandButton。文本粗TimesNewRoman用字体大小是14中Label控件上显示Thisis标签示例1。TextBox控件TextBox控件经常用于收集来自用户输入。Text属性包含项,TextBox控件中进行。如何使用TextBox控件来验证密码如果您设置TextBox控件,PasswordChar属性的它成为masked-编辑控件。由字符指定可视取代TextBox控件中键入的每个字符。要使用Te
15、xtBox控件来验证密码,请按照下列步骤:1.启动Excel,并打开新空白工作簿。2.在工具菜单,指向宏,然后单击VisualBasic编辑器。3.在插入菜单上,单击要在工作簿中插入UserFormUserForm。4.将TextBox控件添加到UserForm。5.在视图菜单上,单击属性以显示属性窗口。6.对TextBox控件,PasswordChar属性中键入*注意您正将值改为星号。7.将CommandButton控件添加到UserForm。8.双击以打开代码窗口对于UserFormCommandButton控件。9.在代码窗口,为CommandButton1Click事件键入下列代码:P
16、rivateSubCommandButton1_Click()IfTextBox1.TextuserformThenMsgBoxPasswordisIncorrect.Pleasereenter.TextBox1.Text=TextBox1.SetFocusElseMsgBoxWelcome!UnloadMeEndIfEndSub10.在运行菜单上,单击运行子过程/用户窗体。11.在TextBox控件中键入密码userform。12.单击CommandButton控件。对于本例,密码是userform。如果您键入正确密码,您收到一个消息框,指出密码不正确,然后重新键入密码可清除TextBox控
17、件,并且。当您键入正确密码,收到欢迎消息,并UserForm关闭。CommandButton控件您可以使用CommandButton控制来启动VBA过程。VBA过程通常附加到CommandButton控件的Click事件。要使用CommandButton控件Click事件发生,时,运行过程请按照步骤:1.启动Excel,并打开新空白工作簿。2.在工具菜单,指向宏,然后单击VisualBasic编辑器。3.在插入菜单上,单击要在工作簿中插入UserFormUserForm。4.将CommandButton控件添加到UserForm。5.双击以显示代码窗口对于UserFormCommandButt
18、on控件。6.在代码窗口,键入如下代码:PrivateSubCommandButton1_Click()red=Int(Rnd*255)green=Int(Rnd*255)blue=Int(Rnd*255)CommandButton1.BackColor=RGB(red,green,blue)EndSub7.在运行菜单上,单击运行子过程/用户窗体。CommandButton1控件的背景颜色更改每次您单击它。ListBox控件ListBox控件的目的是为了向用户显示要选择的项目列表。您可以存储为Excel工作表上ListBox控件项目列表。使用RowSource属性来填充工作表,上ListBox
19、控件与范围的单元格。ListBox控件在使用MultiSelect属性,时可设置为接受多重选择。如何从ListBox控件获取当前选定项使用Value属性的ListBox控件可返回当前选定项。要返回单项选择ListBox控件,中当前选定项请按照下列步骤操作:1.启动Excel,并打开新空白工作簿。2.在单元格A1:A5Sheet,键入了您要用于填充ListBox控件值。3.在工具菜单,指向宏,然后单击VisualBasic编辑器。4.在插入菜单上,单击要在工作簿中插入UserFormUserForm。5.将ListBox控件添加到UserForm。6.双击ListBox控件以显示代码窗口对Lis
20、tBox控件。7.在代码窗口,为ListBox1Click事件键入下列代码:PrivateSubListBox1_Click()MsgBoxListBox1.ValueEndSub8.在运行菜单上,单击运行子过程/用户窗体。当单击列表,中的项目与当前选定项目将出现一个消息框。如何获取多选择ListBox控件中选定项确定多选择ListBox控件,中所选项目必须循环列表,中所有项目并再查询Selected属性。要返回多选择,ListBox控件中当前选定项请按照下列步骤操作:1.启动Excel,并打开新空白工作簿。2.在单元格A1:A5Sheet,键入了您要用于填充ListBox控件值。3.在工具菜
21、单,指向宏,然后单击VisualBasic编辑器。4.在插入菜单上,单击要在工作簿中插入UserFormUserForm。5.将ListBox控件添加到UserForm。6.在视图菜单上,单击属性以查看属性窗口。7.键入值,对于下列ListBox控件属性表示:PropertyValue-MultiSelect1-frmMultiSelectMultiRowSourceSheet1!A1:A88.将CommandButton控件添加到UserForm。9.双击以显示代码窗口对于UserFormCommandButton控件。10.在代码窗口,为CommandButton1Click事件键入下列代
22、码:SubCommandButton1_Click()LoopthroughtheitemsintheListBox.Forx=0toListBox1.ListCount-1Iftheitemisselected.IfListBox1.Selected(x)=TrueThendisplaytheSelecteditem.MsgBoxListBox1.List(x)EndIfNextxEndSub11.在运行菜单上,单击运行子过程/用户窗体。12.列表中选择一个或多个项目。13.单击CommandButton1。单击CommandButton1,后,在ListBox控件中选择每个项目显示在一个单
23、独的消息框。UserForm在消息框中,出现所有选定项后自动关闭。如何使用RowSource属性来填充工作表上以ListBox控件要使用RowSource属性来填充工作表,上ListBox控件从范围的单元格请按照下列步骤:1.启动Excel,并打开新空白工作簿。2.在单元格A1:A5Sheet,键入了您要用于填充ListBox控件值。3.在工具菜单,指向宏,然后单击VisualBasic编辑器。4.在插入菜单上,单击要在工作簿中插入UserFormUserForm。5.将ListBox控件添加到UserForm。6.将CommandButton控件添加到UserForm。7.双击以显示代码窗口
24、对于UserFormCommandButton控件。8.在代码窗口,为CommandButton1Click事件键入下列代码:PrivateSubCommandButton1_Click()ListBox1.RowSource=Sheet1!A1:A5EndSub9.在运行菜单上,单击运行子过程/用户窗体。注意ListBox1不包含任何值。10.单击CommandButton1。ListBox1填充单元格A1:A5Sheet中有值。如何填充一个ListBox控件数组中有值下例显示您如何填充以数组ListBox控件。数组中每次为ListBox控件项必须分配值。通常,此过程要求您使用循环结构,如F
25、orNext循环。要填充以数组,ListBox控件请按照下列步骤操作:1.启动Excel,并打开新空白工作簿。2.在工具菜单,指向宏,然后单击VisualBasic编辑器。3.在插入菜单上,单击要在工作簿中插入UserFormUserForm。4.将ListBox控件添加到UserForm。5.在插入菜单上,单击要插入模块表模块。6.在代码窗口,键入如下代码:SubPopulateListBox()DimMyArrayAsVariantDimCtrAsIntegerMyArray=Array(Apples,Oranges,Peaches,Bananas,Pineapples)ForCtr=LB
26、ound(MyArray)ToUBound(MyArray)NextUserForm1.ShowEndSub7.然后单击运行在工具菜单上,、PopulateListBox,和宏。PopulateListBox过程建立简单数组,并数组中通过使用AddItem方法添加到ListBox控件项目。然后,UserForm出现。如何使用工作表上水平的单元格区域来填充一个ListBox控件如果将ListBox控件的RowSource属性到水平区域的单元格,ListBox控件中第一个值只会出现。要通过使用AddItem方法,ListBox控件从水平区域的单元格填充请按照下列步骤操作:1.启动Excel,并打开
27、新空白工作簿。2.在单元格A1:E1Sheet,键入了您要用于填充ListBox控件值。3.在工具菜单,指向宏,然后单击VisualBasic编辑器。4.在插入菜单上,单击要在工作簿中插入UserFormUserForm。5.将ListBox控件添加到UserForm。6.在插入菜单上,单击要插入模块表模块。7.在代码窗口,键入如下代码:SubPopulateListWithHorizontalRange()ForEachxInSheet1.Range(A1:E1)NextUserForm1.ShowEndSub8.然后单击运行在工具菜单上,、PopulateListWithHorizonta
28、lRange,和宏。在单元格A1:E5Sheet,将值添加到ListBox1一次循环宏过程。A1:E5单元注意ListBox1与不定Sheet1上。如何从ListBox控件绑定到多列的数据返回多个值您可以格式ListBox控件以显示多个列的数据。这意味着ListBox控件,每个列表行上显示多个项目。要多值列表,中选定项收益请按照下列步骤操作:1.启动Excel,并打开新空白工作簿。2.Sheet由该单元格中键入以下数据:A1:年B1:区域C1:销售A2:1996B:北美C2:1403:1996B3:南非C3:210A4:1997B4:北美C4:190A5:1997B5:南非C5:1953.在工
29、具菜单,指向宏,然后单击VisualBasic编辑器。4.在插入菜单上,单击要在工作簿中插入UserFormUserForm。5.将Label控件添加到UserForm。6.将ListBox控件添加到UserForm。7.右击ListBox,然后单击属性。8.键入或选择值,都表示为下列属性对ListBox控件与下表中列出:PropertyValue-BoundColumn1ColumnCount3ColumnHeadsTrueRowSourceSheet1!A2:A59.双击ListBox控件以显示代码窗口对ListBox控件。10.在代码窗口,键入如下代码:PrivateSubListBox
30、1_Change()DimSourceDataAsRangeDimVal1AsString,Val2AsString,Val3AsStringSetSourceRange=Range(ListBox1.RowSource)Val1=ListBox1.ValueVal2=SourceRange.Offset(ListBox1.ListIndex,1).Resize(1,1).ValueVal3=SourceRange.Offset(ListBox1.ListIndex,2).Resize(1,1).ValueLabel1.Caption=Val1&Val2&Val3EndSub11.在运行菜单上,单击运行子过
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1