2011-11-15 14 views
7

Ho solo esperienza di base su VBA e la mia precedente esperienza con la macro era principalmente con WORD 2003. Le macro di registrazione utilizzate per eseguire i comandi del menu GoToFooter (o Modifica piè di pagina) e consentono la modifica successiva. In WORD 2010, questi (e molti altri) comandi non "registrano" sulla Macro (ma quando ci si trova in modalità Record, si entra nella funzione Edit footer).WORD 2010 Macro per la modifica di intestazioni e piè di pagina

Una ricerca di varie opzioni VBS mostra diversi modi per creare piè di pagina e per apportare modifiche alle impostazioni globali del piè di pagina all'interno di Macro. Tuttavia, se voglio semplicemente rivedere il nome della società all'interno del piè di pagina (ad esempio), non riesco a trovare alcun modo per farlo all'interno di una subroutine macro.

Questa subroutine è quella che chiamerei dalla macro principale che passa attraverso ciascun file in una cartella (sottocartelle della cartella &). Ho il funzionamento principale della macro.

Does WORD 2010 Macro-VBA preclude la semplice funzione di modifica del piè di pagina?

Grazie in anticipo

Così, grazie a Issun, ecco la mia soluzione:

` 
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 
` 

risposta

9

Ecco un modo è possibile accedere alle intestazioni/piè di pagina via VBA. Come si può vedere, è la sintassi piuttosto complicato per arrivare a qualcosa di così semplice: p ci

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 

Ecco un link per esempio di codice su come cambiare le intestazioni in ogni file in una cartella. Ci vuole un approccio diverso e non l'ho mai provato, ma per il vostro riferimento: http://www.vbaexpress.com/kb/getarticle.php?kb_id=45

+0

Grazie !! Avevo visto questa sintassi e presumevo che essenzialmente sostituisse completamente l'intestazione e/o il piè di pagina con il materiale "FUBAR" [:)] ... ancora non permettendomi di scegliere e scegliere le mie modifiche senza il piè di pagina (come la sostituzione dei primi 3 parole o l'ultima parola, ecc.). Quindi ogni file ha uno schema di numerazione delle pagine univoco (non codificato in base al campo), quindi la sostituzione completa non è un'opzione per la quale ho previsto una soluzione. – Dan

+0

GRAZIE (di nuovo). Una combinazione del tuo suggerimento e il link fornito mi portano a risolvere il problema. Ecco la "semplice" routine per permettermi di entrare nel Footer (s) e modificare le parti. Sub Sub_FTR_0() ' ' Sub_FTR_0 Macro ActiveDocument.ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter Per i = 1 a ActiveDocument.Sections.Count '(REM) Aggiungere:. Selection FOOTER EDIT [cmds] Se i = ActiveDocument.Sections.Count Then GoTo Linea1 ActiveDocument.ActiveWindow.ActivePane.View.NextHeaderFooter Riga1: Successivo ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument End Sub – Dan

+0

'Codice delle Sub Sub_FTR_0() ' Attivo Document.ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter per i = 1 Per ActiveDocument.Sections.Count '(REM) Aggiungere:. Selection FOOTER EDIT [cmds] Se i = ActiveDocument.Sections.Conte Then GoTo Linea1 ActiveDocument.ActiveWindow.ActivePane.View.NextHeaderFooter Riga1: Successivo ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument End Sub 'Codice delle – Dan

0

Questo ha funzionato per me per tutte le pagine del documento.

word.ActiveDocument.Sections (1) .Headers (1) .Range.Text = "Mettere l'intestazione qui"

Problemi correlati