VBA,表單及其控件,如何取得表單控件的名字,大小寫注意

 

1 如何取得表單控件的名字?

1.1 問題的由來

  • 表單控件和 表單的 activeX控件,以及窗體控件不同
  • 表單控件不能直接編寫其相關代碼,也看不到其屬性欄
  • 但是可以直接綁定一個sub 
  • 但是問題來了:如何知道表單控件的名字,方便在VBA裏設置其屬性呢?

 

1.2 所有的表單控件都屬於shapes,下面還有子類 scrollbars ,buttons 等對象集合

  • worksheet 下屬
  •         shapes 下屬
  •                buttons, scrollbars
  •                     "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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章