Tipps & Tricks: Detail

Hier finden Sie zu dem ausgewählten Tipp oder Trick die detaillierten Angaben.

Wenn in den folgenden Erläuterungen Texte wie MsgBox formatiert sind, handelt es sich um konkret einzugebende Inhalte wie VBA-Code oder die Eingabe von Werten. Menüs wie Datei Speichern sind wie hier zu sehen formatiert. Schaltflächen oder Registerkarten auf Dialogen werden wie Menüs behandelt.

Alle Tipps sind nach bestem Wissen geprüft, aber selbstverständlich ohne Gewähr. Sollten Sie doch einen Fehler darin entdecken, würden wir uns freuen, wenn Sie uns per E-Mail Bescheid sagen.

Bei umfangreichen Datenmengen ist es sehr praktisch, einige Daten mit Kommentaren kennzeichnen zu können (nämlich via Rechtsklick und Kommentar einfügen). Was jedoch anschließend fehlt, ist ein Überblick über diese Kommentare. Sie lassen sich zwar mit Bearbeiten Gehe zu Inhalte und der Auswahl "Kommentare" markieren, dann sehen Sie aber immer noch nicht deren Inhalte.

In der einfachsten Fassung zeigt das folgende Makro alle Kommentare mit Angabe der jeweiligen Zelle in einer MsgBox an:

Sub KommentareZeigen()
Dim cmtDieser As Comment
 
For Each cmtDieser In ActiveSheet.Comments
MsgBox "Kommentar in " & cmtDieser.Shape.TopLeftCell.AddressLocal & _
": " & cmtDieser.Text
Next
End Sub

Das ist bei vielen Kommentaren lästig und unübersichtlich, daher sollen die Kommentar-Daten besser in eine Excel-Tabelle geschrieben werden. Dazu werden sie aus dem aktiven Tabellenblatt ausgelesen und in ein neu angelegtes Tabellenblatt derselben Datei geschrieben:

Sub KommentarListe()
Dim shtListe As Worksheet
Dim shtKommentare As Worksheet
Dim cmtDieser As Comment
Dim i As Integer
 
Set shtKommentare = ActiveSheet
Set shtListe = ActiveWorkbook.Sheets.Add()
i = 0
For Each cmtDieser In shtKommentare.Comments
shtListe.Range("A1").Offset(i, 0).Range("A1").Value = _
cmtDieser.Shape.TopLeftCell.AddressLocal
shtListe.Range("A1").Offset(i, 1).Range("A1").Value = _
cmtDieser.Text
i = i + 1
Next
End Sub

Entsprechend lässt sich auch das Löschen alle Kommentare per VBA sehr einfach realisieren, wie das nächste Makro zeigt:

Sub KommentareLoeschen()
Dim cmtDieser As Comment
 
For Each cmtDieser In ActiveSheet.Comments
cmtDieser.Delete
Next
End Sub

Alternativ können Sie die Kommentare aber auch löschen, nachdem Sie mit Bearbeiten Gehe zu Inhalte und der Auswahl "Kommentare" alle markiert haben und dann per Rechtsklick Kommentar löschen anklicken. Anders als der Wortlaut vermuten lässt, werden dann die Kommentare in allen markierten Zellen entfernt.