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.

SetPosition (Index, X1, Y1)


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.