做Excel 表格的時候,會有一些高級功能,需要添加一些表單控制項或Activex控制項來增加表格的操作性。
有時候,我們需要對表單控制項進行操作,那麼如何來一一枚舉出這些控制項呢?
下面介紹一下,枚舉方法:
表單控制項類型要判斷表內shape對象type是否是msoFormControl
代碼:If shp.Type = msoFormControl Then
然後再判斷表單類型 FormControlType,分別進行處理,或調用過程函數等。
表單類型表
完整代碼
Private Sub CommandButton1_Click()Dim shp As ShapeFor Each shp In Me.Shapes '遍歷表中shapes對象If shp.Type = msoFormControl Then '如果是表單對象 Select Case shp.FormControlType '判斷表單對象類型 Case xlEditBox MsgBox shp.Name Case xlButtonControl MsgBox shp.Name & " 是個按鈕" ' MsgBox shp.FormControlType '這裡添加去執行的過程或函數 Case xlLabel MsgBox shp.Name & " 是個標籤控制項" ' MsgBox shp.FormControlType '這裡可以設置相關屬性 Case xlDropDown MsgBox shp.Name & " 是個組合框" Case xlListBox MsgBox shp.Name & " 是個列表框" Case xlCheckBox MsgBox shp.Name & " 是個複選框" Case xlOptionButton MsgBox shp.Name & " 是個選項按鈕" Case xlGroupBox MsgBox shp.Name & " 是個分組框" End Select End IfNext shpEnd Sub
後臺編程
代碼中有三個層級判斷,第一層遍歷表內所有Shapes對象,第二層判斷是不是表單對象( msoFormControl),第三層判斷對象類型(FormControlType),最內層就是自己要執行的代碼,過程或函數。
這個解釋大概就明白了,重要的是清楚表中所有元素是什麼類型的,是表單控制項還是Activex控制項,是shape對象還是Chart對象,等等。
這種判斷在控制項比較少的情況下,運行速度比較接受,如果表內對象太多,控制項數量很大,那麼可能出現假死現象,就像程序沒有任何反應,其實在瘋狂遍歷中。
如果這這篇文章對大家學習Excel 製作有用,可以關注收藏