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