29.04.2014, 12:38
Hallo erstmal,
ich möchte mit Visual Basic für CorelDraw X4 ein Script erstellen,
das mir automatisch die Höhe und Breite aller meiner von Hand gesetzen Ellipsen ausgibt.
Am besten in einer Tabelle, in Excel wäre natürlich ex©ellent :sei_gepriesen:
Ich bin soweit, das wenn ich die EINE Ellipse ANKLICKE er mir meinen b,h,x,y-Wert in Corel ausgibt.
====Code=====
Sub VariablenAuslesen()
Dim OrigSelection As ShapeRange
Dim h As Double 'Hoehenvariable
Dim b As Double 'Breitenvariable
Dim x As Double 'X-Positionsvariable
Dim y As Double 'Y-Positionsvariable
Set OrigSelection = ActiveSelectionRange 'Auswahl ist markierte Auswahl
ActiveDocument.ReferencePoint = cdrCenter 'Referenzpunkt ist Mittelpunkt
OrigSelection.GetSize b, h 'Maße auslesen - Befehl:GetSize (Width As Double, Height As Double) - Variable b entspricht Widht, Variable h entspricht Height
OrigSelection.GetPosition x, y 'Position auslesen - Befehl:GetPosition( PositionX As Double, PositionY As Double)- Variable x entspricht PositionX, Variable y entspricht PositionY
Dim s1 As Shape 'Variable s1 - Variablentyp Shape
Set s1 = ActiveLayer.CreateCustomShape("Table", 8, 1, 28, 10, 5, 3)
'Zeile 1
s1.Custom.Cell(1, 1).TextShape.Text.Story = "Ellipsennummer"
s1.Custom.Cell(2, 1).TextShape.Text.Story = "x - Position"
s1.Custom.Cell(3, 1).TextShape.Text.Story = "y - Position"
s1.Custom.Cell(4, 1).TextShape.Text.Story = "Höhe"
s1.Custom.Cell(5, 1).TextShape.Text.Story = "Breite"
s1.Custom.Cell(1, 1).TextShape.Text.Story.Words.All.Size = 41
s1.Custom.Cell(2, 1).TextShape.Text.Story.Words.All.Size = 41
s1.Custom.Cell(3, 1).TextShape.Text.Story.Words.All.Size = 41
s1.Custom.Cell(4, 1).TextShape.Text.Story.Words.All.Size = 41
s1.Custom.Cell(5, 1).TextShape.Text.Story.Words.All.Size = 41
'Zeile 2
s1.Custom.Cell(1, 2).TextShape.Text.Story = "Ellipse 1"
s1.Custom.Cell(2, 2).TextShape.Text.Story = x
s1.Custom.Cell(3, 2).TextShape.Text.Story = y
s1.Custom.Cell(4, 2).TextShape.Text.Story = h
s1.Custom.Cell(5, 2).TextShape.Text.Story = b
s1.Custom.Cell(1, 2).TextShape.Text.Story.Words.All.Size = 41
s1.Custom.Cell(2, 2).TextShape.Text.Story.Words.All.Size = 41
s1.Custom.Cell(3, 2).TextShape.Text.Story.Words.All.Size = 41
s1.Custom.Cell(4, 2).TextShape.Text.Story.Words.All.Size = 41
s1.Custom.Cell(5, 2).TextShape.Text.Story.Words.All.Size = 41
End Sub
====Codeende=======
Mein Ansatz wäre jetzt das ich die ActiveSelectionRange automatisch verändern will, sodass er ALLE Ellipsen auf dem Aktiven Baltt durchläuft...aber genau da komme ich nicht weiter
Oder gibt es evtl eine einfachere Lösung?
PS:
Kenne mich mit VBA und CorelDraw leider nicht so gut aus, alles hier ist aus dem Internet zusammengesucht (Befehle), analysiert und für meine Zwecke angepasst( ausprobiert)
ich möchte mit Visual Basic für CorelDraw X4 ein Script erstellen,
das mir automatisch die Höhe und Breite aller meiner von Hand gesetzen Ellipsen ausgibt.
Am besten in einer Tabelle, in Excel wäre natürlich ex©ellent :sei_gepriesen:
Ich bin soweit, das wenn ich die EINE Ellipse ANKLICKE er mir meinen b,h,x,y-Wert in Corel ausgibt.
====Code=====
Sub VariablenAuslesen()
Dim OrigSelection As ShapeRange
Dim h As Double 'Hoehenvariable
Dim b As Double 'Breitenvariable
Dim x As Double 'X-Positionsvariable
Dim y As Double 'Y-Positionsvariable
Set OrigSelection = ActiveSelectionRange 'Auswahl ist markierte Auswahl
ActiveDocument.ReferencePoint = cdrCenter 'Referenzpunkt ist Mittelpunkt
OrigSelection.GetSize b, h 'Maße auslesen - Befehl:GetSize (Width As Double, Height As Double) - Variable b entspricht Widht, Variable h entspricht Height
OrigSelection.GetPosition x, y 'Position auslesen - Befehl:GetPosition( PositionX As Double, PositionY As Double)- Variable x entspricht PositionX, Variable y entspricht PositionY
Dim s1 As Shape 'Variable s1 - Variablentyp Shape
Set s1 = ActiveLayer.CreateCustomShape("Table", 8, 1, 28, 10, 5, 3)
'Zeile 1
s1.Custom.Cell(1, 1).TextShape.Text.Story = "Ellipsennummer"
s1.Custom.Cell(2, 1).TextShape.Text.Story = "x - Position"
s1.Custom.Cell(3, 1).TextShape.Text.Story = "y - Position"
s1.Custom.Cell(4, 1).TextShape.Text.Story = "Höhe"
s1.Custom.Cell(5, 1).TextShape.Text.Story = "Breite"
s1.Custom.Cell(1, 1).TextShape.Text.Story.Words.All.Size = 41
s1.Custom.Cell(2, 1).TextShape.Text.Story.Words.All.Size = 41
s1.Custom.Cell(3, 1).TextShape.Text.Story.Words.All.Size = 41
s1.Custom.Cell(4, 1).TextShape.Text.Story.Words.All.Size = 41
s1.Custom.Cell(5, 1).TextShape.Text.Story.Words.All.Size = 41
'Zeile 2
s1.Custom.Cell(1, 2).TextShape.Text.Story = "Ellipse 1"
s1.Custom.Cell(2, 2).TextShape.Text.Story = x
s1.Custom.Cell(3, 2).TextShape.Text.Story = y
s1.Custom.Cell(4, 2).TextShape.Text.Story = h
s1.Custom.Cell(5, 2).TextShape.Text.Story = b
s1.Custom.Cell(1, 2).TextShape.Text.Story.Words.All.Size = 41
s1.Custom.Cell(2, 2).TextShape.Text.Story.Words.All.Size = 41
s1.Custom.Cell(3, 2).TextShape.Text.Story.Words.All.Size = 41
s1.Custom.Cell(4, 2).TextShape.Text.Story.Words.All.Size = 41
s1.Custom.Cell(5, 2).TextShape.Text.Story.Words.All.Size = 41
End Sub
====Codeende=======
Mein Ansatz wäre jetzt das ich die ActiveSelectionRange automatisch verändern will, sodass er ALLE Ellipsen auf dem Aktiven Baltt durchläuft...aber genau da komme ich nicht weiter
Oder gibt es evtl eine einfachere Lösung?
PS:
Kenne mich mit VBA und CorelDraw leider nicht so gut aus, alles hier ist aus dem Internet zusammengesucht (Befehle), analysiert und für meine Zwecke angepasst( ausprobiert)