VBA 窗体对象的使用
1、显示窗体:
Sub ShowForm() Load InputForm '加载“InputForm”窗体 '加载窗体就是初始化窗体,为窗体分配内存,但不显示窗体。 InputForm.Show '显示“InputForm” End Sub
如果在调用窗体的Show方法之前没有加载窗体,Excel会自动加载该窗体,然后再显示它。
所以,在程序中使用代码显示一个窗体,通常直接调用Show方法,而省略了加载的语句。
Sub ShowForm() InputForm.Show '显示“InputForm” End Sub
Sub ShowForm() InputForm.Show '显示“InputForm” End Sub
2、设置窗体的显示位置 默认情况下,显示一个窗体后,Excel会将其显示在Excel窗口的中心位置,但也可以通过设置属性来定义其显示位置。 例如: (备注:要自定义窗体显示在屏幕上的位置,应先将窗体的StartUpPosition属性设为0,这样才能设置)
Sub ShowForm11() With InputForm .StarUpPosition = 0 '设置窗体初次显示时的位置由用户定义 .Top = 100 '设置窗体顶端离屏幕窗口顶端的距离 .Left = 200 '设置窗体左端离屏幕窗口左端的距离 .Show End With End Sub
3无模式窗体和有模式窗体 模式窗体不能操作窗体之外的对象;程序将暂时停止执行“显示窗体”命令之后的代码,直到关闭或者隐藏窗体, 并且只有关闭或者隐藏窗体之后,才可以操作窗体外的其他对象。 将名称为InputForm的窗体显示为模式,代码如下:
InputForm.Show
或者: InputForm.Show vbmodal
通过菜单命令或直接调用窗体的Show方法显示的都是模式窗体,所以,如果想将一个窗体显示为模式窗体,直接调用Show方法显示这个窗体就可以了。
无模式窗体允许进行窗体外的其他操作。 要将窗体显示为无模式窗体,必须通过show方法的参数指定,
例如: InputForm.Show vbmodeless
如果将窗体显示为无模式窗体,当窗体显示后,系统会继续执行程序中余下的代码,也允许我们操作窗体之外的其他对象。
4关闭或隐藏已显示的窗体 关闭窗体最简单的方法就是单机窗体右上角的【关闭】按钮。 关闭窗体的代码如下: Unload InputForm 或者: Unload Me “Unload 窗体名称”可以关闭任意的窗体。但是使用“Unload Me”只能关闭代码所在的窗体。
如果只是想隐藏而不是关闭窗体,可以使用窗体对象的Hide方法。
语法如下: 窗体名称.Hide
或者: Me.Hide
关闭和隐藏窗体的区别: 用Unload InputForm语句关闭窗体不但会将窗体从屏幕上删除,还会将其从内存中卸载。 当窗体从内存中卸载后,窗体及窗体中的控件都将还原成最初的值,代码将不能操作或访问窗体及其中的控件,也不能再访问保存在窗体中的变量。 如果使用Hide方法隐藏窗体,只会将窗体从屏幕上删除,但窗体依然被加载在内存中。此时,依然可以访问窗体中控件的属性。