Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Kommentar per VBA Größe ändern

Forumthread: Kommentar per VBA Größe ändern

Kommentar per VBA Größe ändern
Franz
Hallo Fachleute,
ich möchte per Makro die Größe von Kommentaren verändern, und hab mir mal die Schritte mit dem Rekorder aufgezeichnet:
Sub Makro1()
Range("e11").Select
Range("e11").Comment.Text Text:=""
With Selection.Font
.Name = "Tahoma"
.FontStyle = "Standard"
.Size = 9
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
Selection.ShapeRange.LockAspectRatio = msoTrue
Selection.ShapeRange.Height = 141.75
Selection.ShapeRange.Width = 106.5
End Sub

Lass ich das Makro aber ablaufen, kommt nur ne Fehlermeldung: "Objekt unterstützt diese Eigenschaft oder Methode nicht"
Ich bitte um Hilfe, wie ich das angehen kann.
Danke schonmal und Grüße
Franz
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Kommentar per VBA Größe ändern
05.12.2009 21:24:09
Josef
Hallo Franz,
Sub formatComment()
  Dim objCmnt As Comment
  
  On Error Resume Next
  Set objCmnt = Range("e11").Comment
  On Error GoTo 0
  
  If Not objCmnt Is Nothing Then
    With objCmnt.Shape
      With .DrawingObject.Font
        .name = "Tahoma"
        .FontStyle = "Standard"
        .Size = 9
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ColorIndex = xlAutomatic
      End With
      .LockAspectRatio = msoTrue
      .Height = 141.75
      .Width = 106.5
    End With
  End If
  
  Set objCmnt = Nothing
End Sub


Gruß Sepp

Anzeige
AW: Kommentar per VBA Größe ändern
05.12.2009 21:51:56
Franz
Hallo Sepp,
danke, das ist Spitze, bin begeistert. Frag jetzt auch gar nicht lang, waurm das andere nicht geht, sondern werde versuchen das zu verstehn. Und dazu hab ich noch eine Frage:
"LockAspectRatio = msoTrue" heißt ja, dass die Proportionen beibehalten werden. Warum muss dann noch sowohl Height als auch Width angegeben werden. Bzw. hab ich jetzt mal rumprobiert: wenn ich entweder nur Height oder nur Width angebe, behält er trotzdem die Proportion bei, allerdings bei unterschiedlichen Größen.
Grüße
Franz
Anzeige
AW: Kommentar per VBA Größe ändern
05.12.2009 22:20:41
Josef
Hallo Franz,
ist logisch, weil deine .Width bzw. .Height- Angaben nicht dem Seitenverhältis des Kommentares entsprechen.
Darum wird, wenn du nur eine der beiden Größen angibst, die andere entsprechend verändert.
Probiere diese Werte abwechselnd und einzeln, dann wirst du sehen das der Kommentar
immer die selbe Größe hat.
.LockAspectRatio = msoTrue
'.Height = 141.75
.Width = 258

Gruß Sepp

Anzeige
AW: Kommentar per VBA Größe ändern
05.12.2009 22:31:39
Franz
Hallo Sepp,
danke, gut, das wollt ich wissen. Und es heißt also, dass auch eine der beiden Angaben reicht. Will ich also alle Kommentare, die in einer Spalte untereinander stehen, z. B. in der gleichen Breite haben, reicht in einer Schleife die Angabe von Width, die Höhe wird dann vom vorigen Höhen-Seiten-Verhältnis abhängen.
Danke und Grüße
Franz
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Größe von Excel-Kommentaren per VBA anpassen


Schritt-für-Schritt-Anleitung

