Classe ShapeNodes (Word VBA)
Une collection de tous les modules de ShapeNode objets dans la forme libre. Pour utiliser une variable de classe ShapeNodes, elle doit d'abord être instanciée, par exemple
Count
Renvoie un type long qui représente le nombre de nœuds de forme dans la collection.
Dim sns As ShapeNodes: Set sns =
Dim lngCount As Long
lngCount = sns.Count
Delete
Supprime le nœud spécifié de la forme.
Delete (Index)
Index: Numéro, dans la collection de nœuds de formes, du nœud de forme à supprimer.
Dim lngIndex As Long: lngIndex =
Dim sns As ShapeNodes: Set sns =
sns.Delete Index:=lngIndex
Insert
Insère un nœud dans une forme libre.
Insert (Index, SegmentType, EditingType, X1, Y1, X2, Y2, X3, Y3)
Sub InsertShapeNode()
ActiveDocument.Shapes(3).Select
With Selection.ShapeRange
If .Type = msoFreeform Then
.Nodes.Insert _
Index:=3, SegmentType:=msoSegmentCurve, _
EditingType:=msoEditingSymmetric, x1:=35, y1:=100
.Fill.ForeColor.RGB = RGB(0, 0, 200)
.Fill.Visible = msoTrue
Else
MsgBox "This shape is not a Freeform object."
End If
End With
End Sub
Arguments
Les arguments nommés :
Index (Long) - Numéro du nœud de forme après lequel le nouveau nœud doit être inséré.
SegmentType (Office.MsoSegmentType) - Type de ligne reliant le nœud inséré aux nœuds voisins.
EditingType (Office.MsoEditingType) - Propriété de modification du nœud inséré.
X1 (Single) - Si le paramètre EditingType du nouveau segment est msoEditingAuto, cet argument spécifie la distance horizontale, exprimée en points, entre le coin supérieur gauche du document et le point de départ du nouveau segment.
Y1 (Single) - Si le paramètre EditingType du nouveau segment est msoEditingAuto, cet argument spécifie la distance verticale, exprimée en points, entre le coin supérieur gauche du document et le point de départ du nouveau segment.
Optional arguments
Les arguments suivants sont facultatifs
X2 (Single) - Si le paramètre EditingType du nouveau segment est msoEditingCorner, cet argument spécifie la distance horizontale, exprimée en points, entre le coin supérieur gauche du document et le deuxième point de contrôle pour le nouveau segment.
Y2 (Single) - Si le paramètre EditingType du nouveau segment est msoEditingCorner, cet argument spécifie la distance verticale, exprimée en points, entre le coin supérieur gauche du document et le deuxième point de contrôle pour le nouveau segment.
X3 (Single) - Si le paramètre EditingType du nouveau segment est msoEditingCorner, cet argument spécifie la distance horizontale, exprimée en points, entre le coin supérieur gauche du document et le point de terminaison du nouveau segment.
Y3 (Single) - Si le paramètre EditingType du nouveau segment est msoEditingCorner, cet argument spécifie la distance verticale, exprimée en points, entre le coin supérieur gauche du document et le point de terminaison du nouveau segment.
Item
Renvoie un objet ShapeNode spécifique appartenant à une collection.
Item (Index)
Index: Objet spécifique qui doit être renvoyé.
Dim sns As ShapeNodes: Set sns =
Dim shpn As ShapeNode
Set shpn = sns(Index:=1)
SetEditingType
Cette méthode définit le type de modification du nœud spécifié par Index.
S'il s'agit d'un point de contrôle d'un segment de courbe, la méthode définit le type de modification du nœud adjacent qui réunit deux segments.
SetEditingType (Index, EditingType)
Dim lngLoop As lngLoop
With ActiveDocument.Shapes(3).Nodes
For lngLoop = 1 to .Count
If .Item(lngLoop).EditingType = msoEditingCorner Then
.SetEditingType lngLoop, msoEditingSmooth
End If
Next lngLoop
End With
Arguments
Les arguments nommés :
Index (Long) - Indique le nœud dont le type de modification doit être défini.
EditingType (Office.MsoEditingType) - Indique le type de modification prévu pour le sommet.
SetPosition
Cette méthode détermine la position du nœud indiquée par Index.
Cette méthode peut affecter la position des nœuds adjacents en fonction du type de modification du nœud.
With ActiveDocument.Shapes(3).Nodes
pointsArray = .Item(2).Points
currXvalue = pointsArray(1, 1)
currYvalue = pointsArray(1, 2)
.SetPosition 2, currXvalue + 200, currYvalue + 300
End With
Arguments
Les arguments nommés :
Index (Long) - Indique le nœud à positionner.
X1 (Single) - Position du nouveau nœud (en points) par rapport au coin supérieur gauche du document.
Y1 - Single
SetSegmentType
Cette méthode détermine le type du segment qui suit le nœud indiqué par Index.
S'il s'agit d'un point de contrôle d'un segment de courbe, la méthode détermine le type de segment pour ce segment de courbe.
SetSegmentType (Index, SegmentType)
Dim lngLoop As Long
With ActiveDocument.Shapes(3).Nodes
lngLoop = 1
While lngLoop <= .Count
If .Item(lngLoop).SegmentType = msoSegmentLine Then
.SetSegmentType lngLoop, msoSegmentCurve
End If
lngLoop = lngLoop + 1
Wend
End With
Arguments
Les arguments nommés :
Index (Long) - Indique le nœud dont le type de segment doit être déterminé.
SegmentType (Office.MsoSegmentType) - Indique s'il s'agit d'un segment de droite ou de courbe.