VBA in Excel/ Namenskonventionen


Wozu Namenskonventionen? Bearbeiten

Namenskonventionen 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 Bearbeiten

Der 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:

BlattArtBeispiel
ArbeitsblattwkswksKunde
DiagrammchtchtVerkaeufe
UserForm (XL97/2000) Dialogblatt (XL5/7)frmfrmRechnungHilfe
StandardmodulebasbasMain
KlassenmoduleclsclsMsg
Excel-4-Makro-Blattxl4xl4Bestellung

Die Variablentypen Bearbeiten

VariablentypArtBeispiel
BooleanblnDim blnSchalter as Boolean
CurrencycurDim curBetrag As Currency
DatedatDim datStartDatum As Date
DoubledblDim dblPi as Double
IntegerintDim intCounter as Integer
LonglngDim lngParam as Long
ObjectobjDim objGraph as Object
SinglesngDim sngParam as Single
StringstrDim strUserName as String
Type (benutzerdefiniert)typDim typPartRecord As mtPART_RECORD
VariantvarDim 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 Bearbeiten

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
Frame fra fraFolderGroup

Die Konstanten und benutzerdefinierten Typen Bearbeiten

Bei 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 Bearbeiten

Die 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 Bearbeiten

Fü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 Bearbeiten

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.