Classe ShapeNode - géométrie (Word VBA)

La classe ShapeNode représente la géométrie et les propriétés de modification géométrique des noeuds dans un défini par l'utilisateur libre. Pour utiliser une variable de classe ShapeNode, elle doit d'abord être instanciée, par exemple

For Each

Voici un exemple de traitement des éléments ShapeNode dans une collection


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

EditingType

Si le nœud spécifié est un sommet, cette propriété renvoie une valeur qui indique comment les modifications apportées au nœud affectent les deux segments connectés au nœud.

Si le nœud est un point de contrôle d'un segment courbé, cette propriété renvoie le type d'édition du sommet adjacent.


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

Renvoie la position du nœud spécifié en tant qu'une paire de coordonnées.

Chaque coordonnée est exprimée en points.


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

Cette propriété renvoie une valeur qui indique si le segment associé au nœud spécifié est un segment de droite ou de courbe.

Si le nœud spécifié est un point de contrôle pour un segment courbé, cette propriété renvoie msoSegmentCurve. Utilisez la méthode SetSegmentType pour définir la valeur de cette propriété.


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