Visual Basic for Applications és un llenguatge de programació orientat a objectes. El concepte bàsic de la programació orientada a objectes és que una aplicació de programari (Excel en aquest cas) consta de diversos objectes individuals, cadascun dels quals té el seu propi conjunt de característiques i usos.
Una aplicació d'Excel conté cel·les, fulls de treball, gràfics, taules dinàmiques, dibuixos de formes: la llista d'objectes d'Excel sembla interminable. Cada objecte té el seu propi conjunt de característiques, que s'anomenen propietats , i el seu propi conjunt d'usos, anomenats mètodes .
Podeu pensar en aquest concepte de la mateixa manera que ho faríeu amb els objectes que trobeu cada dia, com ara l'ordinador, el cotxe o la nevera. Cadascun d'aquests objectes té qualitats identificatives, com ara l'alçada, el pes i el color. Cadascun té els seus usos diferents, com ara treballar amb Excel, transportar-vos a llargues distàncies o mantenir freds els aliments peribles.
Els objectes VBA també tenen propietats identificables i mètodes d'ús. Una cel·la de full de treball és un objecte, i entre les seves característiques describles (les seves propietats) hi ha la seva adreça, alçada i color de farciment formatat. Un llibre de treball també és un objecte VBA, i entre les seves característiques utilitzables (els seus mètodes) hi ha les seves capacitats per obrir-se, tancar-se i afegir-hi un gràfic o una taula dinàmica.
A Excel, tracteu llibres de treball, fulls de treball i intervals diàriament. És probable que penseu en cadascun d'aquests objectes com a part d'Excel, sense separar-los realment a la vostra ment. Tanmateix, Excel els considera internament com a part d'un model jeràrquic anomenat Model d'objectes d'Excel. El model d'objectes d'Excel és un conjunt d'objectes clarament definit que s'estructuren segons les relacions entre ells.
Comprensió dels objectes
Al món real, pots descriure tot el que veus com a objecte. Quan mires casa teva, és un objecte. La teva casa té habitacions; aquestes habitacions també són objectes separats. Aquestes habitacions poden tenir armaris. Aquests armaris també són objectes. Quan penseu en la vostra casa, les habitacions i els armaris, és possible que vegeu una relació jeràrquica entre ells. Excel funciona de la mateixa manera.
A Excel, l' objecte Aplicació és l'objecte global, semblant a la vostra casa. Dins de l'objecte Aplicació, Excel té un llibre de treball. Dins d'un llibre de treball hi ha un full de treball. Dins d'això hi ha una gamma. Tots aquests són objectes que viuen en una estructura jeràrquica.
Per apuntar a un objecte específic a VBA, podeu recórrer el model d'objectes. Per exemple, per arribar a la cel·la A1 del full 1, podeu introduir aquest codi:
Activeworkbook.Sheets("Full1").Range("A1").Seleccioneu
En la majoria dels casos, s'entén la jerarquia del model d'objectes, de manera que no cal que escrigui tots els nivells. Introduir aquest codi també us porta a la cel·la A1 perquè Excel dedueix que us referiu al llibre de treball actiu i al full actiu:
Interval("A1").Seleccioneu
De fet, si ja teniu el cursor a la cel·la A1, simplement podeu utilitzar l'objecte ActiveCell, negant la necessitat d'escriure l'interval:
Activecell.Seleccionar
Entendre les col·leccions
Molts dels objectes d'Excel pertanyen a col·leccions , que són essencialment grups d'objectes semblants. De la mateixa manera, la vostra casa es troba dins d'un barri, que és una col·lecció de cases. Cada barri es troba en una col·lecció de barris anomenada ciutat. Excel considera que les col·leccions són objectes en si.
A cada objecte Workbook, teniu una col·lecció de Worksheets. La col·lecció de Fulls de treball és un objecte que podeu fer servir mitjançant VBA. Cada full de treball del vostre llibre de treball viu a la col·lecció de Fulls de treball.
Si voleu fer referència a un full de treball de la col·lecció Worksheets, podeu fer-hi referència per la seva posició a la col·lecció, com a número d'índex que comença per 1, o pel seu nom, com a text citat. Si executeu les dues línies de codi següents en un llibre de treball que només té un full de treball anomenat MySheet, tots dos fan el mateix:
Fulls de treball(1).Seleccioneu
Fulls de treball("El meuFull").Seleccioneu
Si teniu dos fulls de treball al llibre de treball actiu que tenen els noms MySheet i YourSheet, en aquest ordre, podeu consultar el segon full de treball escrivint qualsevol d'aquestes declaracions:
Fulls de treball(2).Seleccioneu
Fulls de treball ("El vostreFull").Seleccioneu
Si voleu fer referència a un full de treball en un llibre de treball anomenat MySheet en un llibre de treball concret que no està actiu, heu de qualificar la referència del full de treball i la referència del llibre de treball de la manera següent:
Llibres de treball("MyData.xls").Worksheets("MySheet").Seleccioneu
Entendre les propietats
Les propietats són essencialment les característiques d'un objecte. La teva casa té un color, un metre quadrat, una edat, etc. Algunes propietats, com ara el color de la vostra casa, es poden canviar. Altres propietats, com ara l'any de construcció de la vostra casa, no es poden canviar.
De la mateixa manera, un objecte a Excel, com ara l'objecte Worksheet, té una propietat de nom de full que es pot canviar i una propietat de fila Rows.Count que no.
Es refereix a la propietat d'un objecte fent referència a l'objecte i després a la propietat. Per exemple, podeu canviar el nom del vostre full de treball canviant la seva propietat Nom.
En aquest exemple, canvieu el nom de Sheet1 per MySheet:
Fulls("Full1").Name = "El meuFull"
Algunes propietats són només de lectura, la qual cosa significa que no podeu assignar-hi un valor directament. Un exemple de propietat de només lectura és la propietat Text de la cel·la, que proporciona l'aspecte formatat d'un valor en una cel·la. No el podeu sobreescriure ni canviar-lo.
Entendre els mètodes
Els mètodes són les accions que es poden dur a terme contra un objecte. Ajuda a pensar en els mètodes com a verbs. Per exemple, pots pintar la teva casa; a VBA, això podria traduir-se a
casa.pintar
Un exemple senzill d'un mètode Excel és el mètode Select de l'objecte Range:
Interval("A1").Seleccioneu
Un altre és el mètode Copy de l'objecte Range:
Interval("A1").Copia
Alguns mètodes tenen paràmetres que poden dictar com s'apliquen els mètodes. Per exemple, el mètode Paste es pot utilitzar de manera més eficaç definint explícitament el paràmetre Destination:
ActiveSheet.Paste Destinació:=Range("B1")