2011-11-15 27 views
7

Mam tylko podstawowe doświadczenie w VBA, a moja wcześniejsza Eksperymentacja makr była przede wszystkim z WORD 2003. Zapisywanie makr używanych do wykonywania poleceń menu GoToFooter (lub Edycja stopki) i umożliwienie późniejszej edycji. W WORD 2010, te (i wiele innych) poleceń nie "nagrywają" do Makro (ale w trybie Record dostaję się do funkcji Edit Footer).WORD 2010 Makro do edycji nagłówków i stopek

Badanie różnych opcji VBS pokazuje kilka sposobów tworzenia stopek i dokonywania globalnych zmian ustawień stopki w makrze. Jednak jeśli po prostu chcę zmienić nazwę firmy w stopce (na przykład), nie mogę znaleźć sposobu, aby to zrobić w podprocedurze Macro.

Podprogram ten jest to wywołanie z głównego makra, które przechodzi przez każdy plik w podfolderach Folder (&). Mam główne funkcje Makro.

Czy WORD 2010 Macro-VBA wyklucza prostą funkcję Edit-Footer?

góry dzięki

Tak, dzięki Issun, tu jest moje rozwiązanie:

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

Odpowiedz

9

Oto sposób można uzyskać dostęp do nagłówków/stopek poprzez VBA. Jak widać, jest to dość skomplikowana składnia dostać się do czegoś tak prostego: p tam

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 

Tu jest link do kodu przykładu, w jaki sposób zmienić nagłówki w każdym pliku w folderze. To podejście jest inne i nigdy tego nie próbowałem, ale dla twojego odniesienia: http://www.vbaexpress.com/kb/getarticle.php?kb_id=45

+0

Dzięki !! Widziałem tę składnię i założyłem, że zasadniczo całkowicie zastępuje Nagłówek i/lub Stopkę materiałem "FUBAR" [:)] ... wciąż nie pozwala mi wybrać i wybrać moje edycje za pomocą Footera (jak zastąpienie pierwszych 3 słowa lub ostatnie słowo, itp.). Więc każdy plik ma unikalny schemat numerowania stron (nie kodowany w terenie), więc całkowita wymiana nie jest opcją, o której mówiłem. – Dan

+0

DZIĘKI (ponownie). Połączenie Twojej sugestii i podanego linku prowadzi mnie do mnie. Oto "prosta" procedura, dzięki której mogę dostać się do Stopki i edytować fragmenty. Pod Sub_FTR_0() ' ' Sub_FTR_0 makro ActiveDocument.ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter dla i = 1 do ActiveDocument.Sections.Count „(REM) Dodać. Wybór FOOTER zmianę [grupom CMD] Jeśli i = ActiveDocument.Sections.Count Następnie GoTo Line1 ActiveDocument.ActiveWindow.ActivePane.View.NextHeaderFooter Line1: Następny ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument End Sub – Dan

+0

'code' Sub Sub_FTR_0() " Aktywny Document.ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter For i = 1 To ActiveDocument.Sections.Count „(REM) Dodać. Wybór FOOTER zmianę [CMD] przypadku i = ActiveDocument.Sections.Wtedy liczyć GoTo Line1 ActiveDocument.ActiveWindow.ActivePane.View.NextHeaderFooter Line1: Następny ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument End Sub 'code' – Dan

0

To działało dla mnie na wszystkie strony w dokumencie.

word.ActiveDocument.Sections (1) .Headers (1) .Range.Text = "umieścić nagłówek tutaj"

Powiązane problemy