VBA in Excel/ Namenskonventionen
Wozu Namenskonventionen?
BearbeitenNamenskonventionen sind freiwillige Vereinbarungen von Programmierern, die ein bestimmtes System für die Vergabe von Bezeichnern für Objekte, Variablen und Konstanten einführen, damit anhand der Namen sofort Rückschlüsse auf den Verwendungszweck im Programm gezogen werden können. Eine einheitliche Form der Namensgebung für Variablen, Konstanten und anderer VBA-Komponenten erleichtert es zum einen Entwicklern, den Code des anderen zu verstehen. Zum anderen findet man sich bei einer disziplinierten Namensvergabe auch in seinem eigenen Code besser zurecht. Gänzlich unerlässlich ist die Vereinbarung, wenn ein VBA-Programm im Team erstellt wird.
Die Bestandteile eines Namens
BearbeitenDer Name besteht aus 3 Teilen: Präfix, Art und Benennung. Der einzige nicht optionale Bestandteil ist die Art. Da sich jedoch in der Regel mehrere Elemente einer Art im Code befinden, wird – um diese unterscheiden zu können – eine Benennung notwendig:
[präfix]Art[Benennung]
Die eckigen Klammern weisen darauf hin, dass es sich bei den Inhalten um optionale Elemente handelt. Die Klammern selbst sind kein Bestandteil des Namens.
Hier drei Beispiele:
Name | Präfix | Art | Benennung |
---|---|---|---|
wksKunden | wks | Kunden | |
mintTeileNo | m | int | TeileNo |
gstrKundName | g | str | KundName |
Präfix und Art werden in Kleinbuchstaben geschrieben, das erste Zeichen der Benennung als Großbuchstabe. Dies erleichtert die Lesbarkeit des Namens und lenkt den Blick auf die Benennung. In der Benennung selbst wird im Sinne der besseren Lesbarkeit der erste Buchstabe eines jeden Wortes groß geschrieben. Im Sinne der Internationalisierung des VBA-Codes sind generell in den Namen keine Umlaute oder das ß einzusetzen.
Das Präfix
Das Präfix gibt die Art und Gültigkeit der Variablen oder Konstanten an. Hierfür gelten folgende Festlegungen:
- In Subs oder Functions deklarierte Variablen erhalten kein Präfix
- Lokal als Static deklarierte Variablen oder Konstanten erhalten das Präfix s, also beispielsweise sintCounter
- Variablen, die im Deklarationsteil eines Moduls mit einer Dim oder Private-Anweisung deklariert wurden, erhalten das Präfix m, also beispielsweise mcurSumme
- Global außerhalb von Subs oder Funktionen deklarierte Variablen erhalten das Präfix g, also beispielsweise gdblGesamtSumme
Die Art
Hier wird die Art der Variablen festgelegt.
Die Excel-Blätter:
Blatt | Art | Beispiel |
Arbeitsblatt | wks | wksKunde |
Diagramm | cht | chtVerkaeufe |
UserForm (XL97/2000) Dialogblatt (XL5/7) | frm | frmRechnungHilfe |
Standardmodule | bas | basMain |
Klassenmodule | cls | clsMsg |
Excel-4-Makro-Blatt | xl4 | xl4Bestellung |
Die Variablentypen
BearbeitenVariablentyp | Art | Beispiel |
Boolean | bln | Dim blnSchalter as Boolean |
Currency | cur | Dim curBetrag As Currency |
Date | dat | Dim datStartDatum As Date |
Double | dbl | Dim dblPi as Double |
Integer | int | Dim intCounter as Integer |
Long | lng | Dim lngParam as Long |
Object | obj | Dim objGraph as Object |
Single | sng | Dim sngParam as Single |
String | str | Dim strUserName as String |
Type (benutzerdefiniert) | typ | Dim typPartRecord As mtPART_RECORD |
Variant | var | Dim varEingabe as Variant |
Zur Deklaration von Variablen siehe Abschnitt Variablen und Arrays
Bei Objektlisten wird der Art ein s hinzugefügt. Beispiele:
- Workbook = wkb - Workbooks = wkbs
- Chart = cht - Charts = chts
Die MS-Forms-Elemente
BearbeitenObjekt | Art | Beispiel |
---|---|---|
Label | lbl | lblHelpMessage |
TextBox | txt | txtLoginName |
ComboBox | cbo | cboMonate |
ListBox | lst | lstAufstellung |
CheckBox | chk | chkAnlage |
OptionButton | opt | optJa |
ToggleButton | tgl | tglSchalter |
CommandButton | cmd | cmdWeiter |
TabStrip | tab | tabTexte |
MultiPage | mpg | mpgKalender |
SpinButton | spn | spnZaehler |
ScrollBar | scr | scrLeiste |
Image | img | imgStart |
RefEdit | ref | refBereich |
TreeView | trv | trvVerteilung |
ListView | lsv | lsvOrdner |
Calendar | cal | calAktuell |
Frame | fra | fraFolderGroup |
Die Konstanten und benutzerdefinierten Typen
BearbeitenBei den Konstanten weicht man bei VBA von der sonst üblichen Form Großbuchstaben/Unterstriche (Bsp.=NO_WORKSHEET_ERROR) ab. Die Art der Konstanten wird mit con festgelegt, dem möglicherweise ein Präfix (siehe oben) vorangestellt wird. Für die Benennung gelten die oben getroffenen Festlegungen.
Beispiel: gconFalscherDatenTyp
Benutzerdefinierte Typen werden mit einem dem Präfix folgenden t kenntlich gemacht, dem dIe Benennung gemäß den weiter oben gemachten Regeln folgt. Die Benennung erfolgt hier in Großbuchstaben, wobei die einzelnen Wörter durch Unterstriche getrennt werden.
Beispiel: mtPART_RECORD
Die Sprungmarken
BearbeitenDie festgelegten Regeln für die Namenskonvention von Sprungmarken werden hier nicht übernommen, da eine moderne Excel-Programmierung ohne Sprungmarken auskommt. Hier gibt es allerdings eine Ausnahme: Die Fehler-Programmierung bei auffangbaren Fehlern. Da es die einzige in einer Prozedur vorkommende Sprungmarke ist, bedarf sie keiner besonderen Kennzeichnung. Ihr Name ist im allgemeinen ErrorHandler
Prozeduren und Funktionen
BearbeitenFür die Prozedur- und Funktionsnamen gibt es – mit Ausnahme der Ereignisprozeduren – keine Regeln. Im Interesse einer guten Lesbarkeit und schnellen Abarbeitung des Codes sollte die Länge 20 Zeichen nicht überschreiten. Sie sollten beschreibend und erklärend sein. Jedes Wort beginnt mit einem Großbuchstaben. Gebräuchlich sind die Wortpaare Verb/Gegenstandswort.
Beispiele: AufrufenDialog, SortierenMatrix, WechselnBlatt
Wenn Sie Ereignisse in XL97/2000 programmieren, werden die Prozedurnamen vom VBE festgelegt und sie haben keinen Einfluss darauf. Ausnahmen bilden benutzerdefinierte Ereignisse und Ereignisse zu Elementen, die nicht zu MSForms gehören. Verwenden Sie hier einen beschreibenden Namen, dem ein Unterstrich und ein Hinweis auf die Art des Ereignisses folgt.
Kommentare
BearbeitenDie Kommentierung des VBA-Codes wird oft vernachlässigt, ist jedoch eine Notwendigkeit. Sie erfordert einen erheblichen Einsatz von Zeit und Energie. Zum einen sollte ein Dritter die Möglichkeit haben, das Programm zu verstehen, zum anderen wird man selbst – wenn man nach einem Jahr erneut in den Code einsteigen muss – froh über jede Information sein.
Wichtige Elemente des Kommentars sind die Angabe des Autors, des Erstellungs- und letzten Änderungsdatums. Im Weiteren ist die Kommentierungstechnik abhängig von der Art des Code-Aufbaus.