2011-11-15 69 views
7

Tengo experiencia básica en VBA y mi experencia de macro anterior era principalmente con WORD 2003. Las macros de grabación solían tomar los comandos de menú de GoToFooter (o editar pie de página) y permitir la edición posterior. En WORD 2010, este (y muchos otros) comandos no "graban" en la Macro (sin embargo, cuando estoy en modo Grabación, ingreso a la función Editar pie de página).WORD 2010 Macro para editar encabezados y pies de página

Una búsqueda de varias opciones de VBS muestra varias maneras de crear pies de página y realizar cambios de configuración de pie de página en Macro. Sin embargo, si simplemente quiero revisar el nombre de la empresa dentro del pie de página (por ejemplo), no puedo encontrar la manera de hacerlo dentro de una subrutina de macros.

Esta subrutina es una que llamaría desde la macro principal que está recorriendo cada archivo en una carpeta (subcarpetas &). Tengo el funcionamiento Macro principal.

¿WORD 2010 Macro-VBA excluye la función simple Editar-Pie de página?

Gracias de antemano

Así, gracias a Issun, aquí está mi solución:

` 
Sub Sub_FTR_0() 
' 
ActiveDocument.ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter 

For i = 1 To ActiveDocument.Sections.Count 
'REM: INSERT Code from RECORD MACRO recorded when editing one Footer correctly 
    Selection. [[xxx]], etc. 

If i = ActiveDocument.Sections.Count Then GoTo Line1 

    ActiveDocument.ActiveWindow.ActivePane.View.NextHeaderFooter 

Line1: 
Next 

    ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument 

End Sub 
` 

Respuesta

9

Aquí está una manera que usted puede acceder a los encabezado/pie a través de VBA. Como se puede ver, es bastante complicada sintaxis para llegar a algo tan simple: p existen

Sub EditHeadersAndFooters() 

Dim i As Long 

For i = 1 To ActiveDocument.Sections.Count 
    With ActiveDocument.Sections(i) 
     .Headers(wdHeaderFooterPrimary).Range.Text = "Foo" 
     .Footers(wdHeaderFooterPrimary).Range.Text = "Bar" 
    End With 
Next 

End Sub 

Aquí hay un enlace con el ejemplo de código en la forma de cambiar las cabeceras de todos los archivos en una carpeta. Toma un enfoque diferente y nunca lo he intentado, pero para su referencia: http://www.vbaexpress.com/kb/getarticle.php?kb_id=45

+0

Gracias !! Había visto esta sintaxis y suponía que esencialmente reemplaza completamente el encabezado y/o el pie de página con material "FUBAR" [:)] ... aún no me permite elegir y elegir mis ediciones sin usar el pie de página (como reemplazar los primeros 3 palabras o la última palabra, etc.). Por lo tanto, cada archivo tiene un esquema de numeración de página único (no codificado en campo) por lo que el reemplazo completo no es una opción que haya considerado una solución alternativa. – Dan

+0

GRACIAS (de nuevo). Una combinación de su sugerencia y el enlace proporcionado me llevan a corregirlo. Aquí está la rutina "simple" que me permite ingresar al pie de página y editar porciones. Sub Sub_FTR_0() ' ' Sub_FTR_0 Macro ActiveDocument.ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter Para i = 1 a ActiveDocument.Sections.Count '(REM) Añadir:. Selección FOOTER EDITAR [cmds] Si i = ActiveDocument.Sections.Count Luego Ir línea1 ActiveDocument.ActiveWindow.ActivePane.View.NextHeaderFooter Línea 1: Siguiente ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument End Sub – Dan

+0

'code' Sub Sub_FTR_0() ' activo Document.ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter Para i = 1 Para ActiveDocument.Sections.Count '(REM) Añadir:. Selección FOOTER EDITAR [cmds] Si i = ActiveDocument.Sections.Luego Ir contar Línea1 ActiveDocument.ActiveWindow.ActivePane.View.NextHeaderFooter Línea 1: Siguiente ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument End Sub 'code' – Dan

0

Esto funcionó para mí para todas las páginas del documento.

word.ActiveDocument.Sections (1) .Headers (1) .Range.Text = "Ponga la cabecera aquí"

Cuestiones relacionadas