Wstęp

Jakiś czas temu opisałem, jak w Excelu można wstawić funkcję zamieniającą liczbę na jej słowny odpowiednik gdy nie można korzystać z makr. Rozwiązanie przydaje się gdy np. w Excelu wystawiamy faktury.
Niedawno pojawił się komentarz z pytaniem, a czy nie można by było zaadoptować tego rozwiązania w Wordzie. Troszkę się nagłowiłem i znalazłem na to sposób.
Pobierz przykładowy plik z wykonanym ćwiczeniem
W skrócie: cały trik polegał na tym, że istnieje w Excelu funkcja o nazwie WEBSERVICE, która pobiera do komórki treść strony internetowej. Ja napisałem prosty skrypt w języku PHP, który po wywołaniu z parametrem kwota wyświetla stronę internetową zawierającą słowną wartość liczby. Czyli wywołując np. funkcję =WEBSERVICE("https://api.officeblog.pl/slownie.php?format=2&kwota=123") w komórce pojawia się tekst sto dwadzieścia trzy złote. W Wordzie również istnieje odpowiednik funkcji WEBSERVICE a mianowicie jest to specjalne Pole o nazwie INCLUDETEXT.
Uwaga: w przypadku Worda adres usługi nieco się różni tj. zamiast slownie.php odwołuj się do pliku slownie2.php (dzięki temu Word nie będzie zadawał pytania dotyczącego w jakim formacie są kodowane „polskie ogonki”).
Zaczynamy!
A więc do dzieła. Aby użyć mojego rozwiązania należy w nowym dokumencie wstawić owe specjalne Pole. W tym celu umieszczamy kursor w miejscu gdzie ma się pojawić słowny zapis liczby. Następnie na karcie Wstawianie wybierz polecenie Szybkie części->Pole.

Pojawi się okno dialogowe Pole. Należy w sekcji nazwy pól odnaleźć pole o nazwie IncludeText a w sekcji Nazwa pliku lub adres URL wpisać adres: https://api.officeblog.pl/slownie2.php?format=2&kwota=123 i kliknąć w przycisk OK.
Wskazówka: jeśli używasz Worda 2007 i zamiast kwoty słownie pojawi się błąd o treści Błąd! Nieprawidłowa nazwa pliku to zmień w adresie URL https na http.

Jeśli pojawi się ostrzeżenie o zabezpieczeniach jak na poniższym rysunku należy kliknąć w przycisk Tak.

Po chwili w dokumencie pojawi nam się pole z tekstem sto dwadzieścia trzy złote

Nie jest to wpisany tekst tylko specjalne pole. Świadczy o tym fakt, że jeśli klikniemy na owym napisie to pojawi się „szare tło”. Jeśli klikniesz na owym polu prawym przyciskiem myszy możesz z menu wybrać opcję Edytuj pole aby np. zmienić adres URL.
Koncept – automatyczne pobieranie kwoty z treści dokumentu
Owe rozwiązanie jest średnie. Kwotę, która ma być zamieniona na słowny odpowiednik musieliśmy ręcznie wpisać jako parametr w adresie URL (w naszym wypadku jest to 123). A co jeśli chcielibyśmy zaktualizować ową kwotę? Musielibyśmy ręcznie wyedytować owe pole co przeczy idei automatyzacji.
Na szczęście istnieje pewien trik. Mianowicie możemy w treści dokumentu oznaczyć liczbę jako zakładkę a następnie powiedzieć programowi Word, że w polu INDCLUDETEXT zamiast 123 niech on pobiera zawartość utworzonej przez nas zakładki.
Wyświetlanie zakładek
Ponieważ będziemy korzystać z zakładek, warto jest ustawić, aby program Word wyświetlał owe zakładki (domyślnie ich nie pokazuje). W tym celu należy kliknąć na kartę Plik i wybrać opcje. Następnie pokaże się okno dialogowe Opcje programu Word. Wybierzmy opcję Zaawansowane a następnie za pomocą paska przewijania odnajdźmy sekcję Pokazywanie zawartości dokumentu. Następnie zaptaszkuj opcję Pokaż zakładki i kliknij w przycisk OK.
Tę czynność wykonuje się jednorazowo (program Word powinien już zawsze wyświetlać we wszystkich nowo utworzonych dokumentach zakładki do czasu aż ręcznie tej opcji nie wyłączymy)

