Létrehozása objektumok gyűjteménye

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)