System & Nomenklatur

Auch wenn es mein Beitrag zum Thema Dynamische Userform ist, der hier als erster steht, heisst das immer noch nicht, dass ich mich zum Tutor berufen fühle. Es soll nur das gelernete verallgemeinert dokumentiert werden.
Echte Tutoren sind natürlich herzlich willkommen!
Benutzeravatar
hbri
Site Admin
Beiträge: 11
Registriert: 29. Aug 2022, 12:48
Hat sich bedankt: 3 Mal
Danksagung erhalten: 1 Mal
Kontaktdaten:

System & Nomenklatur

#1

Beitrag von hbri »

Moin allerseits!

Thema System

In strukturiertem VBA-Code findet sich nach dem Namen der Prozedur meistens die Definition der Objekte und Variablen, dann das Füllen mit Inhalten und danach der Code für Controls, Funktionen usw. Bei mir findet man in der ersten Zeile sehr häufig den Aufruf System. Warum das? Weil ich ein fauler Hund bin 8-) Ich habe einfach keine Lust, bestimmte Dinge in jeder Sub wieder zu schreiben, also nutze ich dafür gerne (soweit technisch sicher!) Public Variablen und definiere die genau einmal.

Beispiel: Eine Arbeitsmappe mit einer fixen Anzahl von Arbeitsblättern in meiner Nomenklatur (s.u.) beginnend mit dem Prefix ws (Worhsheet, andere nutzen sht), einem, maximal zwei Großbuchstaben, die den Blattnamen erkennen lassen und ggf. deren Sichtbarkeit. Außerdem platziere in diesem Modul, das immer den Namen modSystem (in frühen Projekten auch mal modCommons) z.B. APIs oder Public Arrays.

Vorstellen kann man sich das Ganze ein wenig wie die Beziehung HTML und CSS. Eine Änderung in der CSS wirkt sich einfach direkt auf alle HTML-Seiten aus. Beispiele dazu finden sich in wohl jeder hier von mir eingestellten Beispieltabelle.

Thema Nomenklatur

Man hat mich immer wieder in Foren darauf hinwiesen, dass es hilfreich wäre, sprechende Variablennamen zu verwenden. Hier knurrt aber wieder der faule Hund. Für immer wieder benötigte Variablen, verwende ich immer den gleichen Variablennamen, bzw. die gleichen Präfixe. Private Standards (innerhalb einer Prozedur) wie integer, strings beginnen mit i, s, gefolgt von einer 3-Buchstaben Abk. iPos(ition), sCap(tion). Für Iteratoren verwende ich i, benötige ich einen zweiten ii. Zeilen/Spalten werden immer mit r & c (Rows & Columns) benannt, benötige ich eine zweite ist's z und s (Zeile & Spalte). Ein einfaches a steht immer für Anzahl, als Präfix kennzeichnet es ein Array Diese Namen benötigen, die Nomenklatur konsequent eingehalten, keine ausführliche Tipperei und sind leicht nachzuvollziehen.

Meine Erfahrung sagt mir, dass es unzählige andere Methoden gibt, sowohl Code-Faulheit zu unterstützen, als auch Namensregeln aufzustellen, die Übersichtlichkeit schaffen. Das Schöne am Menschen ist seine Kreativität. Nachdem es erst einmal nur ich bin, der meinen Code verstehen muss, nutze ich also mein System und füge für andere später gerne einen erläuternden Kommentar hinzu.

Schon erlebt habe ich, dass es Kollegen gibt, die ihre Methode schon beinahe dogmatisch vertreten. Davon bin ich weit entfernt - denn: Jeder so, wie er/sie/das Team sich sicher zurechtfinden. Als Merkzettel hilft mir folgende Grafik:

VBA Standards.jpg

Viel Spaß damit :!:
Grüße
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Benutzeravatar
d'r Bastler
Beiträge: 839
Registriert: 29. Aug 2022, 13:20
Hat sich bedankt: 227 Mal
Danksagung erhalten: 122 Mal

Re: System & Nomenklatur

#2

Beitrag von d'r Bastler »

[Nachtrag] Anmerkung zu Integer & Long: Viele professionelle Programmierer verwenden für Iteratoren (daher der gern genutze Name i, gemeint sind Zähler in Schleifen) inzwischen die Deklaration Long statt Integer. Das ist ab Tabellen größer plus/minus 2.147.483.647 Schleifen definitiv notwendig, weil VBA sonst in einen Überlauf rennen würde. Nachdem meine Projekte aber i.d.R. deutlich kleiner sind, also nicht annähernd 4,3 Mrd. Datensätze enthalten, verwende ich ich weiterhin Integer, sorry. [hbri]
d'r Bastler von den VBAsteleien.de
Win 10 + Office 2019 & Win11 + Office 2021 + Visio 2019 pro & macOS.X15 + Office2019pro & Android12 & XL365
Benutzeravatar
d'r Bastler
Beiträge: 839
Registriert: 29. Aug 2022, 13:20
Hat sich bedankt: 227 Mal
Danksagung erhalten: 122 Mal

Re: System & Nomenklatur

#3

Beitrag von d'r Bastler »

Moin allerseits,

hier eine akualisiserte Version meiner Nomenklatur - ein bisschen optimiert und erweitert. Mag sich jeder davon angewöhnen, was er für sinnvoll hält :)

VBA Nomenklatur 2024.pdf

lg
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
d'r Bastler von den VBAsteleien.de
Win 10 + Office 2019 & Win11 + Office 2021 + Visio 2019 pro & macOS.X15 + Office2019pro & Android12 & XL365
Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste