Classe HeaderFooter - un en-tête ou un pied de page donné (Word VBA)

La classe HeaderFooter représente un en-tête ou un pied de page donné.

Pour utiliser une variable de classe HeaderFooter, elle doit d'abord être instanciée, par exemple

Dim hfr as HeaderFooter
Set hfr = Selection.HeaderFooter

Les procédures suivantes peuvent être utilisés pour définir des variables de la classe HeaderFooter : HeadersFooters.Item et Selection.HeaderFooter.

For Each

Voici un exemple de traitement des éléments HeaderFooter dans une collection

Dim hfrFooter As HeaderFooter
For Each hfrFooter In Footers
	
Next hfrFooter

Exists

True si l'objet HeaderFooter spécifié existe.

Le premier en-tête et pied de page existent dans tous les nouveaux documents par défaut.

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

Renvoie une WdHeaderFooterIndex qui représente l'en-tête ou le pied de page spécifié dans un document ou une section. Les valeurs de retour possibles sont wdHeaderFooterEvenPages, wdHeaderFooterFirstPage - Renvoie le premier en-tête ou pied de page spécifié dans un document ou une section, wdHeaderFooterPrimary.

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 l'objet HeaderFooter spécifié est un en-tête.

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 l'en-tête ou le pied de page spécifié est lié à l'en-tête ou au pied de page correspondant de la section précédente.

Si un en-tête ou un pied de page est lié, son contenu est identique à celui de l'en-tête ou du pied de page précédent.

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

PageNumbers

Renvoie une collection PageNumbers qui représente tous les champs de numéro de page inclus dans l’en-tête ou le pied de page spécifié.

Pour plus d’informations sur le renvoi d’un seul membre d’une collection, voir renvoi d’un objet à partir d’une collection.

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

Range

Renvoie un objet Range qui représente la partie d'un document contenue dans l'en-tête ou le pied de page spécifié.

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

Shapes

Renvoie une collection Shapes qui représente tous les objets Shape d’un en-tête ou d’un pied de page.

Cette collection peut contenir des dessins, des formes, des images, des objets OLE, des contrôles ActiveX, des objets texte et des légendes. Lorsqu'elle est appliquée à un document, la propriété Shapes renvoie tous les objets Shape dans l'article principal du document, à l'exception des en-têtes et pieds de page.

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