Létrehozása objektumok gyűjteménye

Ez a könyv segít elsajátítani a VBA integrált fejlesztői környezet, és megtanulják, hogyan kell programozni a VBA-ban a tárgyak használata, azok tulajdonságait, módszerek és eseményeket. Vizsgálat programozási technikák olyan példák illusztrálják, amelyek segítségével azonnal kipróbálni a gyakorlatban. A megszerzett tudás lesz képes alkalmazni a kiigazítás és javítása népszerű Office alkalmazások, többek között az Office XP alkalmazások és a saját alkalmazásokat.
A könyv azoknak készült, akik mennek gyorsan és könnyedén megtanulják, hogyan kell programozni a Windows, a VBA.
Könyv: VBA kezdőknek
Objektumok létrehozása Collection
Objektumok létrehozása Collection
Solection objektumokat hoz létre a programban, mint bármely más tárgyat, a kulcsszó Mivel a típus azonosításához. Mint más tárgyak, akkor két lehetősége van.
* Akkor, hogy egy változót nevet az objektumot, majd használja a Set nyilatkozatot létrehozni. A Set nyilatkozatot, akkor kell használni a kulcsszó új, hogy hozzon létre egy új kollekciót. Például:
Dim colMixedBag Mint Collection
Állítsa colMixedBag = New Collection
colMixedBag.Add "Howard, Ethel"
Dim colSetOfStuff As New Collection
„A következő utasítás létrehoz egy gyűjtemény
„Szívni, egész szám
Ahhoz, hogy töltse ki a létrehozott adatgyűjtési használja Add (Hozzáadás) módszer ugyanúgy, mint, ha hozzá a tárgyak gyűjtése beépített VBA-alkalmazást (lásd 12. fejezet). Példák a Hozzáadás módszert, meg fogja találni az előző részben.
Add eljárás szintaxis a következő:
Add (element [nevet] [az előtt az index] [utáni index])
Az expressziós elem szükséges, akkor lehet szó értékét, a változó hivatkozás egy tárgy vagy egy bonyolultabb kifejezést, alkotja ezeket a komponenseket - általában minden, ami visszaadja az értéket felismerhető VBA. A másik érv az Add módszer választható, akkor tárgyalja a következő részekben.
Általában akkor mindig olvassa el a tételt a gyűjtemény az index a gyűjteményben, lo sokszor kényelmesebb rendelni egy elem leíró nevet. Ehhez ha dobayuekii elem R gyűjtemény adja a nevét, mint egy húr:
A nyilatkozat a colFinancials gyűjtemény hozzáadott érték 14323 0,44. Ugyanakkor ezen elem létrehoz egy nevet. Ez elfogadható a megadásakor a változó neve a String.
A név nem csak könnyebben megjegyezhető, mint az index, akkor, és ezen kívül az egyetlen megbízható módja annak, hogy hozzáférést egy adott elem a gyűjteményben. Amikor használja hozzáadása és eltávolítása módszer az adatok elem helyét a gyűjtemény változhat. Még ha az elem №69 lesz a 29., akkor is kihasználni az értéke ez a tétel, ha tudjuk a nevét.
A név az elem csak akkor jelöli az Add módszerrel. Ez már létezik megnevezni az elem név nélkül el kell távolítania a meglévő példányt az Eltávolítás és használja a Hozzáadás gombra egy elemet újra.
Néha kényelmes helyet a gyűjtemény elemeinek egy bizonyos sorrendben. És még ha ez nem ad hozzá elemeket a megfelelő sorrendben a sorrend, ez még mindig nem jelent problémát - Add a módszer lehetővé teszi, hogy helyezze elemek, ahol szükséges, csak fejés hogy kell használni az érveket előtt (.Előbb) és után (poszt).
Tegyük fel, hogy meg kell adnod egy új elemet, mielőtt a 35. elem a gyűjteményben.
Akkor használja ezt a nyilatkozatot a következő:
colAnimals. Add strSpecies előtt 35
A hozzáadott elem lesz a 35. eleme a gyűjtemény mozgatásával minden későbbi (relatív eltérően tömbök, gyűjtemények, elemek számozása 1) A jelentés a VBA, ahol be egy új elemet, akkor a neve egy létező elemet, például:
colOvoschi. Add = stiCopt, miután "Paradicsom"
Ebben az esetben a VBA találná a gyűjtemény már meglévő taggal nevű paradicsommal és közvetlenül azt követően kerül be egy újat.
Egyértelmű, hogy az üzemeltető a Hozzáadás módszer, ez lehetővé válik az akár a előtt vagy után, de nem mindkét érveket.
Hozzáadásához gyűjteménye elemek sokaságát lehet használni ciklust. A következő, ugyanúgy, ahogy azt tette a tömbök. Például:
Dim X As Integer, Y As Integer
colHouseOfValues.Add Y * X
Apropó nyilvánvaló, tájékoztatom Önöket, hogy a Remove eljárás eltávolítja az elemet a gyűjteményből. Object eltávolítására lehet állítani akár segítségével az index, vagy név szerint, például:
Ne felejtsük el, hogy amikor töröl egy elemet, VBA, hogy úgy mondjam, „töltse lyukakat” - a számok az összes elem eltávolítása után, csökkenés 1.
Eltéved a méret a gyűjtemény könnyű, különösen ismételt alkalmazás hozzáadása és eltávolítása. Generic Collection objektum csak egyetlen tulajdonsága - Count (szám) -, de tekintettel a fentiekre, az ingatlan létfontosságú. Ez a tulajdonság lehet rendelni egy változót, például:
Azt is fel lehet használni a feltételes kifejezést, mint ez:
Ha colPrices.Count> 1000
MsgBox „Túl sok találat!”
Továbbá lehetőség van arra, hogy használja az érték a gróf a For ciklus. A következő, hogy hajtson végre valamilyen tekintetében minden eleme a gyűjteménybe, például:
Dim Z As Integer
Z = 1 a Col Prices.Count
MsgBox "Price" col árak (Z)
De jobb, erre a célra használni egyes hurkok. Következő (lásd a fickó. 8).
Azonosítani egy adott elem a gyűjteményben, használja az index vagy név (ha definiált). Például az a termék értékének a gyűjtemény lehet rendelni egy változót:
datDenRozhdeniya = colDniRozhdeniya ( "Basil Ali Babaevich")
Sajnos, meg kell nyomon követni a neveket magukat - VBA nem kínálnak lehetőséget, hogy olvassa el a nevét gyűjteményünknek. Ezen felül, akkor nem tudja megváltoztatni az elem neve csak eltávolítja az elemet a gyűjteményből, majd adja hozzá újra.
Hasonlóképpen lehetetlen a jelenlegi elem a gyűjtemény, hogy egy új értéket. A következő értékadás nem fog működni: colInventory (1465) = 119
Ismét, az egyetlen módja, hogy módosítsa az értéket a gyűjtemény - eltávolítása a megfelelő elem, és hozzá egy újat az új értékkel. Nincs ilyen korlátozásokat szótár tárgyak (szótár), amely tárgyalja a 14. fejezetben.
Mint már említettük, Class Collection VBA alkalmazás korlátozza az a tény, hogy az adatokat lehetetlen áruház felhasználó által definiált típusok. Ezzel a korlátozás elviselhető, ha úgy döntünk, egy megfelelő rendszer létrehozása elemneveket. A következő példában, az egyes át For ciklusban. Következő a gyűjtemény teremt adatbázis rekord. Ez a bejegyzés három területen, amelyek mindegyike egy neve, amely egy egyszerű leíró jel, és a bejegyzés számát. Itt a megfelelő kódot:
Dim I As Integer, strName As String
Dim strPhone As String, strAddress As String
I = 1 To Összesen „I azonosítja a rekordot
Nyugta adat ehhez a bejegyzéshez
strName = InputBox ( "Adjon meg egy nevet ehhez record")
„A túl»mezők«erre rekord kollektsiye
colDatabase.Add strName, "Név" én
Később, akkor letölteni a tárolt adatokat külön nyilvántartást leíró jellemzők és számát, a következő nyilatkozatot teszi:
Ha megy, hogy valódi programokat kezeli az információt adatbázisokban, ne használja objektumok gyűjteménye - hogy túl sok korlátozás. Ehelyett használja a csatlakoztatott komponensek eléréséhez adatbázisok (releváns példákat lásd 14. fejezet). Ha azt szeretnénk, hogy minden a munkát, hogy saját osztályokat tárgyak, így dolgozni egyéni adattípusok. Az objektumok lehetővé kell tenni számukra, hogy tárolja bármilyen kombinációját adatok lehet letölteni, mint a tulajdon. Ezen kívül jó lenne hozzá kódot annak ellenőrzésére, hogy a tárolt adatok az egyes elemeket. (Modulok osztályok tartják, bár nem nagy részletességgel 14. fejezet)