Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Einem Label eine Farbe zuweisen (VBA)

Einem Label eine Farbe zuweisen (VBA)
Gerd
Hallo,
ich habe ein kleines VBA Problem an dem ich schon länger grübele, obwohl es sehr einfach klingt.
Ich füge in ein Arbeitsblatt über Entwicklertools -> Einfügen -> ActiveX Steuerelemente ein Element "Bezeichnung" ein. Ich nenne dieses im folgenden Label, da es Excel von sich aus mit "Label1" bezeichnet.
Diesem Label möchte ich jetzt per VBA eine Schriftfarbe zuweisen. Ich versuche es mit

Dim w as Worksheet
w.Label1.Font.Colorindex = 4
oder

w.Label1.ForeColor = RGB (35,24,24) 
aber nichts funktioniert.
Ich schaffe es über

w.Shapes("Label1").Visible = True
das Label Sichtbar / Unsichtbar zu machen, auch wenn mir dieser Weg über "Shapes" etwas komisch vorkommt - an die Schriftfarbe komme ich aber auch so nicht ran.
Leider zeigt bei mir Excel auch nicht freiwillig die Eigenschaften den Label als Drop Down Box an (und mit dem Objektkatalog kann ich irgendwie nicht Freundschaft schließen).
Wer hat eine Idee ?
Gerd
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Einem Label eine Farbe zuweisen (VBA)
16.09.2011 20:15:16
Gerd
Hallo Gerd!

Sub test()
Dim Ws As Worksheet
Set Ws = Worksheets("Tabelle1")
Ws.OLEObjects("Label1").Object.ForeColor = vbRed
End Sub
Gruß (auch :-) ) Gerd
AW: Einem Label eine Farbe zuweisen (VBA)
16.09.2011 20:21:46
Gerd
Tatsache, es funktioniert ... vielen Dank anderer Gerd :-)
Kannst Du vielleicht noch sagen warum man hier über OLEObjects gehen muss ? Wenn ich auf gleichem Weg eine Schaltfläche etc. einfüge kann man die doch auch über Namen ansprechen, warum sind die Labels so störrisch ?
Gerd
Anzeige
AW: Einem Label eine Farbe zuweisen (VBA)
16.09.2011 20:39:24
Gerd
Hallo Namensvetter,
das kann ich so jetzt nicht voll bestätigen, dass die Subklasse angegeben werden muss.
Beachte, was dir jeweils die Intellisence anzeigt.

Sub test2()
Tabelle1.Label1.Caption = "Gerd"
Tabelle1.Label1.ForeColor = vbBlue
End Sub
Gruß Gerd
Anzeige
AW: Einem Label eine Farbe zuweisen (VBA)
16.09.2011 21:05:30
Gerd
Tatsache, so geht es auch... ich staune :-)
Aber über eines wundere ich mich noch

ActiveSheet.Label1.Forecolor = vbBlue

funktioniert, aber

Sub test (w as Worksheet)
w.Label1.Forecolor = vbBlue  

geht nicht
Ich hatte es immer auf einem übergebenen Worksheet probiert - warum geht das nicht ?
viele Grüße,
Gerd
Anzeige
AW: Einem Label eine Farbe zuweisen (VBA)
16.09.2011 20:42:01
Josef

Hallo Gerd,

Label1.ForeColor = RGB(0, 0, 255)
'oder
Sheets("Tabelle1").Label1.ForeColor = RGB(255, 0, 255)


« Gruß Sepp »

Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Einem Label in Excel VBA eine Farbe zuweisen


Schritt-für-Schritt-Anleitung

Um einem Label in Excel VBA eine Schriftfarbe zuzuweisen, folge diesen Schritten:

  1. Öffne das Entwickler-Tab in Excel:

    • Aktiviere das Entwickler-Tab, falls es noch nicht sichtbar ist. Gehe zu Datei -> Optionen -> Menüband anpassen und aktiviere das Entwickler-Tab.
  2. Füge ein Label hinzu:

    • Klicke auf Einfügen im Entwickler-Tab und wähle ActiveX-Steuerelemente. Füge das Steuerelement "Bezeichnung" (Label) in dein Arbeitsblatt ein.
  3. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  4. Erstelle ein neues Modul:

    • Klicke mit der rechten Maustaste auf VBAProject (DeinDateiname) und wähle Einfügen -> Modul.
  5. Füge den folgenden VBA-Code ein, um die Schriftfarbe zu ändern:

    Sub SetLabelColor()
       Dim ws As Worksheet
       Set ws = ThisWorkbook.Worksheets("Tabelle1") ' Anpassen an den Namen deines Sheets
       ws.OLEObjects("Label1").Object.ForeColor = RGB(255, 0, 0) ' Beispiel für rote Schriftfarbe
    End Sub
  6. Führe das Makro aus:

    • Wechsle zurück zu Excel und drücke ALT + F8, wähle SetLabelColor aus und klicke auf Ausführen.

