VBA對象瀏覽器的使用方法

2021-10-27 14:18 更新

如果你想要在VBA眾多的組件和功能中自由切換,那么可以使用對象瀏覽器。這個專門的內(nèi)置工具在VB編輯器窗口是可用的。使用下面任何一種方法都可以訪問對象瀏覽器:



圖2-16 對象瀏覽器讓你在當前VBA工程里可用的所有對象,屬性和方法里瀏覽


1、按F2

2、選擇“視圖”-“對象瀏覽器”

3、點擊工具條上的“對象瀏覽器”按鈕

對象瀏覽器讓你瀏覽VBA過程中可用的對象,也可以查看它們的屬性,方法和事件。在對象瀏覽器的幫助下,你可以在VBA工程的多個過程之間快速移動。

對象瀏覽器分為三部分(參見圖2-16)。窗口的上部顯示“工程/庫”下拉列表,這里列出了所有庫名稱以及當前VBA工程里可用的所有工程名稱。庫是包含一個應用程序里對象的信息的專門文件。新的庫可以通過“引用”對話框(“工具”-“引用”)來添加。<所有庫>列出了你電腦上安裝了的所有庫中的所有對象。當你選擇一個叫“Excel”的庫時,僅僅能在Excel里執(zhí)行的對象名稱才能被看到。和Excel庫相反,VBA庫列出了所有能在VBA里執(zhí)行的對象名稱。

在“工程/庫”下拉列表框下面,有一個“搜索”文本框,讓你可以快速地在某個庫里搜索你的信息。這個地方會記住你最近搜索的四個項目。在對象瀏覽器的任何地方單擊右鍵,在快捷菜單上選擇“全字匹配”,你就可以只搜索匹配整個字的內(nèi)容。對象瀏覽器上的“搜索結果”(參見圖2-16和2-17)顯示符合搜索條件的庫,類和成員。當你輸入搜索文本并且單擊搜索按鈕,VB展開對象瀏覽器對話框以顯示搜索結果。你可以點擊“望遠鏡”按鈕右邊的“顯示/隱藏搜索結果”來顯示或者隱藏搜索結果。


圖2-17 在對象瀏覽器里搜索答案

類列表框顯示所選中的庫里面所有可用的對象類,如果你選擇VBA工程,列表顯示該工程里的對象。在圖2-16里,CommandBarComboBox 對象類被選中了。當你選中一個類,右邊的列表(成員)顯示該類可用的屬性,方法和事件。圖2-16上顯示了類CommandBarComboBox的一些成員。成員默認地按字母順序列出。然而,你可以使用對象瀏覽器快捷菜單上的“組成員”來組織這些成員列表(屬性,方法或事件)。如果你選擇“工程/庫”里面的VBA工程,成員列表框列出該工程里的所有過程。

雙擊該過程名稱,就可以進入該過程并檢查其代碼。如果你選擇類“VBA”,你將看到VB內(nèi)置的函數(shù)和常數(shù)。如果你對所選的類或成員需要更多的信息,可以點擊對象瀏覽器窗口上面的問號按鈕。對象瀏覽器下面的窗口顯示所選成員的代碼格式。如果你點擊代碼格式里綠色的連接部分,你將跳到對象瀏覽器窗口的所選成員的類或庫。代碼格式里的代碼可以被復制到Windows剪切板并且粘貼到代碼窗口里去。如果對象瀏覽器和代碼窗口都是可見的,你只要選中代碼格式里的文本,直接拖曳到代碼窗口就行了。

通過對象瀏覽器窗口上的橫豎分割線,你可以輕易地改變各個窗口的大小。你已經(jīng)發(fā)現(xiàn)了對象瀏覽器,你也許在想你如何才能讓它幫助你進行VBA編程。假設你在工作表中央放置了一個文本框,你如何讓Excel將這個文本框移動到工作表的左上方?

1.打開一個新工作表
2.選擇“視圖”-“工具欄”,然后點擊“繪圖”
3.  點擊“繪圖”上的文本框,在工作表中央畫一個文本框,并且隨便輸入什么文字
4.  選擇文本框之外的任意單元格
5.  按下Alt+F11激活VB編輯器窗口,并且選擇工程瀏覽器窗口的Personal (Personal.xls)
6.  選擇“插入”-“模塊”,增加一個新的模塊
7.在屬性窗口,給該模塊重命名:Manipulations
8.選擇“視圖”-“對象瀏覽器”,或按F2
9.  在“工程/庫”下拉列表框里選擇“Excel”類
10. 在搜索框里輸入“textbox”并點擊搜索按鈕。確保你沒有在文字間敲入空格。


圖2-18 Excel 在工作表上面的名稱框里顯示插入的對象名稱


圖2-19 使用對象瀏覽器窗口,你可以找到合適的VBA指令來編寫你自己的過程

顯示的結果表明對象Shapes掌管我們文本框操作(參見圖2-19)。從成員列表清單上看,你可以很快就知道AddTextbox方法就是用來在工作表里添加文本框的方法。代碼格式窗口顯示了使用該方法的正確語法。如果你選擇AddTextbox方法并且按F1,你將看到關于它的幫助窗口,有更詳細的關于如果使用該方法的信息(參見圖2-20)


圖2-20 要獲取對象瀏覽器找到的任何項目詳細信息,只要選擇整個項目并且按F1就可以了

當你細看AddTextbox方法的自變量和它們在幫助窗口上的解釋時,你就可以很快地知道文本框在工作表中的位置是由Left和Top屬性來決定的。你需要做的只是返回代碼窗口,編寫指令來移動文本框到工作表的左上方。

11. 關閉對象瀏覽器和幫助窗口(如果它們還是打開的)

12. 雙擊Manipulations模塊,輸入過程MoveTextBox:
Sub MoveTextBox()
            With ActiveSheet.Shapes("Textbox 1")                   ‘Text box 1在中文版本里為“文本框1”
                         .Select
                         .Left = 0
                         .Top = 0
             End With
End Sub

選擇“運行”-“運行宏”來測試這個過程

當你返回到放置該文本框的工作表時,該文本框已經(jīng)移動到了工作表的左上方了。注意,MoveTextBox程序在Shapes集合里選擇了“Text box 1”。Text box 1是工作表里第一個對象的默認名稱。你每次增加新的對象后,Excel將給它安排新的好碼(編號)。除了使用對象名稱外,你還可以引用集合成員的編號。例如,你可以輸入:

?With ActiveSheet.Shapes(1)?

來代替:

?With ActiveSheet.Shapes("Textbox 1")?

我們來用VB操縱另一個對象,你自己試試。在你放置文本框的工作表里再放置一個小圓圈。使用繪圖工具上的橢圓工具畫這個圓圈。在Manipulations模塊里插入一個新的過程,并且編寫代碼來放置圓圈。記住,Excel連續(xù)地編號。第一個對象的編號為1,第二個則為2,等等,不管這個對象的類型是文本框,橢圓或者是矩形,沒有關系。下面的過程MoveCircle演示如何將當前工作表里的橢圓移動到左上方去:
Sub MoveCircle()
            With ActiveSheet.Shapes(2)
                        .Select
                        .Left = 0
                        .Top = 0
            End With
End Sub
移動橢圓和移動文本框或者放在工作表里的其它對象類似。注意,過程中引用的是對象的編號,而非它的名稱橢圓 2。當你運行MoveCircle時,Excel移動的是橢圓,而不是文本框了。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號