Do dzieła!
W dokumencie w dowolnym miejscu wpiszmy jakąś liczbę (możemy używać spacji do rozdzielania tysięcy od setek a znak oddzielający część całkowitą od części ułamkowej to może być zarówno kropka jak i przecinek). Następnie zaznaczmy ową kwotę (ale tylko ową kwotę bez nadmiarowych znaków przed i za kwotą). W kolejnym kroku na karcie Wstawianie wybierz opcję Zakładka.

W oknie dialogowym Zakładka wpisz nazwę nowej zakładki (np. kwota) i kliknij w przycisk Dodaj. Należy pamiętać o kilku rzeczach:
- W jednym dokumencie nie mogą istnieć dwie zakładki o tej samej nazwie (a dokładniej mówiąc, gdy nadasz tę samą nazwę zakładki dla innego tekstu, z tego pierwszego tekstu zakładka zostanie usunięta).
- Nazwa zakładki nie może zaczynać się od cyfry
- Nazwa zakładki nie może zawierać spacji. Jeśli nazwa ma się składać z dwóch wyrazów zamiast spacji użyj symbolu „podłogi” np. kwota_netto
- Nazwa zakładki może składać się tylko z liter, cyfr i symbolu podłogi.
Jeśli ustawiłeś aby Word pokazywał zakładki to owa kwota będzie objęta w szare kwadratowe nawiasy.

Teraz musimy wyedytować nasze pole INCLUDETEXT tak, aby w adresie URL zamiast na sztywno wpisanej liczby 123 była pobierana zawartość zakładki kwota. W tym celu naciśnij kombinację klawiszy (lewy) Alt + F9 (lubkliknij prawym przyciskiem myszy na polu wyświetlającym liczbę słownie i z menu wybierz opcję Przełącz kody pól).
Zamiast tekstu pojawi się taka jakby formuła jak na poniższym rysunku

Następnie w „owej formule” skasuj ciąg znaków 123. Kursor powinien znajdować się pomiędzy znakiem równa się a cudzysłowem. W tym miejscu wstawimy specjalne pole (pole wewnątrz pola – tak jakby zagnieżdżona formuła w Excelu), które pobierze tekst jaki był oznaczony zakładką kwota.
W tym celu na karcie Wstawianie wybierz polecenie Szybkie części->Pole. Następnie wybierz pole Ref i jako zakładkę wybierz zakładkę kwota i kliknij w przycisk OK.

Efekt powinien być jak na poniższym rysunku:

Następnie naciśnij kombinację klawiszy (lewy) Alt + F9, aby z powrotem zamiast kodów pól wyświetlała się zawartość pól. Niestety, ale zamiast owej kwoty wartości zlecenia dalej mamy 123. Ale wystarczy kliknąć na polu prawym przyciskiem myszy i wybrać opcję Aktualizuj pole.

Inny sposób odświeżenia pola to zaznaczenie fragmentu dokumentu w którym owe pole się zajmuje (możesz nawet zaznaczyć cały dokument) i naciśnięcie klawisza F9. W ten sposób program Word automatycznie zaktualizuje pola znajdujące się w obrębie zaznaczonego tekstu.
Uwaga: za każdym razem gdy zmienisz liczbę oznaczoną zakładką kwota należy ręcznie zaktualizować nasze pole, które wyświetla słowny zapis liczby (ja zawsze „z rozpędu” naciskam kombinację klawiszy CTRL+A aby zaznaczyć cały dokument a potem klawisz F9, aby Word zaktualizował wszystkie pola znajdujące się w dokumencie).
Dziękuję bardzo. Działa. I już stosuję.
Proponowałbym jeszcze w instrukcji Wstawianie->Zakładka dołożyć
Wstawianie->Linki->Zakładka. Pr.zynajmniej tak jest u mnie.