Häufige Fehler und Lösungen

  • Fehler: "Objekt nicht gefunden"

    • Stelle sicher, dass du den richtigen Namen des Labels verwendest. Überprüfe den Namen im Eigenschaften-Fenster des Labels.
  • Problem: Die Schriftfarbe ändert sich nicht

    • Prüfe, ob du das Label korrekt als OLEObject angesprochen hast. Verwende den Code:
      ws.OLEObjects("Label1").Object.ForeColor = RGB(255, 0, 0)
  • Fehler: "Methoden oder Eigenschaften nicht unterstützt"

    • Möglicherweise versuchst du, die Farbe auf einem nicht existierenden Label zu ändern. Überprüfe den Namen und die Sichtbarkeit des Labels.

Alternative Methoden

Es gibt verschiedene Wege, die Farbe eines Labels zu ändern:

  1. Direkte Ansprache über das Arbeitsblatt:

    Sub ChangeLabelColor()
       Tabelle1.Label1.ForeColor = RGB(0, 0, 255) ' Setzt die Schriftfarbe auf Blau
    End Sub
  2. Verwendung von With-Anweisung:

    Sub SetLabelProperties()
       With ThisWorkbook.Worksheets("Tabelle1").Label1
           .ForeColor = RGB(0, 255, 0) ' Setzt die Schriftfarbe auf Grün
           .Caption = "Neuer Text" ' Ändert den Text des Labels
       End With
    End Sub

Praktische Beispiele

Hier sind einige praktische Beispiele, wie du die Eigenschaften von Labels in Excel VBA ändern kannst:

  1. Farbe und Text ändern:

    Sub ChangeLabelTextAndColor()
       Dim ws As Worksheet
       Set ws = ThisWorkbook.Worksheets("Tabelle1")
       With ws.OLEObjects("Label1").Object
           .ForeColor = RGB(255, 165, 0) ' Setzt die Schriftfarbe auf Orange
           .Caption = "Hallo, Gerd!" ' Ändert den Text des Labels
       End With
    End Sub
  2. Hintergrundfarbe ändern:

    Sub ChangeLabelBackColor()
       Dim ws As Worksheet
       Set ws = ThisWorkbook.Worksheets("Tabelle1")
       ws.OLEObjects("Label1").Object.BackColor = RGB(200, 200, 200) ' Setzt die Hintergrundfarbe
    End Sub

Tipps für Profis

  • Nutze die RGB-Funktion für präzise Farbwahl. Beispiel: RGB(255, 255, 0) für Gelb.
  • Halte deinen VBA-Code organisiert, indem du Kommentare hinzufügst, um die Funktionsweise zu erklären.
  • Verwende die IntelliSense-Funktion im VBA-Editor, um die verfügbaren Eigenschaften und Methoden für Labels zu erkunden.

FAQ: Häufige Fragen

1. Warum muss ich OLEObjects verwenden, um die Farbe eines Labels zu ändern? Die Labels in ActiveX-Steuerelementen sind OLE-Objekte. Daher ist es notwendig, über OLEObjects darauf zuzugreifen, um ihre Eigenschaften zu ändern.

2. Wie kann ich die Hintergrundfarbe eines Labels ändern? Verwende die BackColor-Eigenschaft, um die Hintergrundfarbe zu ändern:

ws.OLEObjects("Label1").Object.BackColor = RGB(255, 255, 255) ' Beispiel für Weiß

3. Kann ich die Schriftart eines Labels ändern? Ja, du kannst die Schriftart mit der Font-Eigenschaft ändern:

ws.OLEObjects("Label1").Object.Font.Name = "Arial"

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige