Eine einheitliche Form der Namensgebung für Variablen, Konstanten und anderer VBA-Komponenten erleichtet es dem einen Entwickler, den Code des anderen zu verstehen. Zum anderen findet man sich bei einer disziplinierten Namensvergebung auch in seinem eigenen Code besser zurecht. Gänzlich unerlässlich ist die Vereinbarung, wenn ein VBA-Programm im Team erstellt wird.
Microsoft konnte sich bisher nicht entschliessen, Namenskonventionen für Excel/VBA festzulegen. Diese Lücke wurde durch Entwickler im englischen Sprachraum gefüllt, indem sie unverbindliche Standards vereinbarten, die sich allerdings bisher international nicht durchsetzen konnten. Es handelt sich hier um eine Kombination aus vereinbarten Kürzeln und beschreibenden (sprechenden) Namen.
Der Verfasser dieser Zusammenfassung stützt sich im Wesentlichen auf die von Graham Keene und James Barnard im Jahre 1996 veröffentlichten Standards, die er an die aktuellen Excel-Versionen angepasst hat.
Der Name besteht aus 3 Teilen: Präfix, Art und Bezug. 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 Grossbuchstabe. 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 Buchstaben eines jeden Wortes gross geschrieben.
Das Präfix
Das Präfix gibt die Art und Gültigkeit der Variablen oder Konstanten an. Hierfür gelten folgende Festlegungen:
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 |
Variablentyp | 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 |
Bei Objektlisten wird der Art ein s hinzugefügt. Beispiele:
Objekt | 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 |
Bei den Konstanten weicht man bei VBA von der sonst üblichen Form Grossbuchstaben/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
Benutzerdefinierten Typen werden mit einem dem Präfix folgenden t kenntlich gemacht, dem das Präfix gemäss den weiter oben gemachten Regeln folgt. Die Benennung erfolgt hier in Grossbuchstaben, wobei die einzelnen Wörter durch Unterstriche getrennt werden.
Beispiel: mtPART_RECORD
Die festgelegten Regeln für den 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 auffangaren Fehlern. Da es die einzige in einer Prozedur vorkommende Sprungmarke ist, bedarf sie keiner besonderen Kennzeichnung. Ihr Name ist im allgemeinen ErrorHandler.
Im Sinne der Internationalisierung des VBA-Codes sind generell in den Namen keine Umlaute oder das ß einzusetzen.
Für die Prozedur- und Funktonsnamen 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 Grossbuchstaben. 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.
Die 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.