Klasse ShapeNode - Geometrie- (Word VBA)

Die Klasse ShapeNode stellt die Geometrie- und Geometriebearbeitungseigenschaften der Knoten in einer benutzerdefinierten Freihandform dar. Um eine ShapeNode -Klassenvariable zu verwenden, muss sie zuerst instanziert werden, beispielsweise

For Each

Hier ist ein Beispiel für die Verarbeitung der ShapeNode -Elemente in einer Sammlung


Dim shp As Shape: Set shp = 
Dim shpnNode As ShapeNode
For Each shpnNode In shp.Nodes
	With shpnNode
		
	End With
Next shpnNode

EditingType

Wenn es sich bei dem angegebenen Knoten um einen Scheitelpunkt handelt, gibt diese Eigenschaft einen Wert zurück, der angibt, wie sich am Knoten vorgenommene Änderungen auf die beiden mit dem Knoten verbundenen Abschnitte auswirken.

Wenn der Knoten ein Kontrollpunkt für ein gekrümmter Abschnitt ist, gibt diese Eigenschaft den Bearbeitungstyp des angrenzenden Scheitelpunkts zurück.


Dim docActive As Document 
Dim intCount As Integer 
 
Set docActive = ActiveDocument 
 
With docActive.Shapes(3).Nodes 
 For intCount = 1 to .Count 
 If .Item(intCount).EditingType = msoEditingCorner Then 
 .SetEditingType intCount, msoEditingSmooth 
 End If 
 Next 
End With

Points

Gibt die Position des angegebenen Knotens als Koordinatenpaar zurück.

Die einzelnen Koordinaten werden in Punkt angegeben.


Set myDocument = ActiveDocument 
With myDocument.Shapes(3).Nodes 
 pointsArray = .Item(2).Points 
 currXvalue = pointsArray(1, 1) 
 currYvalue = pointsArray(1, 2) 
 .SetPosition 2, currXvalue + 200, currYvalue + 300 
End With

SegmentType

Gibt einen Wert zurück, der angibt, ob der dem angegebenen Knoten zugeordnete Abschnitt gerade oder gekrümmt ist.

Wenn der angegebene Knoten ein Kontrollpunkt für ein gekrümmtes Segment ist, gibt diese Eigenschaft msoSegmentCurvezurück. Verwenden Sie die SetSegmentType -Methode, um den Wert dieser Eigenschaft festzulegen.


Set myDocument = ActiveDocument 
With myDocument.Shapes(3).Nodes 
 n = 1 
 While n <= .Count 
 If .Item(n).SegmentType = msoSegmentLine Then 
 .SetSegmentType n, msoSegmentCurve 
 End If 
 n = n + 1 
 Wend 
End With