Bár fontos tudni, hogyan kell az objektumokra hivatkozni, nem végezhet hasznos Excel VBA programozást egyszerűen egy objektumra hivatkozva. Ha bármi értelmeset szeretne elérni, két dolog egyikét kell megtennie:
A szó szoros értelmében rendelkezésre álló tulajdonságok és módszerek ezrei révén könnyen kiborulhat. Ne feledje, hogy soha nem kell használnia a legtöbb rendelkezésre álló tulajdonságot és módszert.
Az objektum tulajdonságai
Minden objektumnak vannak tulajdonságai. A tulajdonságokat olyan attribútumoknak tekintheti, amelyek leírják az objektumot. Egy objektum tulajdonságai határozzák meg, hogyan néz ki, hogyan viselkedik, és még azt is, hogy látható-e. A VBA használatával két dolgot tehet az objektum tulajdonságaival:
Például egy egycellás Range objektumnak van egy Value nevű tulajdonsága. Az Value tulajdonság a cellában található értéket tárolja. Írhat VBA-kódot az Érték tulajdonság megjelenítéséhez, vagy írhat VBA-kódot, hogy az Érték tulajdonságot egy adott értékre állítsa. A következő makró a VBA beépített MsgBox függvényét használja egy doboz megjelenítéséhez, amely az aktív munkafüzet 1. munkalapján lévő A1 cellában jeleníti meg az értéket:

Ez az üzenetmező egy Range objektum Érték tulajdonságát jeleníti meg.
Sub ShowValue()
Tartalom = Worksheets(“Sheet1”).Tartomány(“A1”).Érték
MsgBox tartalma
Vége Sub
Az MsgBox egyébként nagyon hasznos funkció. Használhatja az eredmények megjelenítésére, miközben az Excel végrehajtja a VBA-kódot.
Az előző példában szereplő kód egy cella Value tulajdonságának aktuális beállítását jeleníti meg. Mi a teendő, ha módosítani szeretné az adott tulajdonság beállítását? A következő makró megváltoztatja az értéket az A1 cellában a cella Value tulajdonságának megváltoztatásával:
Al ChangeValue()
Munkalapok (“1. lap”). Tartomány (“A1”). Érték = 994,92
Vége Sub
Miután az Excel végrehajtotta ezt az eljárást, az aktív munkafüzet 1. lapjának A1 cellája a 994.92 értéket tartalmazza. Ha az aktív munkafüzetben nem található Lap1 nevű munkalap, a makró végrehajtása hibaüzenetet ad. A VBA csak követi az utasításokat, és nem tud működni nem létező lapokkal.
Minden objektumnak megvan a maga tulajdonságkészlete, bár néhány tulajdonság sok objektumnál közös. Például sok (de nem minden) objektumnak van Visible tulajdonsága. A legtöbb objektumnak Name tulajdonsága is van.
Egyes objektumtulajdonságok csak olvasható tulajdonságok, ami azt jelenti, hogy a kód megkaphatja a tulajdonság értékét, de nem módosíthatja azt.
A gyűjtemény is tárgy. Ez azt jelenti, hogy egy gyűjteménynek is vannak tulajdonságai. Például meghatározhatja, hogy hány munkafüzet van nyitva a Munkafüzetek gyűjtemény Számlálás tulajdonságának elérésével. A következő VBA-eljárás egy üzenetdobozt jelenít meg, amely közli, hogy hány munkafüzet van nyitva:
Sub CountBooks()
MsgBox Workbooks.Count
Vége Sub
Objektum módszerek
A tulajdonságokon kívül az objektumoknak metódusai is vannak. A metódus egy objektummal végrehajtott művelet. Egy metódus megváltoztathatja az objektum tulajdonságait, vagy rákényszerítheti az objektumot valamire.
Ez az egyszerű példa a ClearContents metódust használja egy Range objektumon az aktív lap 12 cellájának törlésére:
Sub ClearRange()
Tartomány(“A1:A12”).ClearContents
Vége Sub
Egyes módszerek egy vagy több argumentumot vesznek igénybe. Az argumentum egy olyan érték, amely tovább határozza meg a végrehajtandó műveletet. A metódus argumentumait a metódus után helyezi el, szóközzel elválasztva. A több argumentumot vessző választja el.
A következő példa aktiválja a Munkalapot (az aktív munkafüzetben), majd a Range objektum Másolás metódusával átmásolja az A1 cella tartalmát a B1 cellába. Ebben a példában a Másolás metódusnak egy argumentuma van, amely a másolási művelet céltartománya:
Sub CopyOne()
Munkalapok („Sheet1”). Aktiválja
Tartomány („A1”). Tartomány másolása („B1”)
Vége Sub
Figyelje meg, hogy a munkalaphivatkozás kimaradt, amikor a Range objektumokra hivatkozott. Ez biztonságosan megtehető, mert a Sheet1 aktiválására szolgáló utasítást használtak. (az Aktiválás módszerrel).
Egy másik módszer argumentum megadásának az az argumentum hivatalos neve, amelyet kettőspont és egyenlőségjel követ. A megnevezett argumentumok használata nem kötelező, de gyakran könnyebben érthetővé teheti a kódot. A CopyOne eljárás második utasítása így írható:
Tartomány(“A1”).Cél másolása:=Tartomány (“B1”)
Figyelje meg a kis felszólítást az utasítás beírása közben. Ez a prompt mutatja az érv hivatalos nevét.

A VBE az argumentumok listáját jeleníti meg gépelés közben.
Mivel a gyűjtemény egyben objektum is, a gyűjteményeknek vannak metódusai. A következő makró a Hozzáadás módszert használja a Munkafüzetek gyűjteményhez:
Sub AddAWorkbook()
Munkafüzetek.Hozzáadás
Vége Sub
Ahogy várható volt, ez a kijelentés új munkafüzetet hoz létre. Más szavakkal, új munkafüzetet ad a Munkafüzetek gyűjteményhez. A makró végrehajtása után egy friss munkafüzet lesz az aktív munkafüzet.
Objektum események
Van még egy téma, amit tudnia kell: az események. Az objektumok különféle eseményekre reagálnak . Például, amikor Excelben dolgozik, és egy másik munkafüzetet aktivál, egy Munkafüzet aktiválása esemény történik. Például rendelkezhet egy VBA makróval, amelyet úgy terveztek, hogy minden alkalommal lefusson, amikor egy Aktiválás esemény történik egy adott munkafüzet objektumhoz.
Az Excel számos eseményt támogat, de nem minden objektum tud minden eseményre válaszolni. És néhány objektum nem reagál semmilyen eseményre. Csak azokat az eseményeket használhatja, amelyeket a Microsoft Excel programozói bocsátottak rendelkezésre.