「窗體」工具欄控制項和「控制項工具箱」控制項基礎

(fanjy版主原創)

在工作表菜單「視圖——工具欄」或在菜單欄點擊右鍵,在下拉菜單中有兩個內容比較相似工具欄,即「窗體」工具欄和「控制項工具箱」工具欄,如下圖所示。

窗體:

此主題相關圖片如下:

控制項工具箱:

此主題相關圖片如下:

其中:

「窗體」工具欄有16個命令按鈕,依次為:標籤、編輯框,分組框、按鈕、複選框、選項按鈕,列表框、組合框,組合式列表編輯框、組合式下拉編輯框,滾動條、微調項,控制項屬性、編輯代碼,切換網格、執行對話框。

「控制項工具箱」是提供ActiveX控制項的工具欄,有15個命令按鈕,依次為:設計模式、屬性、查看代碼,複選框、文本框、命令按鈕、選項按鈕、列表框、組合框、切換按鈕、數值調節鈕、滾動條、標籤、圖像,其他控制項。其中某些控制項看上去與「窗體」工具欄中的控制項相同,功能也相似,還有一些控制項(例如,切換按鈕和圖像控制項)在「窗體」工具欄上不可用。「控制項工具箱」還包含通過其他程序安裝的自定義ActiveX控制項,例如:通過Microsoft Internet Explorer安裝的Active Movie控制項。

4.1、一些概念

