VBAExcel实践(⼆)Excel窗体事件、⽅法及Excel窗体属性引⾔
本⼈本次实践的⽬标是数据查询。具体实现⽅式应该是:
1. 使⽤窗体及其他控件做查询的条件的输⼊
2. 使⽤excel作为查询结果的输出
3. 从桌⾯上看应该是,前⾯⼀个窗⼝输⼊查询条件,然后点确定,后⾯有个excel显⽰结果。
4. 类似下图这种
⼀、打开窗⼝
窗体俗称对话框,在可视化的⾯向对象的编程软件中都应该有。在VBA中也有,可以打开 excel->开发⼯具
点开Visual Basic就会进⼊到变成界⾯,然后就可以插⼊窗体,如下图
⼆、窗体简介
窗体,也就是窗⼝,或者叫对话框,是vba定义的⼀个对象,或者说⼀类对象。微软对“Microsoft 窗体”对象的介绍就是下⾯⼀幅图
名称窗体名称该窗体的标识可能是唯⼀标识BackColor 背景⾊
BorderColor
边框颜⾊
只有BorderStyle为1时,这个才有效
BorderStyle 边框类型(两种)vba做excel窗体录入教程
0 fmBorderStyleNone 1 fmBorderStyleSingle
Caption 窗体左上⾓显⽰的名字  Height 窗体显⽰位置-⾼  Width
窗体显⽰位置-宽
Cycle
tab顺序指定控件接收焦点的顺序
0 fmCycleAllForms 2 fmCycleCurrentForm
选0时,使⽤tab键,会遍历所有的该窗体范围
内所有的控件;选1时,使⽤tab键,只会遍历某⼀窗体范围内的控件,tab不会跳出范围,到最后⼀个控件后会在回到该窗体范围的第⼀个控件
showmodal
窗⼝是否锁死(这个词合适)
true false
选true叫模态,false叫⾮模态
模态下,如果这个窗⼝是激活的,其他窗
体或窗⼝则不能被选中。⾮模态,反之。
我们本节所说的”窗体“就是第⼆层(UserForm)。我们可以从图中看出,窗体对象,不⽌是指UserForm,还指其他的对象,如
Controls,Font,MultiPage,等等。从⾯向对象的观点来说,这个图表⽰的应该是⼀个继承图。(我不是很熟,猜的) 如果上图是个继承关系图,那么我们可以得到⼏个结论:1. 他们的事件可以继承2. 他们的属性也可以继承
3. 且⼉⼦的属性和事件可能⽐⽗亲多。。。。
三、窗体属性简介
属性,表⽰这个窗体固有的特性,如基本的:长宽⾼,位置,颜⾊等;特殊的:如字体⼤⼩啊,有⽆滚动条啊等等所以分下类:
基础属性:外观,位置,字体
⾏为属性
ScrollBars滚动条0 fmScrollBarsNone
1 fmScrollBarsHorizontal
2 fmScrollBarsVertical
3 fmScrollBarsBoth
0 ⽆
1 ⽔平
2 垂直
3 全部
ScrollHeight ScrollTop 滚动条⾼height有值,top才填值
只有当ScrollHeight值⼤于窗体本⾝的height
时,滚动条才会显⽰。这个时候Top表⽰滚动条
离顶部的距离
ScrollWidth ScrollLeft 滚动条宽width有值,left才能填值
只有当ScrollWidth值⼤于,窗体本⾝的Width
时,滚动条才会显⽰。这个时候left表⽰滚动条
离左侧的距离
滚动条
四、窗体事件、⽅法简介
常⽤事件
Initialize
就是在初始化窗⼝时,要对窗⼝⼲的事情,⽐如给窗⼝属性赋值,给窗体内包含的控件赋初始值。Click
点击窗体时,会⼲的事情,⽐如隐藏窗体等等
Terminate
关闭窗体是要⼲的事情,⽐如保存⽂件,关闭excel等
怎么弄出来事件呢?
先在左边选中窗⼝(对象),右边基本上都是事件。。。每个对象能响应的事件可能是不⼀样多的常⽤⽅法
move,copy等等呢
怎么弄出来⽅法呢?
跟你写代码⼀样,写出这个对象在.⼀下,后⾯跟的就是⽅法和属性
⼀般⿊⾊表⽰属性,绿⾊标识⽅法。
五、Initalize 、click事件⽰例
下列⽰例假设程序中已有两个窗体UserForms。在 UserForm1 的Initalize事件中加载 UserForm2 ,并将其显⽰出来。当⽤户单击UserForm2 时,就会将其隐含起来,⽽ UserForm1 将会出现。⽽当⽤户单击 UserForm1 时,UserForm2 便会再次出现。
'这是 UserForm1 的 Initialize 事件过程
Private Sub UserForm_Initialize()
Load UserForm2
UserForm2.Show
End Sub
'这是 UserForm2 的 Click 事件过程
Private Sub UserForm_Click()
UserForm2.Hide
End Sub
' 这是 UserForm1 的 Click 事件
Private Sub UserForm_Click()
UserForm2.Show
End Sub

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。