Czas i data w Excelu

Postanowiłem trochę zmienić tematykę odcinka ''Komputer i Ty'', aby móc pokazać jak wielkie możliwości kryją się w narzędziach i aplikacjach Windows. Zaczynam od programu Excel. Zachęcam Czytelników do przysyłania ciekawych makrodefinicji, które mogą być użyteczne dla szerokiego kręgu użytkowników programu. Proszę o przysyłanie, oprócz wydrukowanego opisu działania makro, tekstu listu i makro na dyskietce, dzięki czemu, uda się uniknąć niepotrzebnej korespondencji w razie wątpliwości.

Postanowiłem trochę zmienić tematykę odcinka ''Komputer i Ty'', aby móc pokazać jak wielkie możliwości kryją się w narzędziach i aplikacjach Windows. Zaczynam od programu Excel. Zachęcam Czytelników do przysyłania ciekawych makrodefinicji, które mogą być użyteczne dla szerokiego kręgu użytkowników programu. Proszę o przysyłanie, oprócz wydrukowanego opisu działania makro, tekstu listu i makro na dyskietce, dzięki czemu, uda się uniknąć niepotrzebnej korespondencji w razie wątpliwości.

Excel, zarówno wersja 3.0 jak i 4.0, są to potężne programy obliczeniowe o rzadko wykorzystywanych możliwościach. Wiele z tych możliwości da się w pełni wykorzystać tylko przy użyciu makrodefinicji. Umiejętność pisania makrodefinicji przydaje się zwłaszcza wtedy, gdy zależy nam na szybkim wykonywaniu prac, które się często powtarzają.

Jak pisać makro?

Istnieją dwie podstawowe metody zapisania makrodefinicji. Pierwsza polega na nauczeniu programu Excel operacji, które zamierzamy wykonać przez ich zarejestrowanie. W tym celu wywołuje się z menu Macro polecenie Record. Następnie należy wykonywać wszystkie operacje, które powinny być zarejestrowane i zakończyć zapisywanie wywołując z menu Macro polecenie Stop Recorder. W metodzie tej trudno jest przygotować skomplikowane makrodefinicje, gdyż tylko nieliczne możliwości Excela zostaną wykorzystane. Po zapisaniu makro można je wykonywać, wywołując opcję Macro Run. Istnieje też możliwość przypisania dowolnego makro do kombinacji klawiszy Ctrl+klawisz (np. Ctrl-a).

Druga metoda polega na napisaniu makrodefinicji na specjalnym arkuszu makrodefinicji (Excel nadaje mu rozszerzenie XLM). Arkusz taki (otrzymuje się wywołując kolejno File New Macro Sheet) ma znacznie większe szerokości komórek niż arkusz obliczeniowy, dzięki czemu widać w nim cały tekst makro. Przy pisaniu makro korzysta się ze specjalnego języka, trochę podobnego do Basic-u, chociaż zawierającego wiele funkcji specyficznych dla arkuszy obliczeniowych. Podobnie jak w poprzedniej metodzie, makro można wywołać z menu lub przypisać do kombinacji klawiszy.

Zasady pisania makro

Dobra praktyka pisania makro polega na tym, że wszystkie teksty odnoszące się do samej definicji makro umieszcza się w kolumnie B. Kolumna A powinna być przeznaczona do nadawania nazw poszczególnym częściom arkusza. W kolumnach C i D powinno się umieszczać definicje ewentualnych opcji menu i ich nazw.

Makro czasu

Na rys. 1 pokazano rozwiniętą ostatnią pozycję menu programu Excel, w której znajduje się dodatkowa pozycja: Czas. Na rys. 2 przedstawiono kompletny arkusz makro; do poprawnego działania pokazanych tam dwóch makro, konieczne jest nadanie nazw pewnym obszarom arkusza. Właściwe makro podające aktualny czas jest zawarte w komórkach B1 do B6. Komórce B1 należy nadać nazwę "Czas" (zapisaną w komórce A1) korzystając z polecenia Define Name z menu Formula. Drugie makro, zawarte w komórkach B8 do B11, spowoduje dopisanie do menu Help dodatkowego polecenia Czas. Komórce B8 należy koniecznie nadać nazwę Auto_Open. Taka nazwa makro oznacza, że jest ono wykonywane samoczynnie po otwarciu arkusza makrodefinicji (tutaj nazwanego CZAS.XLM).

Formę polecenia Czas określa się w komórkach C2, C3 i D4. Kreska w komórce C2 spowoduje wpisanie kreski oddzielającej to polecenie od pozostałych poleceń w menu Help, a napis &Czas w komórce C3 spowoduje wpisanie nazwy makro (Czas) poniżej tej kreski. Znak & służy do określenia, która litera w tym poleceniu będzie podkreślona. Naciśnięcie tej litery, po rozwinięciu menu Help, wykonuje polecenie, tj. wyświetla aktualny czas w okienku informacyjnym (rys. 3). W komórce D3 zawarta jest nazwa makro, które zostanie wykonane po wywołaniu polecenia Czas z menu Help. Proszę zwrócić uwagę, że nazwa makro zawiera także nazwę arkusza, w którym jest ono zawarte. Nazwa makro i nazwa arkusza są oddzielone znakiem wykrzyknika. Do poprawnego działania makro obszarowi C2:D3 należy nadać nazwę OpcjaCzas, występującą w makro Auto_Open.

Po napisaniu i przetestowaniu makro zapisujemy je w pliku CZAS.XLM. Przy następnym uruchomieniu Excela polecenie Czas będzie dostępne dopiero po otwarciu arkusza CZAS.XLM.

Automatyczne wywoływanie makro

Pokazane makro wywołuje się automatycznie (pojawia się jako dodatkowe polecenie w menu Help) po otwarciu arkusza makro CZAS.XLM. Zwykle jednak nie pamiętamy o tym, aby otworzyć ten arkusz. Istnieje prosta metoda automatycznego otwierania arkuszy, zawierających użyteczne makrodefinicje. Należy mianowicie najpierw zmienić wszystkie odwołania w arkuszu, zawierające rozszerzenie XLM na XLA (w tym przypadku tylko jedno takie odwołanie znajduje się w komórce D3). Następnie należy zapamiętać plik jako tzw. arkusz dodatkowy (Add-In) z menu File Save As. Umieszczenie tego pliku w podkatalogu XLSTART katalogu EXCEL (zakładam, że tam właśnie znajduje się nasz Excel) spowoduje automatyczne otwarcie wszystkich zawartych w nim plików o rozszerzeniu XLA, a więc także naszego makro Czas.

Makro daty i czasu

Przez nieskomplikowane rozszerzenie makro podającego czas, można w okienku informacyjnym uzyskać informację o aktualnej dacie i czasie. Na rys. 4 pokazano część takiego arkusza makrodefinicji. Makro zawiera trzy dodatkowe komórki B4:B6, podające aktualny rok, miesiąc i dzień. Tekst zawarty w komórce B7 jest teraz znacznie dłuższy niż tekst zawarty poprzednio w komórce B4. Na rys. 4 pokazano go w pasku formuł. Zwracam uwagę na funkcję CHAR(13), powodującą przejście z wyświetlaniem informacji do następnego wiersza okienka informacyjnego. Pozostałe części arkusza nie uległy zmianie, z wyjątkiem przesunięcia w dół makro Auto_Open.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200