TL;DR — Setzen Sie einen Apostroph
'vor eine beliebige Zeile, und alles dahinter wird zum Kommentar: Der Compiler löscht ihn, bevor Ihr Makro läuft. Zwei Aufgaben — eine Notiz hinterlassen oder Code vorübergehend deaktivieren, ohne ihn zu löschen. Es gibt keine/* */-Blocksyntax; um einen ganzen Block abzuschalten, stellen Sie jeder Zeile ein'voran (der Button Comment Block auf der Edit toolbar erledigt das in einem Rutsch). Kommentieren Sie das Warum, nie das Was — ein Kommentar, der den Code bloß wiederholt, ist eine Lüge, die nur darauf wartet, dass sich der Code ändert.
Sub CommentBasics()
' Diese ganze Zeile ist eine Notiz - der Compiler ignoriert sie
Dim total As Long
total = 100 ' ein nachgestellter Kommentar erklaert das WARUM, nicht das Was
' MsgBox total <- deaktiviert, nicht geloescht: das ' entfernen, um sie wieder einzuschalten
End Sub
Was Sie lernen
- Das mentale Modell — ein Kommentar ist die eine Zeile, die garantiert nie läuft
- Die drei reinen Quelltext-Token, und warum Anfänger sie alle unterschätzen
- Der Apostroph
'gegenüber dem älterenRem, und wann welcher erlaubt ist - Wie Sie einen ganzen Block auskommentieren (und wo sich der Button versteckt)
- Warum ein Kommentar eine Zeilenfortsetzung zerstört — und warum diese Falle stumm ist
- Ein Quellcode-Kommentar gegenüber dem Zell-Comment-/Note-Objekt — zwei verschiedene Dinge
- Die Meinung: die einzigen Kommentare, die die Pixel wert sind
Das mentale Modell: die eine Zeile, die nie läuft
Jede andere Zeile, die Sie schreiben, ist eine Anweisung an das Makro. Ein Kommentar ist es nicht. In dem Moment, in dem der VBA-Compiler einen Apostroph sieht, verwirft er den Rest dieser Zeile — sie wird nie geparst, nie kompiliert, nie ausgeführt. Diese eine Garantie ist der ganze Sinn, und sie treibt die zwei Aufgaben an, die ein Kommentar erfüllt:
- Die Absicht erklären für den nächsten Menschen (oft Ihr künftiges Ich), und
- Code deaktivieren, ohne ihn zu löschen, sodass Sie eine Änderung testen und die alte Zeile mit einem Tastendruck zurückholen können.
Weil ein Kommentar für den Compiler unsichtbar ist, ist das Auskommentieren einer Zeile die sicherste Bearbeitung in VBA: Nichts geht verloren, nichts wird riskiert. Und weil er für den Compiler unsichtbar ist, wird ein Kommentar, der falsch ist, nie erwischt — kein Fehler, keine Warnung, niemals. Behalten Sie beides im Kopf, und der Rest dieser Anleitung ergibt sich von selbst.
Drei Token, die das Makro nie ausführt
Ein Kommentar ist keine einsame Funktion — er ist eines von drei Dingen, die Sie tippen und die das laufende Makro nie ausführt. Sie prägen die Quelle und die Kompilierung, nicht den Lauf, und genau deshalb tun Neulinge sie als Nebensache ab. Sie sind der Unterschied zwischen VBA, das Sie warten können, und VBA, das verrottet.
| Token | Was er mit Ihrer Quelle macht | Was er den Lauf kostet |
|---|---|---|
' Kommentar |
Hinterlässt Notizen und deaktiviert Code, den der Compiler löscht | Nichts — er läuft nie |
_ Zeilenfortsetzung |
Zerlegt eine lange Anweisung über mehrere Zeilen | Nichts — der Parser entfernt sie vor dem Kompilieren |
| Option Explicit | Erzwingt, dass jeder Name deklariert wird | Läuft zur Compile-Zeit, sodass Tippfehler sterben, bevor das Makro startet |
Beherrschen Sie die drei, und Tippfehler sterben, bevor sie laufen, eine 300 Zeichen lange Zeile scrollt nicht mehr aus dem Bild, und toter Code lässt sich mit einem einzigen Apostroph umschalten. Diese Anleitung ist die erste Sprosse; die anderen beiden sind einen Klick entfernt.
Apostroph gegenüber Rem: nehmen Sie den Apostroph
VBA hat zwei Kommentarmarkierungen, und sie sind nicht gleichwertig.
' Der Apostroph funktioniert ueberall - ganze Zeile oder Zeilenende
x = 5 ' erklaert diese Zuweisung
Rem Die Rem-Anweisung funktioniert nur als GANZE Anweisung
x = 5 : Rem Sie brauchen einen Doppelpunkt, um Rem hinter Code zu setzen
Rem x = 5 ' <- Rem kann ohne Doppelpunkt nicht am Zeilenende stehen
Der Apostroph ' ist die moderne, universelle Markierung: Er ist am Zeilenanfang oder angehängt an das
Ende jeder Anweisung erlaubt. Rem ist ein Überbleibsel aus dem frühen BASIC — es ist eine Anweisung,
muss also eine Anweisung beginnen, und um es hinter Code zu setzen, brauchen Sie einen Doppelpunkt als
Trenner (x = 5 : Rem Notiz). Es gibt keinen Grund, in neuem Code zu Rem zu greifen. Lernen Sie den
Apostroph und vergessen Sie, dass es Rem gibt — außer für das eine Mal, wenn Sie es in fremdem Code
erben.
Einen Block auskommentieren: der Button versteckt sich
VBA hat keine /* ... */-Blockkommentar-Syntax. Um mehrere Zeilen zu deaktivieren, stellen Sie
jeder einzelnen einen Apostroph voran:
' total = 0
' For i = 1 To n
' total = total + data(i)
' Next i
Das von Hand zu tun, ist mühsam, weshalb Anfänger Code löschen, um zu prüfen, ob er das Problem ist — und ihn dann nicht zurückbekommen. Tun Sie das nicht. Der VBA-Editor bringt die Buttons Comment Block und Uncomment Block mit, die jede markierte Zeile auf einen Schlag mit einem Apostroph versehen oder ihn wieder entfernen. Der Haken: Sie liegen auf der Edit toolbar, die standardmäßig nicht angezeigt wird. Blenden Sie sie einmal über Ansicht > Symbolleisten > Edit ein, und das Deaktivieren eines Zehn-Zeilen-Blocks wird zu Markieren-und-Klicken. Das ist die nützlichste Debugging-Gewohnheit in VBA überhaupt: Löschen Sie nie Code, um eine Theorie zu testen — kommentieren Sie ihn aus, führen Sie ihn aus, dann kommentieren Sie ihn wieder ein.
Die stumme Falle: ein Kommentar tötet eine Zeilenfortsetzung
Hier ist die, die einen Nachmittag kostet. Sie können keinen Kommentar in die Mitte einer Anweisung setzen,
die mit der _-Fortsetzung über Zeilen verteilt ist, denn der Apostroph beendet die logische Zeile —
und er verschluckt das _ gleich mit.
' KAPUTT - der Kommentar frisst die Fortsetzung
total = price _ ' den Grundpreis addieren
+ tax ' <- "+ tax" ist jetzt eine eigene, kaputte Anweisung
' RICHTIG - keine Kommentare auf fortgesetzten Zeilen, oder einen darueber
' Grundpreis und Steuer addieren
total = price _
+ tax
Auf den ersten Blick sieht daran nichts falsch aus, und die Fehlermeldung — Expected: end of statement
in der Zeile + tax, oder ein stillschweigend verändertes Ergebnis — zeigt an die falsche Stelle. Die
Regel: Eine _-Zeilenfortsetzung und ein Kommentar können sich keine physische Zeile teilen. Setzen Sie
die Erklärung auf ihre eigene Kommentarzeile über der Anweisung. (Hier ist die Nahtstelle, an der zwei
unserer drei Quelltext-Token kollidieren; die Anleitung zur Zeilenfortsetzung
behandelt die andere Hälfte.)
Quellcode-Kommentar gegenüber dem Zell-Comment-Objekt
Zwei völlig verschiedene Dinge teilen sich das Wort Kommentar, und Suchende landen hier mit der einen oder der anderen Bedeutung im Sinn.
- Ein Quellcode-Kommentar (dieser Artikel) — ein Apostroph in Ihrem VBA-Code. Er lebt im Editor, dokumentiert oder deaktiviert Code und erscheint nie auf dem Arbeitsblatt.
- Ein Zell-Comment bzw. eine Note — eine gelbe Notiz, die an einer Zelle im Gitter hängt und die
Sie im Code mit
Range("A1").AddComment "text"(älter) oder überRange("A1").NoteText/ die moderne threaded Comments API hinzufügen. Es sind Daten auf dem Blatt, sichtbar für jeden, der die Datei öffnet.
Sind Sie hier, um Ihren Code zu kommentieren, bleiben Sie — alles oben Gesagte gilt. Wollten Sie aus
einem Makro heraus eine Notiz an eine Zelle heften, ist das das Objektmodell AddComment / NoteText,
ein völlig anderes Thema. Die beiden zu verwechseln ist gerade deshalb häufig, weil Excel dasselbe Wort
wiederverwendet hat.
Die Meinung: kommentieren Sie das Warum, nie das Was
Die meisten Kommentare sind Rauschen, und die schlimmsten sind aktiv schädlich. i = i + 1 ' eins zu i addieren sagt Ihnen nichts, was der Code nicht ohnehin schon sagt, und an dem Tag, an dem jemand die Zeile
zu i = i + step ändert, wird der Kommentar zu einer Lüge, die kein Compiler je anzeigt. Ein Kommentar,
der den Code bloß wiederholt, verrottet schneller als der Code selbst.
Die Kommentare, die ihre Pixel verdienen, sind die, die der Code nicht sagen kann:
- Warum, nicht was —
' Lieferanten senden Datumswerte als Text; vor dem Vergleich parsenerklärt eine Entscheidung. - Einheiten und Annahmen —
' Betrag ist in Cent, nicht in Dollarverhindert einen echten Bug. - Randfälle und Fallstricke —
' liefert Empty bei leerem Blatt - Aufrufer muessen das behandeln. - Deaktivierter Code mit Grund und Datum —
' 2026-09: Retry entfernt, die API ist jetzt stabil.
Und oft ist der beste Kommentar gar kein Kommentar: Eine Variable namens totalCents schlägt total ' in Cent, und Option Explicit mit echten Deklarationen einzuschalten dokumentiert die Absicht besser als ein
Absatz Prosa. Schreiben Sie den Code so, dass er weniger Kommentare braucht, und machen Sie die wenigen,
die Sie behalten, zum Warum.
Wenn die eigentliche Aufgabe ist, das Makro zu verstehen, nicht es zu kommentieren
Kommentare helfen Ihnen, Code zu lesen, den Sie bereits haben. Aber die halbe Zeit ist die eigentliche
Aufgabe das Gegenteil — Sie starren auf ein geerbtes 300-Zeilen-Makro ohne einen einzigen Kommentar und
versuchen herauszufinden, was es tut, bevor Sie es zu ändern wagen. Es Zeile für Zeile zu lesen,
Debug.Print einzustreuen und die Logik von Hand zu rekonstruieren, kann mehr kosten als die Änderung
selbst. ExcelMaster lässt Sie das
überspringen: Beschreiben Sie in normaler Sprache, was Sie wollen — „diese Spalte bereinigen, die Duplikate
entfernen und den Rest nach Monat summieren" —, und es schreibt und führt den Code aus und sichert vorher
Ihre Datei. Sie bekommen das Ergebnis, ohne fremdes, unkommentiertes VBA zu entschlüsseln, und der Code,
den es erzeugt, ist klein genug, um ihn tatsächlich zu lesen.
Häufig gestellte Fragen
Wie kommentiere ich in VBA eine Zeile aus?
Setzen Sie einen Apostroph ' an den Anfang der Zeile (oder irgendwo auf ihr — alles nach dem Apostroph
wird ignoriert). Um mehrere Zeilen auf einmal auszukommentieren, markieren Sie sie und klicken auf
Comment Block auf der Edit toolbar (über Ansicht > Symbolleisten > Edit einblenden), was jeder
markierten Zeile einen Apostroph voranstellt.
Was ist der Unterschied zwischen einem Apostroph und Rem in VBA?
Beide markieren einen Kommentar, aber der Apostroph ' funktioniert überall — am Zeilenanfang oder
angehängt an das Ende einer Anweisung —, während Rem eine Anweisung ist und eine beginnen muss und einen
Doppelpunkt braucht, um Code zu folgen (x = 5 : Rem Notiz). Nehmen Sie den Apostroph; Rem überlebt nur
in Altcode.
Wie kommentiere ich in VBA einen ganzen Block aus?
Es gibt keine /* */-Blocksyntax. Markieren Sie die Zeilen und nutzen Sie den Button Comment Block auf
der Edit toolbar, um jeder einen Apostroph voranzustellen, und Uncomment Block, um sie zu entfernen.
Blenden Sie die Symbolleiste über Ansicht > Symbolleisten > Edit ein, falls Sie die Buttons nicht sehen.
Warum bricht mein Code, wenn ich einen Kommentar hinzufüge?
Fast immer, weil Sie den Kommentar auf eine Zeile gesetzt haben, die mit einer _-Zeilenfortsetzung endet.
Der Apostroph beendet die logische Anweisung und verschluckt das _, sodass die nächste Zeile zu einer
eigenen, kaputten Anweisung wird. Verschieben Sie den Kommentar auf seine eigene Zeile über der
fortgesetzten Anweisung.
Ist ein VBA-Kommentar dasselbe wie ein Zellkommentar?
Nein. Ein VBA-Kommentar (im Quellcode) ist ein Apostroph in Ihrem Code und lebt nur im Editor. Ein
Zell-Comment bzw. eine Note ist eine gelbe Anmerkung an einer Arbeitsblattzelle, im Code mit
Range.AddComment oder Range.NoteText hinzugefügt und im Gitter sichtbar. Sie teilen sich einen Namen,
sind aber nicht verwandt.
Getestet in
Getestet in: Excel 365 (Windows 11), VBA 7.1 — zuletzt geprüft am 06.09.2026.
Verwandte Anleitungen: VBA Option Explicit · VBA Zeilenfortsetzung · VBA Dim · VBA Debug.Print · VBA MsgBox
