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

Forumthread: Eigenschaften von Shape

Eigenschaften von Shape
23.08.2013 23:17:04
Shape
Hallo Excelfreunde,
ich versuche schon seit geraumer Zeit in meinem Code:
Sub Rahm_1()
Tabelle3.Activate
ActiveSheet.Shapes.AddShape(msoShapeRectangle, LI_RA_1#, OB_RA_1, b1, h1).Select
Selection.ShapeRange.Fill.Visible = msoFalse
Selection.ShapeRange.Fill.Solid
Selection.ShapeRange.Fill.Transparency = 1#
Selection.ShapeRange.Line.Weight = 5
Selection.ShapeRange.Line.DashStyle = msoLineSolid
Selection.ShapeRange.Line.Style = 2
Selection.ShapeRange.Line.Transparency = 0#
Selection.ShapeRange.Line.Visible = msoTrue
Selection.ShapeRange.Line.ForeColor.SchemeColor = 0  '60 ist braun
Selection.ShapeRange.Line.BackColor.RGB = RGB(0, 0, 0)     '(139, 69, 19)
End Sub

winklige, anstatt abgerundete Ecken für meinen Rahmen zu bauen.
Hierzu habe ich versucht SoftEdge einzubauen, was aber leider nicht geht.
Der Objektkatalog und Microsofthilfe geben auch nicht viel her.
Hat hier jemand vllt. eine Idee?
Dank im Voraus, Gruß Friedel

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Eigenschaften von Shape
24.08.2013 08:26:00
Shape
Hi Friedel,
die Ecken sind doch winklig. Da du jedoch einen doppelten Rahmen erstellst, erscheinen sie optisch außen leicht abgerundet.


AW: Eigenschaften von Shape
24.08.2013 10:46:38
Shape
Hallo Beverly,
danke für deine Antwort.
Ja, die Ecken des inneren Rahmens sind winklig, die des Äußeren aber leider abgerundet.
Deshalb suche ich nach einem Code mit dem das möglich ist. Ich dachte so an "Softedge = 0"
Ist zwar nur eine Sache des Aussehens, würde ich aber trotzdem gern realisieren.
Gruß Friedel

Anzeige
AW: Eigenschaften von Shape
24.08.2013 11:55:07
Shape
Hi Friedel,
ich hatte doch bereits geschrieben, dass das damit zusmmenhängt, dass du einen doppelten Rahmen verwendest. Mit anderen Worte: es geht nicht, denn einem eckigen Rahmen kannst du nicht nocheinmal zuweisen, dass er eckig sein muss - das ist einfach die Darstellungsweise.
Du kannst höchstens versuchen, ein 2. Rechteckt mit einem einfachen Rahmen darüber zu legen, oder du verwendest gleich einen einfachchn Rahmen. Aber man sollte sich ernsthaft fragen, ob man nicht mit dem winzigen "Schönheitsfehler" leben könnte...


Anzeige
AW: Eigenschaften von Shape
24.08.2013 12:58:29
Shape
Hi Beverly,
nochmal danke.
Den Rahmen mit der Doppellinie benötige ich, um die Farbe "Weiß" darzustellen.
Andere Rahmenfarben stelle ich mit einem " Selection.ShapeRange.Line.Style = 1 " dar.
Dann ist der Rahmen gefüllt, hat aber auch außen abgerundete Ecken. Daher dachte ich dass man bei einem Rahmen der gefüllt ist, die Ecken winklig gestalten kann.
Gruß Friedel
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Eigenschaften von Shape in Excel VBA


Schritt-für-Schritt-Anleitung

Um die Eigenschaften von Shapes in Excel VBA zu ändern, kannst Du den folgenden Code verwenden. Dieser erstellt ein Rechteck und passt die Eigenschaften wie Füllung und Linienformat an.

Sub Rahm_1()
    Tabelle3.Activate
    ActiveSheet.Shapes.AddShape(msoShapeRectangle, LI_RA_1#, OB_RA_1, b1, h1).Select
    Selection.ShapeRange.Fill.Visible = msoFalse
    Selection.ShapeRange.Fill.Solid
    Selection.ShapeRange.Fill.Transparency = 1#
    Selection.ShapeRange.Line.Weight = 5
    Selection.ShapeRange.Line.DashStyle = msoLineSolid
    Selection.ShapeRange.Line.Style = 2
    Selection.ShapeRange.Line.Transparency = 0#
    Selection.ShapeRange.Line.Visible = msoTrue
    Selection.ShapeRange.Line.ForeColor.SchemeColor = 0  '60 ist braun
    Selection.ShapeRange.Line.BackColor.RGB = RGB(0, 0, 0)     '(139, 69, 19)
End Sub

Hierbei wird das msoshaperectangle verwendet, um ein Rechteck zu erstellen. Achte darauf, dass Du die Parameter für die Position und Größe entsprechend anpasst.


Häufige Fehler und Lösungen

Ein häufiges Problem ist, dass die Ecken des Rahmens nicht so aussehen, wie Du es möchtest. Hier sind einige Lösungen:

  • Winklige Ecken statt abgerundeter: Wenn Du ein doppeltes Rechteck verwendest, können die Ecken der äußeren Form abgerundet erscheinen. Um dies zu vermeiden, solltest Du nur eine Form ohne SoftEdge verwenden.

  • Fehlende Sichtbarkeit der Füllung: Wenn die Füllung nicht sichtbar ist, stelle sicher, dass Selection.ShapeRange.Fill.Visible auf msoFalse gesetzt ist.


Alternative Methoden

Falls Du nicht mit Selection.ShapeRange arbeiten möchtest, kannst Du die Eigenschaften direkt über die Shape-Objekte anpassen. Hier ein Beispiel:

Dim shp As Shape
Set shp = ActiveSheet.Shapes.AddShape(msoShapeRectangle, LI_RA_1, OB_RA_1, b1, h1)
With shp
    .Fill.Visible = msoFalse
    .Line.Weight = 5
    .Line.ForeColor.RGB = RGB(0, 0, 0)
    .Line.BackColor.RGB = RGB(255, 255, 255)
End With

Diese Methode ist oft klarer und einfacher zu verstehen, insbesondere wenn Du mehrere Shapes auf einmal bearbeiten möchtest.


Praktische Beispiele

Hier sind einige Beispiele, wie Du Shapes in Excel VBA anpassen kannst:

  1. Ein einfaches Rechteck erstellen:

    ActiveSheet.Shapes.AddShape(msoShapeRectangle, 100, 100, 200, 100)
  2. Eigenschaften anzupassen:

    Dim myShape As Shape
    Set myShape = ActiveSheet.Shapes(1) ' Nimm das erste Shape
    myShape.Fill.ForeColor.RGB = RGB(255, 0, 0) ' Rote Füllung
  3. Doppelte Linien: Um einen Rahmen mit doppelter Linie zu erstellen, kannst Du zwei Shapes übereinander legen.


Tipps für Profis

  • Verwendung von vba selection.shaperange: Dies ist besonders nützlich, wenn Du mehrere Shapes gleichzeitig anpassen möchtest. Du kannst Selection.ShapeRange verwenden, um eine Gruppe von Shapes zu bearbeiten.

  • Fehlermeldungen verstehen: Wenn Du mit vba msoshaperectangle arbeitest, achte darauf, dass Du die richtigen Parameter übergibst, um Fehler zu vermeiden.

  • Dokumentation nutzen: Der Objektkatalog von VBA ist eine wertvolle Ressource, die Dir helfen kann, die verfügbaren Eigenschaften und Methoden für Shapes zu verstehen.


FAQ: Häufige Fragen

1. Wie kann ich die Ecken eines Rechtecks abrunden? Um die Ecken eines Rechtecks abzurunden, musst Du das Shape mit msoShapeRoundedRectangle anstelle von msoShapeRectangle erstellen.

2. Was bedeutet SoftEdge in Excel VBA? SoftEdge ist eine Eigenschaft, die die Weichheit der Kanten eines Shapes anpasst. In VBA kann dies jedoch nicht direkt auf eckige Formen angewendet werden.

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