Clase HeaderFooter - un solo encabezado o pie de página (Word VBA)

La clase HeaderFooter representa un solo encabezado o pie de página. Para usar una variable de clase HeaderFooter, primero debe ser instanciado, por ejemplo


Dim hfr as HeaderFooter
Set hfr = Selection.HeaderFooter

For Each

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


Dim hfrFooter As HeaderFooter
For Each hfrFooter In Footers
	
Next hfrFooter

Exists

True si existe el objeto HeaderFooter especificado.

El encabezado principal y el pie de página existan en todos los documentos nuevos de forma predeterminada.


Dim secTemp As Section 
 
Set secTemp = ActiveDocument.Sections(1) 
If secTemp.Headers(wdHeaderFooterFirstPage).Exists = True Then 
 secTemp.Headers(wdHeaderFooterFirstPage).Range.Text = _ 
 "First Page" 
End If

Index

Devuelve un WdHeaderFooterIndex que representa el encabezado o pie de página especificado en un documento o una sección. Posibles valores de retorno son wdHeaderFooterEvenPages - Devuelve todos los encabezados o pies de página de las páginas con número par, wdHeaderFooterFirstPage - Devuelve el primer encabezado o pie de página del documento o sección, wdHeaderFooterPrimary - Devuelve el encabezado o pie de página de todas las páginas excepto la primera de un documento o sección.


Sub ChangeFirstPageFooter() 
 Dim hdrFirstPage As HeaderFooter 
 
 Set hdrFirstPage = ActiveDocument.Sections(1).Headers(wdHeaderFooterFirstPage) 
 
 If hdrFirstPage.Index = wdHeaderFooterFirstPage Then 
 With hdrFirstPage.Shapes.AddShape(Type:=msoShapeHeart, _ 
 Left:=36, Top:=36, Width:=36, Height:=36) 
 .Fill.ForeColor.RGB = RGB(Red:=255, Green:=0, Blue:=0) 
 End With 
 End If 
 
End Sub

IsEmpty


Dim booIsEmpty As Boolean
booIsEmpty = Selection.HeaderFooter.IsEmpty

IsHeader

True si el objeto HeaderFooter especificado es un encabezado.


With ActiveDocument.ActiveWindow.ActivePane.View 
 .Type = wdPrintView 
 .SeekView = wdSeekCurrentPageHeader 
End With 
 
If Selection.HeaderFooter.IsHeader = True Then 
 ActiveDocument.ActiveWindow.ActivePane.View _ 
 .SeekView = wdSeekCurrentPageFooter 
End If 
 
Selection.HeaderFooter.PageNumbers.Add

LinkToPrevious

True si el encabezado o el pie de página está vinculado al encabezado o pie de página correspondiente de la sección anterior.

Cuando un encabezado o un pie de página es vinculado, su contenido es el mismo que el del encabezado o pie de página anterior.


ActiveDocument.Sections(1) _ 
 .Headers(wdHeaderFooterPrimary).PageNumbers.Add

PageNumbers

Devuelve una colección PageNumbers que representa todos los campos de número de página incluidos en el encabezado o pie de página especificado.

Para obtener información sobre cómo devolver un solo miembro de una colección, vea devolver un objeto de una colección.


Set myDoc = Documents.Add 
With myDoc.Sections(1).Footers(wdHeaderFooterPrimary) 
 .PageNumbers.Add PageNumberAlignment := wdAlignPageNumberCenter 
End With

Range

Devuelve un objeto Range que representa la parte de un documento incluida en el encabezado o pie de página especificado.


Dim rngRange As Range
Set rngRange = Selection.HeaderFooter.Range

Shapes

Devuelve una colección Shapes que representa todos los objetos Shape de un encabezado o pie de página.

En la colección pueden incluirse dibujos, formas, objetos OLE, controles ActiveX, objetos de texto y llamadas. La propiedad Shapes, cuando se aplica a un documento, devuelve todos los objetos Shape del artículo principal del documento, sin incluir los encabezados y pies de página.


MsgBox ActiveDocument.Sections(1). _ 
 Headers(wdHeaderFooterPrimary).Shapes.Count