- 帖子
- 549
- 主題
- 152
- 精華
- 0
- 積分
- 691
- 點名
- 0
- 作業系統
- WIN7
- 軟體版本
- OFFICE 2010
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2013-8-10
- 最後登錄
- 2022-9-7
 
|
6#
發表於 2015-1-20 22:32
| 只看該作者
本帖最後由 PKKO 於 2015-1-20 22:33 編輯
回復 5# diolin
感謝,又收穫了!
PO上範例說明
Collection 物件範例
本範例建立一個命名為 MyClasses 的 Collection,並且再建立一個對話方塊,讓使用者可從對話方塊中將物件新增到該集合物件中。若要觀察程式如何運作,請先在「插入」功能表上選取「物件類別模組」指令,然後在 Class1 的模組層次中宣告一個公用變數,命名為 InstanceName (Public InstanceName),此變數用來儲存每個物件類別執行個體的名稱。不要更改物件類別的預設名稱 Class1。將下列程式碼複製到另一個模組的「一般」區段中,然後在另一個程序中以 ClassNamer 陳述式來啟動之。(本範例只適用於有支援物件類別的主程式。)- Sub ClassNamer()
- Dim MyClasses As New Collection ' 建立一個集合物件 (Collection)。
- Dim Num ' 記數用變數,用來記數物件個數。
- Dim Msg As String ' 提示訊息用變數。
- Dim TheName, MyObject, NameList ' 物件資訊用變數。
- Do
- Dim Inst As New Class1 ' 建立 Class1 的新執行個體。
- Num = Num + 1 ' 把記數變數 Num 加一,然後要求使用者輸入新物件個體的名稱。
- Msg = "Please enter a name for this object." & Chr(13) _
- & "Press Cancel to see names in collection."
- TheName = InputBox(Msg, "Name the Collection Items")
- Inst.InstanceName = TheName ' 將名稱指定給新物件個體。
- ' 將使用者輸入的名稱加到集合物件中。
- If Inst.InstanceName <> "" Then
- ' 將新名稱加到集合物件中。
- MyClasses.Add item := Inst, key := CStr(Num)
- End If
- ' 將現在物件的引用釋放掉,以對下一個物件做動作。
- Set Inst = Nothing
- Loop Until TheName = ""
- For Each MyObject In MyClasses ' 建立物件名稱清單。
- NameList = NameList & MyObject.InstanceName & Chr(13)
- Next MyObject
- ' 將名稱清單以訊息方塊顯示出來。
- MsgBox NameList, , "Instance Names In MyClasses Collection"
- For Num = 1 To MyClasses.Count ' 將各物件從集合物件中移除。
- MyClasses.Remove 1 ' 因為每移除一個物件後,集合物件
- ' 本身會自動重排物件順序,故迴圈中只需要移除第一個
- Next ' 物件即可。
- End Sub
複製代碼 |
|