Clase Subdocument - subdocumento (Word VBA)

La clase Subdocument representa un subdocumento dentro de un documento o intervalo.

Para usar una variable de clase Subdocument, primero debe ser instanciado, por ejemplo

Dim sbd as Subdocument
Set sbd = ActiveDocument.Subdocuments(Index:=1)

Los siguientes procedimientos se pueden usar para establecer variables de clase Subdocument : Subdocuments.AddFromFile, Subdocuments.AddFromRange y Subdocuments.Item.

For Each

A continuación, se muestra un ejemplo de cómo procesar los elementos Subdocument en una colección.

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

Elimina el subdocumento especificado.

ActiveDocument.Subdocuments(1).Delete

HasFile

True si se ha guardado en un archivo el subdocumento especificado.

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

Devuelve el nivel de título utilizado para crear el subdocumento.

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 subdocumento en un documento maestro está bloqueado.

If ActiveDocument.Subdocuments(1).Locked = True Then 
 ActiveDocument.Protect Type:=wdAllowOnlyComments 
End If

Name

Devuelve el nombre del objeto especificado.

Dim strName As String
strName = ActiveDocument.Subdocuments(1).Name

Open

Se abre el subdocumento especificado.

Dim doc As Document
Set doc = ActiveDocument.Subdocuments(1).Open()

Path

Devuelve el disco o la ruta de acceso Web al subdocumento especificado.

La ruta de acceso no incluye un carácter final, por ejemplo, "C:\MSOffice" o "https://MyServer".

Dim strPath As String
strPath = ActiveDocument.Subdocuments(1).Path

Range

Devuelve un objeto Range que representa la parte de un documento incluida en el subdocumento.

Para obtener información sobre cómo devolver un intervalo de un documento, vea el método Range .

Dim rngRange As Range
Set rngRange = ActiveDocument.Subdocuments(1).Range

Split

Divide un subdocumento en dos subdocumentos del mismo nivel en la vista de documento maestro o la vista Esquema.

La división se realiza al principio del intervalo especificado.

Split (Range)

Range: El intervalo que se convierte en un subdocumento independiente, cuando se divide el documento.

Selection.Range.Subdocuments(1).Split Range:=Selection.Range