控制項是放置於窗體上的一些圖形對象,可用來顯示或輸入數據、執行操作或使窗體更易於閱讀。這些對象包括文本框、列表框、選項按鈕、命令按鈕及其他一些對象。控制項提供給用戶一些可供選擇的選項,或是某些按鈕,單擊後可運行宏程序。Microsoft Excel 有兩種類型的控制項。ActiveX 控制項即控制項工具箱控制項適用於大多數情況,與 Microsoft Visual Basic for Applications (VBA) 宏和 Web 腳本一起工作。「窗體」工具欄上的控制項與 Excel 5.0 以後的 Excel 早期版本都是兼容的,並且能在 XLM 宏工作表中使用。ActiveX控制項一般為完全可編程的對象,開發者能夠使用它們在原應用程序基礎上創建自定義的應用程序。4.2、Excel中的兩類控制項◆ 窗體工具條中的控制項這類控制項在Excel工作表中是可用的,它們不是ActiveX控制項,與控制項工具箱中的控制項不一樣,並且不如ActiveX控制項靈活。但是,對大多數Excel用戶來說,這種差異基本上不妨礙他們對控制項的使用。您如果需要在工作表中錄製所有的宏並指定給控制項,但又不願在 VBA 中編寫或更改任何宏代碼,那麼您可以使用「窗體」工具欄中的控制項。您還可以在圖表工作表中使用「窗體」工具欄上的控制項。可以在工作表窗體上使用這些控制項,而其他用戶則可以使用Excel來填寫工作表窗體。您能通過菜單「視圖——工具條——窗體」命令打開窗體工具條,接著只需在該工具條中單擊您想使用的控制項,然後在工作表中單擊即可放置控制項在工作表中。您能在該控制項上單擊右鍵,選擇「指定宏」將宏程序指定給控制項。如果該控制項是一個命令按鈕,在您放置控制項在工作表中時,會立即彈出要求您「指定宏」對話框,您可以為該按鈕控制項指定宏,當然,您也可在以後為該控制項指定宏。在指定宏後,當用戶單擊該控制項時,控制項將運行宏。此外,在控制項上單擊右鍵,選擇「設置控制項格式」命令,您可以對控制項進行格式設置,但是「標籤」控制項和「命令按鈕」控制項的控制項格式設置頁中沒有「控制」卡選項。對不同類型的控制項,可利用的選項也不同。除了「標籤」控制項和「命令按鈕」控制項以外,您都能將一個控制項與工作表中的一個單元格相鏈接。這樣,當您使用該控制項時,相關值將會出現在單元格中。就「組合框」控制項、「列表框」控制項、「滾動條」控制項和「滑動條」控制項來說,其值為數字。例如,如果您將一個組合框與單元格A1相鏈接並將數據源區域設置為B2:B11,那麼每次從組合框中選取一個項目時,在相鏈接的單元格A1中將以數字顯示該項目在組合框中的位置,即當您在組合框中選中第個2項目時,單元格A1中顯示2。如果與單元格相鏈接的是一個「選項按鈕」控制項或者是「複選框」控制項,那麼當您使用該控制項時,與控制項下鏈接的單元格將顯示True(選中)或False(未選中)。您可以在公式中使用鏈接的單元格值獲取您相要的結果。例如,如果您使用一個鏈接到單元格A1中的組合框,源數據區域為B1:B11且在區域C2:G11中包括有您想要查找的數據,然後使用VLOOKUP函數根據單元格A1中的值返回D列中相應的結果,公式如下:=VLOOKUP($A$1,$B$2:$G$11,3,False)或者如果您將單元格區域命名(建議這樣做),則公式如下:=VLOOKUP(ComboLink,DataTable,3,False)上面所提到的內容是Excel用戶經常要用到的。您可以花些時間來試驗這些控制項,將會發現有很多好的用法和技巧。但是,「窗體」工具欄控制項不能像 ActiveX 控制項一樣用於控制項事件。此外,在網頁中不可使用「窗體」工具欄控制項運行 Web 腳本。◆ 控制項工具箱中的控制項這些控制項都是ActiveX控制項,它們比窗體工具條中的控制項要更靈活,是VBE中用戶窗體控制項的子集,在Excel工作表中和VBE編輯器中都是可用的,尤其在要對使用控制項時發生的不同事件進行控制時。我們能捕獲這些控制項的事件,這也是其靈活的主要原因。這些事件可能是單擊、雙擊、變化(例如對組合框控制項項目進行新的選擇),用戶能離開這個控制項並轉移焦點到另一個控制項或返回到Excel界面,等等。ActiveX控制項也有一個長的屬性列表,如字體(Font)、標題(Caption)、名稱(Name)、單元格鏈接(Linked Cell)、高度(Height),等等。這些屬性取決於控制項的類型,但所有控制項都有諸如名稱(Name)屬性和一些其它的屬性。ActiveX 控制項也具有可自定義的屬性。例如,可指定當用戶指向控制項時指針的外觀。您可編寫宏,響應與 ActiveX 控制項相關的事件。可在 Excel 窗體上和 VBA 程序窗體和對話框中使用 ActiveX 控制項。在使用控制項時,如果不使用帶有控制項事件的VBA代碼,則很少使用ActiveX控制項;如果您不熟悉VBA,您應該選擇使用窗體工具條控制項。ActiveX 控制項與在Visual Basic編程語言中使用的控制項相類似,是可以添加到Visual Basic編輯器自定義窗體中的控制項。將 ActiveX 控制項添加到工作表中時,您應編寫引用控制項標識號的宏代碼,而不是分配在單擊控制項時要運行的宏。當窗體的用戶使用控制項時,將運行您編寫的宏代碼來處理髮生的任何事件。當添加一個ActiveX控制項到工作表中時,它被內嵌入工作表成為工作表的一個對象成員,並自動處於「設計模式」,允許我們對控制項進行處理而不會引發控制項事件。為了能捕獲控制項的任何事件,該事件程序應放置在工作表對象的模塊中,您能(在處於設計模式時)通過在控制項上雙擊進入代碼模塊,並顯示出該控制項的預設過程。為了指定您想要的事件過程,您也可以在代碼模塊編輯器右上方的事件過程下拉列表中選擇相應的事件過程。但是,不可在圖表工作表或XLM宏工作表中使用控制項。對於這些情況,您應使用「窗體」工具欄上的控制項。如果要從控制項直接運行附加的宏,最好也應使用「窗體」工具欄控制項。對於要放到網頁上的Excel窗體和數據,可包含ActiveX控制項,並可編寫在Web瀏覽器中使用控制項時要運行的Web腳本(而不是宏代碼)。還可通過使用Microsoft腳本編輯器編寫 VBScript 或JavaScript形式的腳本。

4.3、窗體工具條控制項介紹

4.3.1「標籤」控制項:

用於顯示文本信息。

4.3.2「編輯框」控制項:

在現行版本的Excel中不可用,提供此控制項是為了使用Excel 5.0工作表。

4.3.3「分組框」控制項:

將相關控制項進行組合,如選項按鈕控制項或複選框控制項。其有一個3D陰影屬性,可以三維陰影效果顯示組合框。

4.3.4「按鈕」控制項:

用於單擊時運行相應的宏過程。

4.3.5「複選框」控制項:

可選中一個或同時選中多個複選框,以打開或者關閉某選項。其值確定複選框的狀態,即該複選框是處於未選擇、已選擇或混合狀態;單元格鏈接即是返回複選框狀態值的單元格,若選中複選框,則與其相鏈接的單元格值為True;若未選擇複選框,則與其相鏈接的單元格值為False;若複選框處於混合狀態,則與其相鏈接的單元格值為#N/A;若與其相鏈接的單元格為空,則Excel認為複選框狀態為False。選中3D陰影將以三維陰影效果顯示複選框。

4.3.6「選項按鈕」控制項:

