VBA: llenguatge orientat a objecte

VBA és un Visual Basic (de Microsoft) adaptat a fer-se servir amb les aplicacions Office. El VBA és un llenguatge orientat a objecte, és a dir, hi ha uns objectes que representen quelcom i nosaltres modifiquem aquests objectes. Exemples d’objectes a Excel són l’aplicació (Application), un altre el llibre amb el que treballem (ThisWorkbook),un rang de cel·les (Range("A1:C30")) o una selecció (Selection).
Aquest objectes els podem manipular mitjançant mètodes com un Copy o canviar les seves propietats com Name. Un mètode ens permet transformar l’objecte o treballar-hi mentre que una propietat modificarà algun aspecte del propi objecte. L’editor de VBA ens ajudarà en trobar quins mètodes o propietats es poden aplicar a un objecte en concret. Quan posem un punt darrera un objecte l’editor ens mostrarà la llista de mètodes o propietats que pode aplicar. Si trobem la opció que cerquem la podem seleccionar amb un [Tab].

Exemple:

ThisWorkbook.Sheets(1).Range("A1:C3").Select
Selection.Copy
Sheets(2).Range("A1").PasteSpecial xlValues


El que fa: Selecciona el rang “A1:C3″ del primer full del llibre on està escrita la macro. Copia la selecció. I finalment l’enganxa en valors a la cel·la A1 del segon full del llibre actiu (independentment de que sigui el llibre on està escrita la macro). Fixeu-vos que a la primera línia es crea l’objecte “Selecció” que a la segona se li aplica el mètode de “Copiar”.
Per veure quins objectes, mètodes i propietats hi ha disponibles i la seva ajuda ho podeu fer mitjançant l’explorador d’objectes.La disponibilitat depèn de les referències carregades a l’editor. Les referències carregades a l’Excel normalment són les del VBA, les comunes d’Office, les específiques d’Excel i les d’automatització OLE. Si, per exemple volem manipular un Arxiu PowerPoint des d’Excel hauríem de fer referència a la llibreria de PowerPoint per poder tenir els objectes, mètodes i propietats disponibles. D’això en parlarem més endavant.

1 comentari:

Anònim ha dit...

tinc un problema amb VBA, he de fer que sobre unes dates previstes de execució d'un projecte em dibuixi una ratlla de progres actualitzant-la amb el moment actual i variant-la amb la edició de les dates reals. Vaig una mica perdut ja que no havia fet servir mai VBA. El meu mail es gsaladie@caixapenedes.com
Gràcies

Publica un comentari a l'entrada