VBA,表单及其控件,如何取得表单控件的名字,⼤⼩写注意
1 如何取得表单控件的名字?
1.1 问题的由来
表单控件和 表单的 activeX控件,以及窗体控件不同
表单控件不能直接编写其相关代码,也看不到其属性栏
但是可以直接绑定⼀个sub
但是问题来了:如何知道表单控件的名字,⽅便在VBA⾥设置其属性呢?
1.2 所有的表单控件都属于shapes,下⾯还有⼦类 scrollbars ,buttons 等对象集合
worksheet 下属
shapes 下属
buttons, scrollbars
activex 控件
"Button 2"  或 "Scroll Bar 1"
1.3 取得表单控件的名字的⽅法1
visible 是个通⽤属性
所有的表单控件都可以设置visible
Sub test111()
Worksheets("sheet3").ScrollBars("Scroll Bar 1").Visible = True
Sheet4.Buttons("Button 2").Visible = True
End Sub
Sub test111()
Worksheets("sheet3").ScrollBars("Scroll Bar 1").Visible = False
Sheet4.Buttons("Button 2").Visible = True
End Sub
1.4 取得表单⾥所有控件的名称
可以⽤遍历的⽅式
所有控件公共的属性,shape.name
Sub test112()
Dim s1 As Shape
For Each s1 In Worksheets("sheet3").Shapes
Debug.Print s1.Name
Next
End Sub
2 表单控件的命名格式
2.1 表单控件的命名格式,中间有空格---Activex和窗体控件没有
系统⾃动命名
⽆法修改
命名中间有空格
scrollbar  命名为  Scroll Bar 1 等,⽽ActiveX控件或窗体控件命名为:ScrollBar1
commadbutton 命名为 button 1 等
2.2 ⼀般情况下,⼀定要⾸字母⼤写。。。即使⽤在⽂本内  "Scroll Bar 1"
规范写法,都要写成  Scroll Bar 1 这种
2.2.1 在查表单控件名的时候,随便⼤⼩写都可以识别
Sub test111()
Worksheets("sheet3").ScrollBars("scroll Bar 1").Visible = False
Sheet4.Buttons("button 2").Visible = True
End Sub
2.2.2 如果在其他情况,⽐如下⾯的例⼦,只能严格⽤ "Scroll Bar 1"
这个例⼦⾥,如果写成 "scroll bar 1",都会不到shape!!
Sub test_scrollbar1()
Debug.Print "开始运⾏"
Dim s1 As Shape
For Each s1 In Worksheets("sheet3").Shapes
If s1.Name = "Scroll Bar 1" Then
Debug.Print "到了"
s1.Select
Selection.Value = 0
For i = 1 To 1000
Selection.Value = i
Worksheets("sheet3").Cells(6, 6) = i
Next
Else
Debug.Print "没到"
End If
Next
Debug.Print "运⾏结束"
End Sub

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