可從幾個選項中僅選中一個。其值確定選項按鈕的狀態,即該按鈕是處於選中還是未選中狀態。單元格鏈接將在與其相鏈接的單元格中返回選項組中選定的選項按鈕的編號。您應對選項組中的所有選項應使用相同的「單元格鏈接」單元格,這樣可將其返回的數字用在公式或宏中,從而響應所選的選項。如果所創建的個人窗體中含有兩個選項按鈕,分別標記為「專職」和「兼職」,您可以將這兩個按鈕鏈接到 C1 單元格上。如果選中第一個選項按鈕,下面的公式顯示「專職」;如果選中第二個選項按鈕,則顯示「兼職」。=IF(C1=1,"Full-time","Part-time")同樣,選中選中3D陰影將以三維陰影效果顯示選項按鈕。

4.3.7「列表框」控制項:

顯示項目列表。其中數據源區域為對單元格區域的引用,列表框中顯示了該區域的數值;單元格鏈接為與列表框控制項相鏈接的單元格,將顯示列表框中選定的項目的編號(列表框中的第一項為1),可在公式或宏中使用此數字來從數據源區域中返回實際的項。例如,如果某個列表框鏈接到 C1 單元格,且其數據源區域為 D10:D15,那麼下面的公式將基於列表中選定的內容,從數據源區域 D10:D15 中返回相應的值:=INDEX(D10:D15,C1)選定類型指定在列表中選定項目的方式。如果將選定類型設置為「複選」或「擴展」,那麼「單元格鏈接」所指定的單元格將被忽略。選中3D陰影將以三維陰影效果顯示列表框。

4.3.8「組合框」控制項:

是一個下拉列表框,在此列表框中選中的項目將顯示在文本框中。其中數據源區域為對單元格區域的引用,下拉列表框中是顯示了該區域的數值;單元格鏈接為與組合框控制項相鏈接的單元格,顯示在組合框中選定的項目的編號(列表中的第一項為1)。可在公式或宏中使用此數字來從數據源區域中返回實際的項,例如,如果某個組合框鏈接到 C1 單元格,且其數據源區域為 D10:D15,那麼下面的公式將基於列表中選定的內容,從數據源區域 D10:D15 中返回相應的值:=INDEX(D10:D15,C1)下拉行指定在下拉列表中一次性要顯示的行數。選中3D陰影將以三維陰影效果顯示組合框。

=INDEX(D10:D15,C1)下拉行指定在下拉列表中一次性要顯示的行數。選中3D陰影將以三維陰影效果顯示組合框。

4.3.9「組合式列表編輯框」控制項:

在現行版本的Excel中不可用,提供此控制項是為了使用Excel 5.0工作表。

4.3.10「組合式下拉編輯框」控制項:

在現行版本的Excel中不可用,提供此控制項是為了使用Excel 5.0工作表。

4.3.11「滾動條」控制項:

當單擊滾動箭頭或拖動滾動塊時,可以滾動通過一定的數據區域;當單擊滾動箭頭與滾動塊之間的區域時,可以滾動整頁數據。其中當前值表示滾動塊在滾動條中的相對位置;最小值表示滾動塊處於垂直滾動條的最上端或水平滾動條的最左端的位置;最大值表示滾動塊處於垂直滾動條的最下端或水平滾動條的最右端的位置;步長為單擊滾動條任意一側的箭頭時,滾動塊所移動的距離;頁步長為單擊滾動塊與箭頭之間的區域時,滾動塊移動的距離。單元格鏈接指定與控制項相鏈接的單元格,在單元格中返回滾動塊的當前位置。這一返回值可用於公式或宏中,從而根據滾動塊的位置做出響應。3D陰影以三維陰影效果顯示滾動條。

4.3.11「微調按鈕」控制項:

用於增大或減小數值。若要增大數值,可單擊向上箭頭;若要減小數值,可單擊向下箭頭。其中當前值表示微調按鈕在其允許值範圍內的相對位置;最小值表示微調按鈕可取的最低值;最大值表示微調按鈕可取的最高值;步長表示單擊箭頭時,微調按鈕增大或減小的量。單元格鏈接項中為與控制項相鏈接的單元格,在單元格中返回微調按鈕的當前位置。此數值可用於公式或宏中,以返回微調按鈕選定的真實值。3D 陰影以三維陰影效果顯示微調按鈕。

4.4、控制項工具箱中的控制項簡介

4.4.1「複選框」控制項:

4.4.1「複選框」控制項:

可用於多個選項選擇。

4.4.2「組合框」控制項:

是一個下拉框,一次只能顯示一個條目,還可允許用戶輸入沒有出現在列表條目中的值。

4.4.3「命令按鈕」控制項:

用於確定或取消程序的執行。

4.4.4「圖像」控制項:

