Classe Subdocument - sous-document (Word VBA)
La classe Subdocument représente un sous-document dans un document ou une plage. Pour utiliser une variable de classe Subdocument, elle doit d'abord être instanciée, par exemple
Dim sbd as Subdocument
Set sbd = ActiveDocument.Subdocuments(Index:=1)
For Each
Voici un exemple de traitement des éléments Subdocument dans une collection
Dim subdoc As Subdocument
For Each subdoc In ActiveDocument.Subdocuments
subdoc.Range.Select
If subdoc.HasFile = True Then
MsgBox subdoc.Path & Application.PathSeparator & subdoc.Name
Else
MsgBox "This subdocument has not been saved."
End If
Next subdoc
Delete
Supprime le sous-document spécifié.
ActiveDocument.Subdocuments(1).Delete
HasFile
Cette propriété a la valeur True si le sous-document spécifié a été enregistré dans un fichier.
Dim subLoop As Subdocument
For Each subLoop In ActiveDocument.Subdocuments
subLoop.Range.Select
If subLoop.HasFile = True Then
MsgBox subLoop.Path & Application.PathSeparator _
& subLoop.Name
Else
MsgBox "This subdocument has not been saved."
End If
Next subLoop
Level
Renvoie le niveau de titre utilisé pour créer le sous-document.
i = 1
If ActiveDocument.Subdocuments.Count > = 1 Then
For each s in ActiveDocument.Subdocuments
MsgBox "The heading level for SubDoc " & i _
& " is " & s.Level
i = i + 1
Next s
Else
MsgBox "There are no subdocuments defined."
End If
Locked
True si un sous-document dans un document maître est verrouillé.
If ActiveDocument.Subdocuments(1).Locked = True Then
ActiveDocument.Protect Type:=wdAllowOnlyComments
End If
Name
Renvoie le nom de l'objet spécifié.
Dim strName As String
strName = ActiveDocument.Subdocuments(1).Name
Open
Ouvre le sous-document spécifié.
Dim doc As Document
Set doc = ActiveDocument.Subdocuments(1).Open()
Path
Renvoie le disque ou le chemin d'accès au Web vers le sous-document spécifié.
Le chemin d'accès n'inclut pas un caractère de fin par exemple, « C:\MSOffice » ou « https://MyServer ».
Dim strPath As String
strPath = ActiveDocument.Subdocuments(1).Path
Range
Renvoie un objet Range qui représente la partie d’un document contenue dans le sous-document.
Pour plus d’informations sur le renvoi d’une plage à partir d’un document, voir la méthode Range .
Dim rngRange As Range
Set rngRange = ActiveDocument.Subdocuments(1).Range
Split
Scinde en deux sous-documents de même niveau un sous-document existant affiché en mode Document maître ou en mode Plan.
Le fractionnement se produit au début de la plage spécifiée.
Split (Range)
Range: Plage qui, suite à la scission du sous-document, devient un sous-document séparé.
Selection.Range.Subdocuments(1).Split Range:=Selection.Range