🚀The world's best VBA AI has evolved. ExcelMaster is now an autonomous Agent.Read more →
Back to Blog

VBA Kommentar in Excel — Code auskommentieren, die Apostroph-Regel und warum er nie läuft

|

VBA Kommentar in Excel — Code auskommentieren, die Apostroph-Regel und warum er nie läuft

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 älteren Rem, 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:

  1. Die Absicht erklären für den nächsten Menschen (oft Ihr künftiges Ich), und
  2. 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 über Range("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 parsen erklärt eine Entscheidung.
  • Einheiten und Annahmen' Betrag ist in Cent, nicht in Dollar verhindert 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