用於顯示圖形圖像。

4.4.5「標籤」控制項:

用於顯示文本信息。

4.4.6「列表框」控制項:

顯示項目列表,用戶可從中選擇一個或多個條目。

4.4.7「選項按鈕」控制項:

可使得用戶僅能從選項中選擇一個條目。

4.4.8「滾動條」控制項:

可以使用戶調節數值,用戶可拖放滾動條按鈕。

4.4.9「數值調節鈕」控制項:

允許用戶單擊其中一個箭頭來選擇某個值。

4.4.10「文本框」控制項:

允許用戶輸入文字。

4.4.11「切換按鈕」:

允許在開或關兩種狀態之間切換。

此外,還可添加或編輯 ActiveX 控制項。在「控制項工具箱」中還包含許多由 Excel 及其他程序安裝的 ActiveX 控制項,如 Calendar Control 9.0、Windows Media Player 和 Snapshot Viewer Control 11.0。但並非所有 ActiveX 控制項都可以直接在工作表中使用;其中一些只能在VBA用戶窗體中使用。對於這類控制項,如果試圖將其添加到工作表中,Excel 會顯示「不能插入對象」消息。

4.5、有關問題

4.5.1、如何識別哪類控制項?

4.5.1、如何識別哪類控制項?

要確定控制項類型,您可以右鍵單擊該控制項,會顯示快捷菜單:(1)如果快捷菜單包含「屬性」命令,則該控制項為「控制項工具箱」中的 ActiveX 控制項,且您處於「設計」模式。 (2)如果快捷菜單包含「指定宏」命令,則該控制項為「窗體」工具欄控制項。 (3)如果快捷菜單包含「編輯文字」命令,則該對象為「繪圖」工具欄對象。如果右鍵單擊控制項以顯示快捷菜單時卻沒有響應,則該控制項是 ActiveX 控制項且您不在「設計」模式下。若要顯示 ActiveX 控制項的快捷菜單以編輯屬性或查看宏代碼,則必須處於設計模式。請執行以下操作: (1)如有必要,可顯示「控制項工具箱」(指向「視圖」菜單上的「工具欄」),然後單擊「控制項工具箱」。 (2)要進入或退出設計模式,可點擊切換「設計模式」 。

4.5.2、不能通過鍵盤訪問工作表上的控制項和對象?

您無法為「窗體」工具欄控制項或「繪圖」工具欄上的對象定義加速鍵。但是可以通過設置它們的「加速」屬性來為某些 ActiveX 控制項指定加速鍵。 您無法為工作表窗體上的控制項或對象定義Tab 鍵順序。但是可以通過使用「查看Tab鍵順序」對話框(選擇Visual Basic編輯器中的「視圖」菜單下的「Tab鍵順序」),來定義VBA用戶窗體上的Tab鍵順序。

4.5.3、部分或全部「窗體工具條」和「控制項工具箱」按鈕變灰,無法使用?

控制項變暗或「變灰」有多種原因,其中,「編輯框」控制項、「組合式列表編輯框」控制項、「組合式下拉編輯框」控制項、「執行對話框」控制項在現行Excel工作簿中是不可用的,因此始終變灰顯示,這些控制項僅與Excel5.0對話工作表一起使用。您當前處於單元格的數據輸入模式下,因此「窗體」和「控制項工具箱」工具欄上的所有按鈕都變暗。您可能不經意地進入了被控制項覆蓋的單元格的數據輸入模式,或者網格線被隱藏您無法方便地看見單元格。按Esc以退出單元格數據輸入模式。 「控制項屬性」 按鈕永遠不會對「窗體」工具欄上的「標籤」 、「按鈕」 和「分組框」 控制項啟用。 如果您不處於「設計」模式且激活了 ActiveX 控制項,則「屬性」 和「查看代碼」 按鈕不會啟用。

4.5.4、無法列印工作表上的控制項或對象?

您已經清除了「列印對象」複選框(在「窗體」工具欄控制項的「設置控制項格式」對話框的「屬性」選項卡上),或者將 ActiveX 控制項的「PrintObject」屬性設置為「False」。列印工作表時,必須將「列印對象」複選框或「PrintObject」屬性設置為「True」,才能列印控制項。

4.5.5、無法調整複選框或選項按鈕的大小?

在「窗體」工具欄和「控制項工具箱」的「複選框」和「選項按鈕」控制項中,控制項內部及文本左側的複選框和選項按鈕的大小是固定的。沒有辦法調整大小。

4.5.6、如何使控制項與單元格網路線對齊?

若要使控制項按照單元格網格線對齊,請按住 Alt 再拖動控制項。

--------------------完-------------------------------

推薦閱讀:

查看原文 >>
相關文章