用戶在圖12-6 中可以看到,如果僅僅只靠設置對象的屬性,還 不能設置出滿意的窗體。如列表框和組合列表框的選項就無法通過 設置屬性來設置。此時需要調用對象的各種方法來設置。
對象的方法很多,對象不同,方法也不盡相同。列表框和組合列 表框都有一個AddItem 方法,通過調用這個方法,即可在列表框和 組合列表框中加入相應的選項。
為了在文檔打開時能夠自動對窗體的對象進行初始化,可以在 AutoOpen 過程中調用,其代碼如下:
Public Sub AutoOpen()
ListBox1.AddItem "黨員"
ListBox1.AddItem "團員"
ListBox1.AddItem "民主黨派"
ListBox1.AddItem "無黨派人士"
ComboBox1.AddItem "北京"
ComboBox1.AddItem "廣西"
ComboBox1.AddItem "廣東"
ComboBox1.AddItem "陜西"
ComboBox1.AddItem "山西"
ComboBox1.AddItem "山東"
End Sub
通過以上代碼,在打開文檔時如果設置了運行自動宏,即可顯示如圖12-7 所示的 界面。
如果【選項】對話框的【編輯器】選項卡中設置了【自動列出成 員】復選框,那么在輸入某個對象的名稱后輸入“.”,即可在屏幕上列出該對象的方法和屬性,圖12-8 所示的是自動組合列表框的成 員。
對象的方法前面由圖標來標識,其他的為該對象的屬性。下面 介紹VBA 中經常用到的一些方法及其意義。
Add 方法
用于在 TabStrip 或多頁中添加或插入一個標簽或頁,或通過其 程序設計標識符 (ProgID)在頁或窗體中添加控件。
- 語法:
對于多頁和 TabStrip :Set Object = object.Add( [ Name [, Caption [, index]]])
對于其他控件:Set Control = object.Add( ProgID [, Name [, Visible]])
Add 方法的語法包括表12-6 所示成分。
AddItem 方法
對于單列的列表框或組合框,在列表中添加一項。對于多列的列 表框或組合框,在列表中添加一行。 - 語法
Variant = object.AddItem [ item [, varIndex]]
AddItem 方法的語法有表12-7 所示的成分。
Clear 方法
從一個對象或集合中刪去所有對象。 - 語法
object.Clear
object 為必需的有效對象。
Copy 方法
將對象的內容復制到剪貼板上。 - object.Copy
object 為必需的有效對象。
Cut 方法
從一個對象中刪除選定的信息并將它送到剪貼板。
語法
object.Cut
object 為必需的有效對象。
DropDown 方法
顯示組合框的列表區(qū)。
語法
object.DropDown
object 為必需的有效對象。
在組合框中使用DropDown 方法打開組合框中的列表。
GetFormat 方法
返回一個整數(shù)值,表明指定的格式是否在 DataObject 上。
語法
Boolean = object.GetFormat(format)
GetFormat 方法的語法成分如表12-8 所示。
設置
format 的設置如表12-9 所示。
GetFromClipboard 方法
從剪貼板復制數(shù)據(jù)到 DataObject。 - 語法
String = object.GetFromClipboard( ) - 說明
DataObject 可以包含多個數(shù)據(jù)項,但每個數(shù)據(jù)項必須有不同的 格式。例如,DataObject 可以包含一個文本項和用戶定義項,但不 能同時有兩個文本項。
GetText 方法
用特定的格式在 DataObject 中檢索一文本串。 - 語法
String = object.GetText([ format])
GetText 方法的語法成分如表12-10 所示。
說明
DataObject 支持多種格式,但只支持每種格式的一個數(shù)據(jù)項。 例如,DataObject 可能包含一個文本項和一個自定義格式的項;但 不能包含兩個文本項。
如果不指定格式,GetText 方法要求從 DataObject 中得到文本 格式的信息。
Item 方法
返回集合的一個成員,無論按位置,還是按名稱。
語法
Set Object = object.Item(collectionindex)
Item 方法的語法成分如表12-11 所示。
設置
collectionindex 可以是字符串,也可以是整數(shù)。如果是字符串, 則必須是一個有效的成員名。如果是一個整數(shù),其最小值為 0,而 最大值比集合中的項目數(shù)少 1。
Move 方法
移動一個窗體或控件,或者移動Controls 集合中的所有控件。
語法
對于窗體或控件
object.Move([ Left [, Top [, Width [, Height [, Layout]]]]])
對于 Controls 集合
object.Move(X, Y)
Move 方法的語法成分如表12-12 所示。
設置
Left、Top、Width、Height、X 和Y 參數(shù)的最大值和最小值,隨應用程序的不同而 不同。
Paste 方法
把剪貼板上的內容傳送到一個對象。
語法
object.Paste
說明
將粘貼到組合框或者文本框中的數(shù)據(jù)作為文本來處理。
粘貼方法若用于窗體,可將任何對象粘貼到窗體上。
PutInClipboard 方法
將數(shù)據(jù)從 DataObject 移到剪貼板上。
RedoAction 方法
其作用與目前大多數(shù)撤消操作相反。應用程序的不同而 不同。
語法
Boolean = object.RedoAction
說明
重復取最后一個撤消操作的相反結果,這個撤消不一定是最后一個采取的動作。不是所有的操作都能撤消的。
例如,往文本框中粘貼文本之后,然后選擇【撤消】命令刪除這段文本,那么用【重復】命令又可以把這段文本放回去。
如果 RedoAction 成功,它返回 True。
Remove 方法
從集合中刪除一個成員,或者從框架、頁面或窗體中刪除一個控件。
語法
object.Remove(collectionindex)
Remove 方法的語法成分如表12-13 所示。
說明
此方法只刪除在運行時間添加的控件。但如果想刪除在設計時間添加的控件,則會 出錯。
RemoveItem 方法
從列表框或組合框的列表中刪去一行。
語法
Boolean = object.RemoveItem index
RemoveItem 方法的語法有以下幾個成分:
如果列表框被數(shù)據(jù)連接(也就是,當RowSource 屬性為列表框規(guī)定了數(shù)據(jù)源時),此方法不能從該列表中刪去一行。
Repaint 方法
重畫窗體或頁,更新顯示。
語法
Boolean = object.Repaint
說明
倘若一個對象的內容或者外貌嚴重地改變了,而且不想等待到系統(tǒng)自動重畫這個區(qū)域。那么 Repaint 方法很有用。
Scroll 方法
移動對象上的滾動條。
語法
object.Scroll([ ActionX [, ActionY]])
Scroll 方法的語法如表12-15 所示。
設置
ActionX 和 ActionY 的設置見表12-16。
SetDefaultTabOrder 方法
用默認的自上向下和自左向右的 Tab 鍵順序來為窗體上的每個控件設置TabIndex 屬性。
語法
object.SetDefaultTabOrder
說明
Microsoft 窗體設置的 Tab 鍵順序是從窗體左上角的控件開始, 向右移動。離窗體左邊緣越近的越是排在 Tab 鍵順序的前面。如果有不止一個控件到窗體左邊界的距離相同,那么 Tab 鍵順序的值便 自上向下地分配,誰在上面誰就在前面。
SetFocus 方法
將焦點移動到對象的實例中。
語法
object.SetFocus
說明
若設置焦點失敗,焦點又回到原來的對象上,并產生一個錯誤。
在默認情況下,設置焦點到一個控件并不激活該控件的窗口,也沒有將其置于其他控件的上面。
SetFocus 方法對于空的框架以及包含其他控件的框架都有效。 空的框架自身接受焦點,任何后續(xù)的鍵盤事件都作用于該框架。在 包含其他控件的框架中,焦點移到該框架中的第一個控件,后續(xù)的 鍵盤事件皆作用于擁有焦點的控件。
SetText 方法
用特定的格式復制文本串到 DataObject。
語法
object.SetText(StoreData [, format])
SetText 方法的語法成分如表12-17 所示。
StartDrag 方法
初始化針對 DataObject 的拖放操作。
語法
fmDropEffect=Object. StartDrag([Effect as fmDropEffect])
StartDrag 方法的語法成分如表12-18 所示。
設置
Effect 的設置如表12-19 所示。
說明
拖動操作開始于當前鼠標指針位置以及當前鍵盤狀態(tài),而結束于用戶釋放鼠標按鍵。拖動操作的最終效果取決于為放置目標所選的作用。
例如,控件的 MouseMove 事件可能包含 StartDrag 方法。當用戶單擊控件并移動鼠標時,鼠標箭頭將改變,以示Effect 對于放置目標是否有效。
UndoAction 方法
與最近的動作(必須是支持【撤消】命令的)相反的動作。
語法
Boolean = object.UndoAction
ZOrder 方法
將對象放在 z-順序的前面或后面。z 順序是在窗體的z 軸(深度) 方向上,窗體上的控件的視覺層次。z 順序可決定什么控件在其他控件之前。
語法
object.ZOrder([ zPosition])
ZOrder 方法的語法成分如表12-20 所示。
設置
zPosition 的設置如表12-21 所示。
說明
當幾個窗體和控件出現(xiàn)在用戶面前時,z-順序決定它們的層疊方 式。在 z-順序后面的項被它前面的項遮蓋;在z-順序前面的項總出 現(xiàn)它后面的項的上面。當 zPosition 參數(shù)被略去時,對象便被帶到 了前面。
在【設置】模式中用【置前】或【置后】命令設置 z-順序。【置 前】命令與使用 ZOrder 方法將對象放在z-順序之前的效果相同。 【置后】命令與使用ZOrder 方法將對象放在零序號之后的效果相同。
該方法不影響 Controls 集合中控件的內容或順序。
注意:
疊放命令(如【置后】或【置前】命令)不能重復或撤消。例如, 若選擇一個對象并單擊快捷菜單上的【下移一層】命令,則該操作 將不能重復或撤消。