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

Label wird nicht transparent

Forumthread: Label wird nicht transparent

Label wird nicht transparent
02.04.2025 10:30:15
Willi
Guten Morgen,

ich stehe vor einem Problem, bei dem ich nicht mehr weiter komme und hoffe daher auf eure Expertise.
Ich möchte per Code ein Label ins Tabellenblatt einfügen und den Namen ändern. Das klappt auch mit folgendem Code:
Sub LabelEinfuegen()


Dim obj As OLEObject

Set obj = ActiveSheet.OLEObjects.Add(ClassType:="Forms.Label.1", Left:=0, Top:=0, Width:=500, Height:=500)
obj.Name = "Hintergrund"

End Sub

Jetzt möchte ich das Label transparent machen und hab es mit diesen beiden Codezeilen versucht:
obj.Object.BackStyle = fmBackStyleTransparent

oder
obj.Object.BackStyle = 0

Beides hat die Eigenschaft richtig gesetzt, das Label ist aber tatsächlich nicht transparent.
Auch wenn ich dann die Eigenschaft manuell verändere ist am Label keine Änderung zu sehen.

Wenn ich das Label testweise manuell erstelle und folgenden Code ausführe wird das Label wie gewünscht transparent:
Sub HintergrundTransparent()


Tabelle1.Hintergrund.BackStyle = fmBackStyleTransparent

End Sub

Mir scheint, dass es ein Problem mit dem Einfügen per Code gibt. Hat jemand eine Idee, was das Problem sein könnte?

Gruß,
Willi
Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Label wird nicht transparent
02.04.2025 16:20:09
Piet
Hallo

ich habe so etwas noch nie gemacht, kann nur raten. Hast du es mal so versucht??
obj.Hintergrund.BackStyle oder obj.Object.Hintergrund.BackStyle

mfg Piet
Das funktioniert...
03.04.2025 13:30:46
Case
Moin Willi, :-)

... so: ;-)
Option Explicit

Public Sub Main()
Dim objShape As Object
Set objShape = ActiveSheet.OLEObjects.Add(ClassType:="Forms.Label.1", Left:=0, Top:=0, Width:=500, Height:=500)
With objShape
.Name = "Hintergrund"
.Object.BackStyle = 0
.ShapeRange.Fill.Transparency = 1
.Object.BorderStyle = 0
End With
End Sub

Servus
Case
Anzeige
AW: Das funktioniert...
03.04.2025 13:48:22
Willi
Moin Case,

ich bin begeistert! Das hat tatsächlich funktioniert.
Vielen Dank!

Gruß Willi
Und du kannst...
03.04.2025 13:53:38
Case
Moin Willi, :-)

... dem erstellten Label auch Code zuweisen. Du hast diese Möglichkeiten für ein Label: ;-)

Userbild

Servus
Case
Anzeige
AW: Und du kannst...
03.04.2025 14:01:37
Willi
Moin Case,

das war mir bekannt.
Nochmals vielen Dank für die Hilfe. Ich hatte es in Gedanken schon ein bisschen aufgegeben.

Gruß,
Willi
Ich meinte...
03.04.2025 14:05:12
Case
Moin Willi, :-)

... gleich beim Erstellen des Labels. Nicht hinterher. Aber wenn dir das bekannt ist - alles OK. ;-)

Servus
Case
Anzeige
AW: Ich meinte...
03.04.2025 14:13:56
Willi
Ja, den Code auch automatisiert hinzu zu fügen, das bekomme ich hin.

Gruß,
Willi
AW: Label wird nicht transparent
02.04.2025 16:39:21
Willi
Hallo Piet,

danke für die Hilfsbereitschaft.
ich hab es eben ausprobiert. Bei beiden Varianten bekomme ich einen Laufzeitfehler. "Objekt unterstützt diese Eigenschaft oder Methode nicht"

Gruß,
Willi
Anzeige
AW: Label wird nicht transparent
02.04.2025 17:32:55
Raimund
Hi Willi

So?

Sub LabelEinfuegen()


Dim shp As Shape

' Füge ein Rechteck (als Label-Ersatz) hinzu
Set shp = ActiveSheet.Shapes.AddShape(msoShapeRectangle, 0, 0, 500, 500)
shp.Name = "Hintergrund"

' Setze den Hintergrund des Rechtecks auf transparent
shp.Fill.Transparency = 1 ' Vollständig transparent
shp.Line.Visible = msoFalse ' Entferne die Linienzeichnung

End Sub


Hier wird ein Rechteck erstellt, das als Label fungiert und sich transparent verhält. Die Fill.Transparency-Eigenschaft auf 1 macht es vollständig transparent.
Wenn du Linien um das Rechteck vermeiden möchtest, kannst du shp.Line.Visible = msoFalse verwenden.

Gruss

Raimund
Anzeige
AW: Label wird nicht transparent
03.04.2025 08:37:03
Willi
Hallo Raimund,

im Prinzip wollte ich es genau so haben. Nur, dass ich dem Shape nur ein Makro zuweisen kann, was einem Click-Event entsprechen würde.
Ich hätte vielleicht dazu schreiben sollen, dass ich das MouseMove-Event nutzen wollte. Andere Events gibt es hier nicht, oder?

Gruß,
Willi
Anzeige
AW: Label wird nicht transparent
03.04.2025 12:50:54
Raimund
Hi Willi,

In Excel VBA gibt es keine direkte Möglichkeit, ein MouseMove-Event für Shapes zu verwenden, da Shapes keine eigenen Events unterstützen.

Gruss

Raimund
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18