Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema Frame
BildScreenshot zu Frame Frame-Seite mit Beispielarbeitsmappe aufrufen

Textfarbe in Kommentar mit VBA ändern? | Herbers Excel-Forum


Betrifft: Textfarbe in Kommentar mit VBA ändern? von: Kasimir
Geschrieben am: 14.01.2010 13:59:43

Hallo Leute,

wie aus der Überschrift ja ersichtlich, möchte ich per VBA Texte in einem Kommentarfeld formatieren. Vorrangig möchte ich die Texte farblich verändern. Leider zeichnet mir der Makrorecorder dies nicht auf. Geht das trotzdem?

Danke und Gruß,
Kasimir

  

Betrifft: AW: Textfarbe in Kommentar mit VBA ändern? von: Hajo_Zi
Geschrieben am: 14.01.2010 14:05:14

Hallo Kasimir,

hier mal alles aus meinem Archiv was ich zu Kommentar habe, da findest Du bestimmt was.

Excel Zellen Kommentar Eigenschaften
ob und wie man die Eigenschaften dauerhaft umstellen kann, weiß ich nicht. Ich helfe mir immer mit folgendem Makro, das alle Kommentare auf allen Arbeitsblättern der aktiven Arbeitsmappe auf einmal nach meinem Geschmack formatiert:
Sub Kommentar_Font()
Dim Cell As Range
For Each Cell In Cells.SpecialCells(xlCellTypeComments)
With Cell.Comment.Shape.TextFrame.Characters.Font
.Size = 100
.Bold = True
.ColorIndex = 3
.FontStyle = "Arial"
End With
Cell.Comment.Shape.Fill.ForeColor.SchemeColor = 32 ‘ Hintergrundfarbe
Next
End Sub
Oder noch größer
Sub Kommentar_Font_14_AutoSize()
Dim Cell As Range
For Each Cell In Cells.SpecialCells(xlCellTypeComments)
With Cell.Comment.Shape.TextFrame
.Characters.Font.Name = "Comic Sans MS"
.Characters.Font.Size = 14
.Characters.Font.Bold = False
.AutoSize = True
End With
Next
End Sub
Von Heri

Sub Kommentar_eingeben()
’ Es sind noch keine Kommentare vorhanden
‘ Ansonsten Error
Dim I As Integer
‘ On Error Resume Next
‚ vorhandener Kommentar wird entfernt
For I = 106 To 161
With Cells(I, 6)
.AddComment
.Comment.Visible = False ‚ Kommentar sollen ausgeblendet sein
.Comment.Text Text:=CStr(Cells(I, 7))
With .Comment.Shape
.ScaleWidth 4.24, msoFalse, msoScaleFromTopLeft
.ScaleHeight 0.51, msoFalse, msoScaleFromTopLeft
With .TextFrame.Characters
.Font.Size = 18
.Font.Name = « Comic Sans MS »
.Font.Bold = True
End With
End With
End With
Next I
End Sub
Option Explicit
Dim oldtarget As String

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
Range(oldtarget).Comment.Visible = False
oldtarget = Target.Address
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
With Range(Target.Address)
.Comment.Delete
.AddComment
.Comment.Visible = True
.Comment.Text Text:=Target.Value
End With
End Sub
Sub Kommentar_kopieren()
Dim RaZelle As Range
For Each RaZelle In Worksheets("Tabelle1").Cells.SpecialCells(xlCellTypeComments)
With Worksheets("Tabelle2").Range(RaZelle.Address)
.AddComment ' Neuer Kommentar
.Comment.Visible = False ' nicht sichtbar
.Comment.Text Text:=RaZelle.Comment.Text
End With
Next RaZelle
End Sub Sub Kommentar_auslesen()
Dim RaZelle As Range
Dim LoI As Long
For Each RaZelle In Worksheets("Tabelle1").Cells.SpecialCells(xlCellTypeComments)
With Worksheets("Tabelle2")
.Cells(LoI + 1, 1) = RaZelle.Address
.Cells(LoI + 1, 2) = RaZelle.Comment.Text
LoI = LoI + 1
End With
Next RaZelle
End Sub Sub Kommgoesse2()
Dim com As Comment
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
For Each com In ws.Comments
With com
.Shape.TextFrame.AutoSize = True
.Shape.Fill.ForeColor.SchemeColor = 3
With .Shape.TextFrame.Characters.Font
.Name = "Arial"
.Size = 6
.Bold = True
.ColorIndex = 3
End With
End With
Next
Next
End Sub GrußformelHomepage


  

Betrifft: AW: Textfarbe in Kommentar mit VBA ändern? von: Kasimir
Geschrieben am: 14.01.2010 14:08:22

Hallo,
ich nochmal. Was ich vergessen hatte zu erwähnen, in dem Kommentarfeld stehen mehrere Namen und jeder Name soll eine andere Farbe erhalten, weil das Kommentarfeld eine Legende werden soll.

Beispiel Text in Kommentarfeld

Legende:
Hans
Otto
Klaus

Dann soll das Wort Legende z.B. in schwarz, der Name Hans z.B. in blau, der Name Otto z.B. in grün und der Name Klaus z.B. in pink erscheinen. Geht das?

Danke und Gruß,
Kasimir


  

Betrifft: AW: Textfarbe in Kommentar mit VBA ändern? von: Kasimir
Geschrieben am: 14.01.2010 14:11:06

Hallo Hajo,

danke Dir für Deine Antowrt. Leider hatte ich ziemlich zeitgleich mit Deiner Antwort noch etwas zu meiner Frage hinzugefügt. Nach dem Durchschauen Deiner Antwort sieht das alles so aus, dass ich den gesamten Text damit farblich ändern kann. Ich benötige das allerdings nach folgendem Schema

Beispiel Text in Kommentarfeld
Legende:
Hans
Otto
Klaus

Dann soll das Wort Legende z.B. in schwarz, der Name Hans z.B. in blau, der Name Otto z.B. in grün und der Name Klaus z.B. in pink erscheinen. Geht das?

Gruß,
Kasimir


  

Betrifft: AW: Textfarbe in Kommentar mit VBA ändern? von: Luschi
Geschrieben am: 14.01.2010 14:09:27

Hallo Kasimir,

so mache ich das:

    Dim ws As Worksheet, rg As Range, shp As Shape
    
    Set ws = ActiveSheet
    Set rg = ws.Range("A25")
    Set shp = rg.Comment.Shape
    With shp
       'Breite des Kommentars
       .ScaleWidth 4, msoFalse, msoScaleFromTopLeft
       'Höhe des Kommentars
       .ScaleHeight 0.8, msoFalse, msoScaleFromTopLeft
       With .TextFrame
         'die ersten 30 Zeichen formatieren
         .Characters(1, 30).Font.Size = 10
         .Characters(1, 30).Font.ColorIndex = 7
         .Characters(1, 30).Font.Underline = xlUnderlineStyleSingle
        End With
    End With
    Set shp = Nothing
    Set rg = Nothing
    Set ws = Nothing
Gruß von Luschi
aus klein-Paris


  

Betrifft: AW: Textfarbe in Kommentar mit VBA ändern? von: Kasimir
Geschrieben am: 14.01.2010 14:16:39

Hallo,

danke Luschi, Deine Antwort bringt mich erst mal weiter. Bei weiteren Fragen melde ich mich nochmal.

Gruß,
Kasimir


  

Betrifft: AW: Textfarbe in Kommentar mit VBA ändern? von: Kasimir
Geschrieben am: 14.01.2010 14:45:19

HAllo,

so, nun bin ich doch nochmal da. Ich habe mir nun nachfolgendes Makro erstellt.

Option Explicit

Sub Test()
Dim strMitarbeiter1 As String
Dim strMitarbeiter2 As String
Dim strMitarbeiter3 As String
Dim strMitarbeiter4 As String
Dim strMitarbeiter5 As String
Dim strKommentartext As String

strMitarbeiter1 = Range("I1")
strMitarbeiter2 = Range("I2")
strMitarbeiter3 = Range("I3")
strMitarbeiter4 = Range("I4")
strMitarbeiter5 = Range("I5")

If strMitarbeiter1 <> "" Then strKommentartext = "Mitarbeiter: " & strMitarbeiter1
If strMitarbeiter2 <> "" Then strKommentartext = strKommentartext & vbLf & "Mitarbeiter: " &  _
strMitarbeiter2
If strMitarbeiter3 <> "" Then strKommentartext = strKommentartext & vbLf & "Mitarbeiter: " &  _
strMitarbeiter3
If strMitarbeiter4 <> "" Then strKommentartext = strKommentartext & vbLf & "Mitarbeiter: " &  _
strMitarbeiter4
If strMitarbeiter5 <> "" Then strKommentartext = strKommentartext & vbLf & "Mitarbeiter: " &  _
strMitarbeiter5

On Error Resume Next
With Range("A1")
    'Kommentar löschen
    .ClearComments
On Error GoTo 0
    'Neuen kommenta einfügen
    .AddComment
    'Text in kommentafeld einfügen
    .Comment.Text Text:=strKommentartext
    'Kommentarfeld formatieren
     With .Comment.Shape
        With .TextFrame
          'die ersten 30 Zeichen formatieren
          .Characters(1, 30).Font.Size = 12
          .Characters(1, 30).Font.ColorIndex = 7
         End With
     End With
End With
End Sub
Leider erhalte ich beim Formatieren, also in der Zeile " .Characters(1, 30).Font.ColorIndex = 7" der Schriftfarbe einen Laufzeitfehler, der die Meldung

Schriftgrad muss zwischen 1 und 409 Punkten liegen

ausgibt. Leider kann ich damit nichts anfangen. Woran kann das nun liegen?

Danke und Gruß,
Kasimir


  

Betrifft: AW: Textfarbe in Kommentar mit VBA ändern? von: Luschi
Geschrieben am: 14.01.2010 15:35:24

Hallo Kasimir,

so klappt es bei mir: https://www.herber.de/bbs/user/67223.xls

Gruß von Luschi
aus klein-Paris


  

Betrifft: AW: Textfarbe in Kommentar mit VBA ändern? von: Kasimir
Geschrieben am: 14.01.2010 19:00:30

Hallo Luschi,

danke Dir für Deine Mühe. Leider bringt Deine Beispieldatei bei mir einen Fehler und funktioniert nicht. Wobei mich ehrlich gesagt mehr interessieren würde, was die Meldung

Schriftgrad muss zwischen 1 und 409 Punkten liegen

zu sagen hat und warum diese auftritt? Denn es wird doch angegeben, dass ab dem 1. Zeichen für 30 Zeichen der Text die Farbe annehmen soll. Warum dann diese Meldung?

Danke und Gruß,
Kasimir


  

Betrifft: AW: Textfarbe in Kommentar mit VBA ändern? von: Luschi
Geschrieben am: 15.01.2010 09:53:34

Hallo Kasimir,

welches SP (Service Pack) ist denn auf Deinem PC (Excel 2003) installiert.
Bei mir klappt das wunderbar.

Gruß von Luschi
aus klein-Paris


Beiträge aus den Excel-Beispielen zum Thema "Textfarbe in Kommentar mit VBA ändern?"