Jak dodać wyśrodkowane numery stron do stopki dokumentu programu Word?
Skrypciarze odpowiadają na Wasze pytania
Witamy w rubryce TechNet, w której Skrypciarze z firmy Microsoft odpowiadają na częste pytania dotyczące używania skryptów w administracji systemu. Jeśli macie jakieś pytania z tej dziedziny, zachęcamy do wysłania e-maila na adres: scripter@microsoft.com. Nie możemy zagwarantować odpowiedzi na każde otrzymane pytanie, ale staramy się jak możemy. |
Jak dodać wyśrodkowane numery stron do stopki dokumentu programu Word?
Cześć, Skrypciarze! ! Potrzebuję informacji, jak umieścić wyśrodkowane numery stron w dokumencie programu Word. Czy macie może jakieś sugestie?
-- AW
Cześć, AW. Tak między Bogiem a prawdą, skromna osoba odpowiedzialna za niniejsze artykuły pozbawiona jest mocy dzielenia się sugestiami. Wszystko to zaś z powodu pewnego zdarzenia sprzed kilku dni, kiedy to otrzymała masowo wysyłaną wiadomość email, która kończyła się następującym zwrotem: „Będziemy wdzięczni za jakiekolwiek opinie oraz sugestie, które pozwoliłyby ulepszyć nasz projekt.”
Będąc zatem osobą trochę naiwną, autor rzeczywiście chciał podzielić się sugestiami, co też uczynił, wysyłając je do nadawcy. Okazało się to później wielkim błędem. W odpowiedzi został bowiem zbesztany primo – przez sprawcę („Ktoś włożył w ten projekt wiele pracy i zaangażowania, więc jeśli stać Pana tylko na krytykę to powinszować”), secundo – swojego szefa oraz, co najlepsze, tertio – własnego szefa („A może tak byś darował sobie dzielenie się przemyśleniami.”). Oszołomiony autor postanowił wtedy juz nigdy nie dzielić się żadnymi sugestiami czy też opiniami.
Więc, jako że w naszej ofercie limit sugestii się juz wyczerpał, jedyne, co możemy Ci zaoferować, to skrypt, dzięki któremu można dodać (wyśrodkowane) numery stron do stopki dokumentu programu Word:
Const wdAlignPageNumberCenter = 1
Set objWord = CreateObject("Word.Application")
objWord.Visible = True
Set objDoc = objWord.Documents.Add()
objDoc.Sections(1).Footers(1).PageNumbers.Add(wdAlignPageNumberCenter)
Prościuteńki skrypt, każdy się chyba zgodzi. Zaczynamy od zdefiniowania stałej wdAlignPageNumberCenter i ustawiamy jej wartość na 1.To instruuje skrypt, że numer strony ma zostać umieszczony w środku stopki. Co jednak jeśli zmienimy zdanie, i nie będziemy chcieli, żeby numer strony był pośrodku obszaru stopki? Nic się nie stało, musimy tylko użyć następujących stałych i ich wartości:
Stała | Wartość |
---|---|
wdAlignPageNumberCenter | 1 |
wdAlignPageNumberInside | 3 |
wdAlignPageNumberLeft | 0 |
wdAlignPageNumberOutside | 4 |
wdAlignPageNumberRight | 2 |
Po zdefiniowaniu stałej używamy następujących trzech wierszy kodu, które tworzą widoczne na ekranie wystąpienie obiektu Word.Application, a potem dają nam do pracy nowy, pusty dokument programu Word:
Set objWord = CreateObject("Word.Application")
objWord.Visible = True
Set objDoc = objWord.Documents.Add()
Potem dodajemy jeszcze numery stron przy pomocy pojedynczego wiersza kodu:
objDoc.Sections(1).Footers(1).PageNumbers.Add(wdAlignPageNumberCenter)
Tworzymy obiekt PageNumbers powiązany z pierwszą stopką oraz pierwszą, a zarazem jedyną, sekcją naszego dokumentu. Aby dodać do stopki numery stron przywołujemy metodę Add, podajemy stałą wdAlignPageNumberCenter, która wskazuje, że numery stron mają być wyśrodkowane. Ot, cała filozofia.
Oczywiście jest również wiele innych sposobów, których możemy użyć do numerowania stron, o wiele za dużo dla potrzeb niniejszego artykuły. Jeżeli więc potrzebujecie więcej informacji, zajrzyjcie do Microsoft Word VBA Language Reference (j.ang.) w witrynie MSDN. Dla zachęty jednak chociaż jeden przykład tego, co możecie tam znaleźć. Poniższy skrypt definiuje stałą wdPageNumberStyleLowercaseRoman i przyporządkowuje ją do właściwości NumberStyle:
Const wdAlignPageNumberCenter = 1
Const wdPageNumberStyleLowercaseRoman = 2
Set objWord = CreateObject("Word.Application")
objWord.Visible = True
Set objDoc = objWord.Documents.Add()
objDoc.Sections(1).Footers(1).PageNumbers.Add(wdAlignPageNumberCenter)
objDoc.Sections(1).Footers(1).PageNumbers.NumberStyle = wdPageNumberStyleLowercaseRoman
Teraz quiz. Co robi powyższy skrypt? Jeżeli pomyśleliście sobie, ze pokazuje numery stron jako liczby rzymskie zapisane małymi literami to punkt dla Was, bo to właśnie robi.
Tak przy okazji, poniżej znajduje się lista wszystkich możliwych stylów używanych do numeracji stron. Ważne, żeby pamiętać o własnych ustawieniach językowych, bo niektóre z tych konfiguracji mogą być pozbawione sensu w Waszym języku lub mogą wprowadzić istotne zmiany do dokumentu:
Stała | Wartość |
---|---|
wdPageNumberStyleArabic | 0 |
wdPageNumberStyleArabicFullWidth | 14 |
wdPageNumberStyleArabicLetter1 | 46 |
wdPageNumberStyleArabicLetter2 | 48 |
wdPageNumberStyleHanjaRead | 41 |
wdPageNumberStyleHanjaReadDigit | 42 |
wdPageNumberStyleHebrewLetter1 | 45 |
wdPageNumberStyleHebrewLetter2 | 47 |
wdPageNumberStyleHindiArabic | 51 |
wdPageNumberStyleHindiCardinalText | 52 |
wdPageNumberStyleHindiLetter1 | 49 |
wdPageNumberStyleHindiLetter2 | 50 |
wdPageNumberStyleKanji | 10 |
wdPageNumberStyleKanjiDigit | 11 |
wdPageNumberStyleKanjiTraditional | 16 |
wdPageNumberStyleLowercaseLetter | 4 |
wdPageNumberStyleLowercaseRoman | 2 |
wdPageNumberStyleNumberInCircle | 18 |
wdPageNumberStyleNumberInDash | 57 |
wdPageNumberStyleSimpChinNum1 | 37 |
wdPageNumberStyleSimpChinNum2 | 38 |
wdPageNumberStyleThaiArabic | 54 |
wdPageNumberStyleThaiCardinalText | 55 |
wdPageNumberStyleThaiLetter | 53 |
wdPageNumberStyleTradChinNum1 | 33 |
wdPageNumberStyleTradChinNum2 | 34 |
wdPageNumberStyleUppercaseLetter | 3 |
wdPageNumberStyleUppercaseRoman | 1 |
wdPageNumberStyleVietCardinalText | 56 |
Trudne to zaiste było zadanie bez robienia jakichkolwiek sugestii!
Do początku strony |