ExcelVBA(08)窗体和控件基础部分
⼀、窗体的基本操作
1、窗体插⼊
2、运⾏窗体
要么直接在窗体的界⾯点击运⾏按钮
要么⽤代码调⽤窗体的 show ⽅法
3、关闭窗体
代码关闭是 unload testform⽅法
4、显⽰设置
窗体标题:caption
背景⾊:backcolor
背景图⽚:picture,代码⾥⾯可以使⽤loadpicture()⽅法进⾏加载
属性窗⼝⾥⾯可以查看
5、位置⼤⼩
top、left、height、width
startupPosition 启动显⽰位置
6、显⽰⾏为
showModal 的值就是 true 或者false 可以设置显⽰窗体的时候是否可以进⾏其他的操作7、删除窗体
⼆、控件的基本操作
1、控件插⼊
2、删除
3、对齐
菜单栏格式⾥⾯
可以选中多个控件进⾏布局的操作
4、tab键相关
5、控件循环
所有控件集合 controls
controls(index) controls("name")可以选定具体的控件
6、控件类型判断
typename 判断控件类型
Private Sub UserForm_Click()
For i =0To Controls.Count -1
If TypeName(Controls(i))="TextBox"Then
MsgBox Controls(i).Value
End If
Next i
End Sub
窗体事件
和前⾯讲的⼯作表事件等是⼀样的,只需要特别注意⼀下键盘事件和⿏标事件
⼀、键盘事件
1、keydown
keyCode 唯⼀,shift 参数不同的值分别代表ctrl、shift、alt
Private Sub UserForm_KeyDown(ByVal KeyCode As MSForms.ReturnInteger,ByVal Shift As Integer)
''''''''''''''code
End Sub
2、keyup
Private Sub UserForm_KeyUp(ByVal KeyCode As MSForms.ReturnInteger,ByVal Shift As Integer)
''''''''''''''code
End Sub
3、keypress
Private Sub UserForm_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
''''''''''''''code
End Sub
keydown keypress 都是按键按下,但是⼀般使⽤keydown,功能更加强⼤
⼆、⿏标事件
1、mousedown
button不同的值分别代表左右和中键
shift 也是和上⾯⼀样
x 和 y 就是⿏标的位置坐标
Private Sub UserForm_MouseDown(ByVal Button As Integer,ByVal Shift As Integer,ByVal X As Single,ByVal Y As Single)
End Sub
2、mouseup
Private Sub UserForm_MouseUp(ByVal Button As Integer,ByVal Shift As Integer,ByVal X As Single,ByVal Y As Single)
End Sub
3、mousemove
Private Sub UserForm_MouseMove(ByVal Button As Integer,ByVal Shift As Integer,ByVal X As Singl
e,ByVal Y As Single)
End Sub
vba⼀⾏的代码很长的话可以使⽤空格加下划线然后enter的⽅式进⾏换⾏
标签和按钮
⼀、按钮
1、快捷键设置
就是设置 Accelerator 属性,然后通过 alt 键加设置的键就可以激活按钮的 click 事件
2、enter 和 esc 响应
就是 default 和 cancel 属性都设置为true,然后窗体显⽰并且焦点在按钮上的时候按 esc 和 enter 就会激发按钮的 click 事件
⼆、标签
label 标签基本就是⽤来显⽰⼀定的提⽰内容
具体的属性使⽤的时候可以通过属性窗⼝进⾏摸索
⽂字框
maxLength 和 autoTab 属性可以实现输⼊多少个字符⾃动切换
基本的事件也是可以通过名字完全看懂的,不多说
其他的使⽤基本上也是琢磨属性窗⼝的内容
列表和组合框
这两个的⽤法基本是⼀致的,就是下拉框⽐⼀般的列表更加节省空间⽽已
选项的填充可以使⽤ additem ⽅法,可以⽤数组赋值给 list 属性,可以直接引⽤单元格区域赋值到RowSource 属性选项的移除使⽤ removeitem ⽅法
⼀、combobox
listIndex 代表当前选中项的索引:ComboBox1.List(ComboBox1.ListIndex, 2)
list 可以获取到具体的某个⾏列的值,第⼀个参数是⾏数,后⼀个是列数
⼆、listbox
multiselect 设置是否可以选中多⾏
selected ⽅法可以判断选项是否选中
Private Sub ComboBox1_Change()
Label1.Caption = "选中项的返回值是:" & ComboBox1.Value End Sub
Private Sub CommandButton1_Click()
Dim arr
arr = Sheets(1).Range("a8:e15")
ComboBox1.ColumnCount =5'设置下拉框显⽰的列数
ComboBox1.BoundColumn =3'设置选中返回的列的数据
ComboBox1.TextColumn =3'设置选中下拉框的显⽰列
ComboBox1.List = arr
End Sub
Private Sub CommandButton2_Click()
ListBox1.RowSource ="Sheet1!A8:E12"
ListBox1.ColumnCount =5
ListBox1.ColumnHeads =True
ListBox1.BoundColumn =3
ListBox1.TextColumn =2
End Sub
Private Sub CommandButton3_Click()
MsgBox ComboBox1.List(ComboBox1.ListIndex,2)
End Sub
vba做excel窗体录入教程Private Sub CommandButton4_Click()
For i =0To ListBox1.ListCount -1
If ListBox1.Selected(i)Then
MsgBox ListBox1.List(i,2)
End If
Next i
End Sub
单选、复选、框架、多页
⼀、单选、复选、框架
单选和复选必须要通过框架才能成组
不然对于单选框⼀个窗体的话只能有⼀个被选中
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论