Um die Größe von Excel-Kommentaren automatisch anzupassen, kannst Du ein einfaches VBA-Makro nutzen. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und gehe zu den Entwicklertools. Falls Du diese nicht siehst, aktiviere sie über die Excel-Optionen.

  2. Klicke auf "Visual Basic" oder drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Füge ein neues Modul hinzu: Rechtsklick auf "VBAProject" > "Einfügen" > "Modul".

  4. Kopiere den folgenden Code in das Modul:

    Sub formatComment()
       Dim objCmnt As Comment
       On Error Resume Next
       Set objCmnt = Range("E11").Comment
       On Error GoTo 0
    
       If Not objCmnt Is Nothing Then
           With objCmnt.Shape
               With .DrawingObject.Font
                   .Name = "Tahoma"
                   .Size = 9
               End With
               .LockAspectRatio = msoTrue
               .Height = 141.75
               .Width = 106.5
           End With
       End If
    
       Set objCmnt = Nothing
    End Sub
  5. Schließe den VBA-Editor und kehre zu Excel zurück.

  6. Führe das Makro aus: Gehe zu "Entwicklertools" > "Makros" > wähle formatComment und klicke auf "Ausführen".

Dieses Makro wird die Größe des Kommentars in Zelle E11 anpassen. Du kannst die Zelle nach Bedarf ändern.


Häufige Fehler und Lösungen

  • Fehlermeldung: "Objekt unterstützt diese Eigenschaft oder Methode nicht": Dies kann auftreten, wenn der Kommentar in der angegebenen Zelle nicht vorhanden ist. Stelle sicher, dass ein Kommentar in der Zelle existiert, bevor Du das Makro ausführst.

  • Kommentargröße wird nicht angepasst: Überprüfe, ob die Werte für .Height und .Width sinnvoll sind und dem gewünschten Seitenverhältnis des Kommentars entsprechen. Du kannst auch nur eine der beiden Größen angeben, solange LockAspectRatio auf msoTrue gesetzt ist.


Alternative Methoden

Eine alternative Methode, um die Größe von Excel-Kommentaren zu verändern, ist die Verwendung von Schleifen, um mehrere Kommentare gleichzeitig zu bearbeiten. Hier ist ein Beispiel:

Sub adjustAllComments()
    Dim cmt As Comment
    For Each cmt In ActiveSheet.Comments
        With cmt.Shape
            .LockAspectRatio = msoTrue
            .Width = 100 ' Beispielbreite
            ' Höhe wird automatisch angepasst
        End With
    Next cmt
End Sub

Dieses Makro passt die Breite aller Kommentare auf dem aktiven Blatt an und behält die Proportionen bei.


Praktische Beispiele

  1. Alle Kommentare in einer Spalte vergrößern: Du kannst eine Schleife durch alle Zellen in einer Spalte verwenden und deren Kommentare anpassen:

    Sub formatColumnComments()
       Dim cell As Range
       For Each cell In Range("A1:A10") ' Anpassung für Spalte A
           If Not cell.Comment Is Nothing Then
               With cell.Comment.Shape
                   .LockAspectRatio = msoTrue
                   .Width = 150
               End With
           End If
       Next cell
    End Sub
  2. Größe von Notizen automatisch anpassen: Du kannst die Größe von Notizen in einer Zeile anpassen, indem Du die Höhe und Breite in einer Schleife veränderst.


Tipps für Profis

  • Verwende On Error Resume Next: Dies hilft, Fehler beim Zugriff auf Kommentare zu vermeiden, die möglicherweise nicht existieren.
  • Experimentiere mit den Größen: Probiere verschiedene Werte für .Width und .Height aus, um die besten Ergebnisse für Deine Kommentare zu erzielen.
  • Nutze das Makro für alle Kommentare: Wenn Du alle Kommentare auf einmal anpassen möchtest, kannst Du die Schleife für alle Zellen verwenden, wie im vorherigen Abschnitt beschrieben.

FAQ: Häufige Fragen

1. Warum muss ich sowohl Height als auch Width angeben?
Wenn LockAspectRatio = msoTrue gesetzt ist, wird die Proportion des Kommentars beibehalten. Du kannst jedoch nur eine der beiden Größen angeben, und die andere wird automatisch angepasst.

2. Wie kann ich die Größe aller Kommentare gleichzeitig ändern?
Du kannst eine Schleife verwenden, um durch alle Kommentare in Deinem Arbeitsblatt zu iterieren und deren Größe anzupassen, wie im Abschnitt über alternative Methoden gezeigt.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige