Start > Kursy on-line > Excel - makra i VBA

Excel - makra i VBA


Nazewnictwo

Bardzo krótko należy odnieść się także do kwestii nazewnictwa w naszym projekcie VBA pod Excel. Tak jak w przypadku każdego innego środowiska programistycznego, w projekcie będziemy używać różnego rodzaju obiektów, formularzy, formantów, zmiennych, stałych itd. Pomijając fakt, iż nazwy własne tych obiektów nie powinny zawierać żadnych znaków specjalnych, a jedynie litery arabskie bez polskich znaków wraz z podkreśleniami i cyframi (ale nie zaczynające się od cyfr) warto przemyśleć jak będziemy rozróżniać typy obiektów.

Jako przykład możemy podać, że chcemy rozróżniać w każdym miejscu kodu przycisk od okna tekstowego. Podczas omawiania interfejsu, wspominaliśmy o oknie Properties, które wyświetla właściwości danego obiektu. W tym właśnie oknie mamy też zawsze właściwość nazwaną "Name", która dotyczy nazwy tego obiektu. Aby zobrazować przykład, musimy wybiec trochę wprzód i dodać do arkusza dwa formanty ActiveX (przycisk oraz pole tekstowe):




Po ich dodaniu (poprzez wybór odpowiednich poleceń na wstążce i narysowaniu w arkuszu kursorem myszy), kliknijmy prawym przyciskiem w którykolwiek z nich i wybierzmy polecenie Właściwości:



dzięki czemu wyświetlimy okno, którego pierwszy wiersz nazwany jest "(Name)" i jest to właściwość oznaczająca nazwę danego obiektu, do której będziemy się odwoływać w jakimkolwiek miejscu kodu programu VBA tego skoroszytu Excel. Dla obiektów, które przykładowo wstawiliśmy, program nadał automatyczne nazwy: "TextBox1" (pole tekstowe) oraz "CommandButton1" (przycisk). W przypadku dodawania kolejnych obiektów tego typu (ale i innych) - program będzie nadał im nazwy domyślne, które odzwierciedlają w języku angielskim rodzaj obiektu wraz z kolejnymi numerami.

Nietrudno się domyśleć, iż w przypadku gdy w danym projekcie użyjemy np. 10 przycisków, już po drugim lub trzecim możemy mieć problem z określeniem czemu one miały służyć - zwłaszcza jeśli wracamy do projektu po przerwie. Stąd dobrze jest od razu po dodaniu obiektu zmienić jego nazwę na bardziej przyjazną. Dodatkowo warto pozostawić w nazwie elementy świadczące o rodzaju danego obiektu - dzięki czemu unikniemy wątpliwości jakie metody i właściwości są dla niego specyficzne.
Osobiście stosuję metodę taką, iż jeśli nazywam pole tekstowe, to jego nazwa zaczyna się od "tb_", jeśli jest to przycisk: "cb_", jeśli etykieta - "lbl_" itd. Dzięki temu zawsze zachowuję klarowność, odwołując się do obiektów w jakimkolwiek miejscu projektu - dodatkowo - wracając do kodu po pewnym czasie, o wiele łatwiej przypomnieć sobie jego sens logiczny (poza używaniem komentarzy i tworzeniem dokumentacji, do czego serdecznie zachęcam).