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