Juergens-Workshops.de Forum
VBA Ecken eines Objekts abrunden - Druckversion

+- Juergens-Workshops.de Forum (https://forum.juergens-workshops.de)
+-- Forum: Corel Grafik Forum (https://forum.juergens-workshops.de/forumdisplay.php?fid=65)
+--- Forum: Corel Draw (https://forum.juergens-workshops.de/forumdisplay.php?fid=93)
+--- Thema: VBA Ecken eines Objekts abrunden (/showthread.php?tid=38158)



VBA Ecken eines Objekts abrunden - Olaf - 11.12.2020

Hallo,

ich möchte in Corel per VBA Code die Ecken eines Zeichenobjekts (Rechteck) abrunden falls gewünscht.

Die Ecken sollen um einen Radius in mm abgerundet werden der in eine Textbox eingetragen wird

Leider konnte ich nicht herausfinden wie ich in VBA den Radius benennen kann.


Rechteck.SizeRadius = Textbox5.Text


Das ist natürlich nicht richtig aber so ähnlich stelle ich es mir vor, nur das mir die Begriffe für den Radius fehlen.

Vielleich hat ja jemand eine Idee.

Vielen Dank und ein schönes Wochenende.

Gruß

Olaf


RE: VBA Ecken eines Objekts abrunden - Litschi - 12.12.2020

Vielleicht hilft Dir das weiter
https://www.oberonplace.com/vba/drawmacros/roundcornerssh.htm


RE: VBA Ecken eines Objekts abrunden - koter - 12.12.2020

Hallo Olaf,

wenn Du das Makro aus Litschis Beitrag verwenden willst, musst Du das Rechteck vorher in eine Kurve wandeln.

Wenn es ein Rechteck bleiben soll, kannst Du laut VBA-Hilfe dieses Makro verwenden:

Code:
Sub Test()
   ActiveShape.Rectangle.SetRadius 0.3
End Sub

Seit einigen Versionen (ich glaube seit X4) funktioniert das bei mir aber nicht mehr.
Vielleicht hat Corel diesen Bug inzwischen entfernt und bei Dir läuft es.
Ein Textfeld gibt eine Zeichenkette zurück. Du musst diese vorher in eine Zahl wandeln.

Falls es nicht klappt, melde Dich noch einmal.

Gruß

Koter


RE: VBA Ecken eines Objekts abrunden - Olaf - 14.12.2020

Hallo Koter,

vielen dank für Deine Antwort, ich werde es die Tage mal ausprobieren, wenn das klappt wäre das toll, ansonsten werde ich es mit verschiedenen Vorlagen lösen die dann schon gerundet sind.

Ich wünsche Dir einen guten Start in die Woche.
Gruß

Olaf


RE: VBA Ecken eines Objekts abrunden - koter - 14.12.2020

Hallo Olaf,

(14.12.2020, 09:35)Olaf schrieb: ...ansonsten werde ich es mit verschiedenen Vorlagen lösen die dann schon gerundet sind....

Du kannst es noch mit dieser Prozedur versuchen:
Code:
Sub RechteckAbrunden(R As Shape, Optional Radius As String, Optional EckeLO As String, _
   Optional EckeRO As String, Optional EckeRU As String, Optional EckeLU As String)
   Dim Rechteck As Rectangle 'die Rechteck-Eigenschaften des Zeichenobjekts
   If R.Type = cdrRectangleShape Then 'prüfen ob es sich um ein Rechteck handelt um Fehler zu vermeiden
       R.CreateSelection 'Das Rechteck auswählen (das muss leider sein)
       Set Rechteck = R.Rectangle
       If Val(Radius) > 0 Then
           If EckeLO = "" Then EckeLO = Radius
           If EckeLU = "" Then EckeLU = Radius
           If EckeRO = "" Then EckeRO = Radius
           If EckeRU = "" Then EckeRU = Radius
       End If
       With R.Rectangle
           .RadiusUpperLeft = Val(EckeLO)
           .RadiusUpperRight = Val(EckeRO)
           .RadiusLowerLeft = Val(EckeLU)
           .RadiusLowerRight = Val(EckeRU)
       End With
   End If
End Sub

Als erstes Argument muss das zu verarbeitende Rechteck stehen. Wird (nur) das zweite Argument angegeben, werden alle Ecken abgerundet. Die anderen Argumente betreffen die einzelnen Ecken von links oben weiter im Uhrzeigersinn.

Beispiele:

[Bild: zwischenablage01amk66.jpg]
Die Prozedur verarbeitet auch Zeichenketten. Call RechteckAbrunden(Rechteck, TextBox1.Text) sollte also auch funktionieren.

Gruß

Koter


RE: VBA Ecken eines Objekts abrunden - Olaf - 18.12.2020

Hallo Koter,

sorry das ich so spät Antworte, ich werde das  in Kürze ausprobieren, ich habe derzeit leider noch ein paar andere Baustellen und komme derzeit nicht dazu.

Ich Danke Dir und wünsche Dir ein schönes Wochenende

Gruß


Olaf