Kilka odnośników do stron z zaawansowanymi operacjami MS Word
1. Masowa zamiana tekstów w wielu plikach docx * 2. Pola - główny plik docx z wstawionymi treściami z wielu plików docx * 3. Style

1. Masowa zamiana tekstów w wielu plikach docx

W pliku ReplaceAll_inDocxs.dotm - szablonie z makrami - są 2 skopiowane z Internetu i przetestowane makra, które pozwalają na masową zmianę tekstu w plikach docx zgromadzonych w wybranym folderze. Opis jest w tekście szablonu. W kodzie w makrach są zapisane linki do stron, z których pochodzi źródło.

Przy okazji jest tam opis jak wystartować z używaniem makr w MS Word, np. tych, których źródła skopiowaliśmy sobie z Internetu. Zob. też:

Kilka skrótów klawiaturowych przydatnych do pracy z makrami:
Wklejanie kodu: [Alt+F11], [Ctrl+R]=Okno: Project \ Template Project.
[F5] - uruchom, [F8] krok po kroku

2. Pola - główny plik docx z wstawionymi treściami z wielu plików docx

Tutaj kopalnią wiedzy jest

Założenie: w głównym pliku chcę scalić dynamicznie treści z wielu innych plików, które podlegają czasem aktualizacji. Wydawało by się, ze sprawa jest załatwiona w menu:
Wstawianie \ obiekt \ obiekt… \ Microsoft Word Document.
Ale są 2 problemy: wstawiana jest tylko pierwsza strona tekstu i dodatkowo wiersze nie przełamują się pomiędzy stronami w scalonym dokumencie. Oczywiście odpada Wstawianie \ obiekt \ tekst z pliku… - taki tekst nie podlega auto-aktualizacji.

Z pomocą przychodzi opisane powyżej pole {IncludeText} i sztuczka ze ścieżkami względnymi do plików.

Gdy mam równocześnie {IncludeText} i wstawiony obiekt to zdaje się wtedy pojawia się groźne ostrzeżenie po otwarciu docx:
“Ten dokument zawiera pola, które mogą udostępniać dane zewnętrznym plikom i witrynom internetowym”.
I to pomimo tego, że używam w {IncludeText} przełącznika \! ( = Zapobiegaj aktualizacji pól), a potem aktualizuję pola pojedynczo lub hurtowo (nie wiem, czy ten przełącznik coś daje).
Warto więc nie stosować wstawiania obiektów, gdy korzystamy z {IncludeText}. Można też przerwać łącza do plików zewnętrznych automatycznie aktualizowanych:
* “Plik” (menu lewy, górny róg) \ otwiera się menu “Informacje” \
* “Edytuj linki do plików” (prawy, dolny róg - to pojawia się poniżej menu: “Powiązane dokumenty”, o ile są jakieś linki w dokumencie)

Przepis wstawiania (tu wstawiane są całe dokumenty - można też wstawiać tylko fragmenty korzystając z zakładek):

  1. Treści w plikach wstawianych umieszczam w ich głównej części, a pozostałe elementy w nagłówku i stopce (te są pomijane podczas scalania). Pliki umieszczam w podfolderze, np. “docs” (gdy jest ich dużo).
  2. Dla każdego scalanego pliku umieszczam w dokumencie głównym pole
    { IncludeText "{ FileName \p }\\..\\docs\\NazwaPliku.docx"},
    gdzie nawiasy klamrowe oznaczają wstawione pole uzyskane naciśnięciem [Ctrl+F9],
    { FileName \p } to zagnieżdżone pole odpowiadające pełnej nazwie pliku głównego,
    a \\..\\ wyznacza ścieżkę tej dla nazwy, pomijając nazwę pliku.
    [Ctrl+F9] ma przydatną właściwość - można najpierw wpisać treść wnętrza pola, zaznaczyć i nacisnąć [Ctrl+F9]. Treść zostanie otoczona znacznikiem pola.
    • Ale można też z powodu takiego działania zaliczyć nieprzyjemna sytuację - po zaznaczeniu całego, dużego dokumentu i przypadkowym naciśnięciu [Ctrl+F9] całość robi się ogromnym polem, a wynikowy dokument jest jakby pusty! Żeby wyciąć wnętrze tego mega-pola i skopiować obok warto sobie wpisać kilka spacji obok zewnętrznych znaczników pola.
    • Sztuczka z { FileName \p }\\..\\ wymaga stosowania nie za długich nazw plików i folderów.
      Po rozwinięciu pola i dołożeniu nazwy pliku wstawianego całość musi się zmieścić w 260 znakach. I nie ma tu znaczenia, czy w rejestrze zostało zadeklarowane używanie dłuższych nazw LongPathsEnabled=1.
      Na szczęście nie przeszkadza używanie liter diakrytycznych w nazwach.
      Zob. pole_IncludeText-BARDZO_DLUGIE_nazwy_plikow.zip
  3. Z zagnieżdżonym polem jest jakaś tajemnica - udaje się wpisać to ze zwykłymi nawiasami klamrowymi. Ale po aktualizacji może pojawiać się “Błąd! Nieprawidłowa nazwa pliku”.
    • Wtedy można skorzystać z notatki 2 z linku dot. ścieżki względnej, czyli:
      • [Alt+F9] - żeby pojawiły się kody pól.
      • Utwórz w dowolnym miejscu [Ctrl+F9] - pole { FileName \p }, zaznacz go i wytnij do schowka [Ctrl+X].
      • [Ctrl+H], w znajdź tekst { FileName \p } tj. ze zwykłymi nawiasami klamrowymi, w zamień na ^c tj. zawartość schowka.
      • [Zamień wszystko]
      • [Ctrl+A]=zaznacz wszystko, [F9]=aktualizuj, [Alt-F9]=przełącz na wynik

Kilka skrótów klawiaturowych przydatnych do pracy z polami:
[Shift+F9] - Przełącz kod/wynik
[Alt+F9] - Przełącz jednocześnie wszystkie kody/wyniki (także kody zagnieżdżone)
    bardzo wygodnie do jakichś operacji “znajdź i zamień”
[Ctrl+F9] - Wstaw pole. Natomiast menu:
    Wstawianie \ Szybkie części \ Pole… - otwiera kreatora wstawiania pola z podpowiedziami.
[F9] - Aktualizowanie zaznaczonych pól.
[F11] / [Shift+F11] - Następne / poprzednie pole.

Zob. też

3. Style

4. Inne odnośniki