background image

Visual Basic w programie Excel 

dla Windows

 

 

Ćwiczenie nr 1 

Makrodefinicje. 

Zakres ćwiczenia: 

 

Nagrywanie, odtwarzanie, modyfikowanie i upraszczanie makrodefinicji. 

Makrodefinicje lokalne i globalne. Przyporządkowanie makrodefinicji do pozycji w menu, 

pasku narzędziowym i do przycisków. Kilka użytecznych funkcji do dialogu z 

użytkownikiem. 

 

Wstęp 

 

Microsoft Excel pozwala na zautomatyzowanie często wykonywanych sekwencji 

czynności za pomocą Visual Basica będącego wbudowanym językiem programowania 

o dużych możliwościach. 

 Znajomość zagadnień programowania nie jest niezbędna do korzystania z tych możli-

wości. Microsoft Excel posiada wbudowany Rejestrator Makrodefinicji, który tworzy kod 

Visual Basica. 

 

Microsoft Excel automatyzuje zadania za pomocą makrodefinicji. Makrodefinicja jest 

serią komend wykonywanych automatycznie. Rejestrowanie własnych makrodefinicji 

pozwala na dopasowanie Excela do własnych potrzeb i uczynienie swej pracy bardziej 

efektywną. Każda sekwencja czynności może być zarejestrowana. Następnie makrodefinicję 

można uruchomić aby zarejestrowane czynności zostały powtórzone automatycznie. Zapisaną 

makrodefinicję można powiązać z elementem menu lub przyciskiem  

 

Nagrywanie makrodefinicji 

 

Pierwszym krokiem do zautomatyzowania zadań w Excelu jest zapisanie makrodefini-

cji. Patrz rys. 1. 

1.  Wybierz Narzędzia / Zarejestruj makro / Zarejestruj nowe makro

background image

2.  W polu Nazwa Makra wpisz nazwę makrodefinicji. Nazwa może zawierać litery cyfry 

i znaki  podkreślenia, musi zaczynać się od litery. Nazwa nie może zawierać spacji i 

znaków przystankowych. 

3.  W polu Opis wprowadź opis makrodefinicji. 

4.  Aby ustawić opcje dla makrodefinicji wybierz przycisk Opcje.  Dla pełnego opisu opcji 

skorzystaj z pomocy programu Microsoft Excel. 

5.  Wybierz przycisk OK.  Podczas pracy Rejestratora makr na ekranie pojawia się przycisk 

Koniec. 

6.  Przeprowadź operacje, które chcesz zapisać. 

7.  Naciśnij przycisk Koniec. Rejestrację makrodefinicji można także zakończyć poleceniem 

Narzędzia / Zarejestruj makro / Zatrzymaj rejestrowanie.  

 

 

Rys. 1. Okno dialogowe Zarejestruj nowe makro

 

Uruchamianie makrodefinicji 

 

Zapisaną makrodefinicję można uruchomić w dowolnej chwili. Microsoft Excel 

wykona wtedy wszystkie polecenia zapisane w makrze (rys.2). 

1.  Wybierz Narzędzia / Makro

2.  W polu Nazwa / adres makra wpisz lub wybierz nazwę makrodefinicji. 

3.  Wciśnij przycisk Uruchom. 

 

background image

 

Rys. 2. Okno dialogowe Makro

 

 

Używanie paska narzędzi Visual Basic 

 Pasek 

narzędzi Visual Basic (rys. 3) można wyświetlić wybierając  Widok / Paski 

narzędzi. Kilka z przycisków na tym pasku można używać do rejestrowania, uruchamiania 

bądź zatrzymywania makrodefinicji. 

 

 

Rys. 3. Pasek narzędzi Visual Basic. 

 

Przyporządkowanie makrodefinicji do pozycji w menu 

 

Zarejestrowane makro może zostać przypisane do menu Narzędzia, a następnie 

używane tak jak każda inna komenda z menu (rys. 6). 

1.  Wybierz Narzędzia / Makro

2.  W polu Nazwa / adres makra wpisz lub wybierz nazwę makrodefinicji. 

background image

3.  Wciśnij przycisk Opcje

4.  W polu Przypisz do zaznacz pole Pozycja menu w menu "Narzędzia",  a następnie wpisz 

nazwę komendy jaka ma pojawić się w menu Narzędzia

5.  Wciśnij przycisk OK

6.  Wciśnij przycisk Zamknij

 

Przyporządkowanie makrodefinicji do przycisku na arkuszu. 

 

W Microsoft Excel można stworzyć na arkuszu lub wykresie przycisk, a następnie 

przypisać do niego makrodefinicję. Wciśnięcie takiego przycisku spowoduje uruchomienie 

powiązanej z nim makrodefinicji. makrodefinicja taka jest dostępna zawsze gdy otwarty jest 

dokument zawierający przycisk, do którego została przypisana. 

1.  Wciśnij przycisk Utwórz przycisk na pasku narzędziowym Rysowanie. 

2.  Wskaż kursorem myszy położenie pierwszego rogu przycisku. 

3.  Ustaw odpowiadający ci rozmiar i kształt przycisku. Kiedy zwolnisz przycisk myszy 

zostanie otworzone okno dialogowe Przypisz makro

4.  Aby przypisać do tworzonego przycisku istniejącą makrodefinicję wpisz lub wybierz 

nazwę makrodefinicji w polu Nazwa / adres makra i wciśnij przycisk OK. 

Aby utworzyć nową makrodefinicję i przypisać ją do przycisku wciśnij przycisk Rejestruj 

i dalej postępuj jak przy rejestracji makrodefinicji. 

 

Przyporządkowanie makrodefinicji do przycisku na pasku narzędziowym. 

 Jeżeli makrodefinicja zostanie przypisana do przycisku na pasku narzędziowym, jest 

dostępna na każdym arkuszu należącym do dokumentu. Zwykle przycisk, z którym 

powiązujemy makrodefinicję jest nie używanym przyciskiem użytkownika. Makrodefinicje 

można przypisać także do wbudowanego przycisku, który jest już przez Microsoft Excel 

używany. Powoduje to nadpisanie wbudowanej funkcji przez przypisywaną makrodefinicję. 

 Po 

przyporządkowaniu makrodefinicji do przycisku, można przycisk umieścić na 

dowolnym wbudowanym pasku narzędziowym lub stworzyć  własny. Przycisk taki 

funkcjonuje podobnie jak wszystkie oryginale przyciski Microsoft Excel (rys. 4 i rys. 5). 

Przyporządkowanie makrodefinicji do przycisku wbudowanego: 

1. 

Wybierz Widok / Paski narzędzi.

 

2. 

Wciśnij przycisk Dostosuj. Pojawi się okno dialogowe Dostosuj.

 

background image

3. 

Jeżeli odpowiedni przycisk jest już wyświetlany na pasku narzędziowym wciśnij go, jeżeli 

nie wybierz odpowiednią kategorie w polu Kategorie i przeciągnij przycisk do dowolnego 

widocznego paska narzędziowego.

 

4. 

Wybierz Narzędzia / Przypisz makro.

 

5. 

Aby przypisać do tworzonego przycisku istniejącą makrodefinicję wpisz lub wybierz 

nazwę makrodefinicji w polu Nazwa / adres makra i wciśnij przycisk OK.

 

Aby utworzyć nową makrodefinicję i przypisać ją do przycisku wciśnij przycisk Rejestruj 

i dalej postępuj jak przy rejestracji makrodefinicji. 

6. 

Jeśli istnieje taka konieczność wciśnij przycisk Zamknij  aby zamknąć okno dialogowe 

Dostosuj.

 

Przyporządkowanie makrodefinicji do przycisku użytkownika: 

1. 

Wybierz Widok / Paski narzędzi.

 

2. 

Aby umieścić przycisk na nowym pasku narzędziowym wprowadź nazwę paska w polu 

Nazwa paska narzędzi i wciśnij przycisk Nowy.

 

Aby dodać przycisk do istniejącego paska narzędzi wybierz Dostosuj

3. 

W polu Kategorie wybierz przyciski użytkownika.

 

4. 

Przeciągnij przycisk do dowolnego widocznego paska narzędzi. Przycisk zostanie dodany 

do paska na wskazanej przez ciebie pozycji i otworzy się okno dialogowe Przypisz makro.

 

5. 

Aby przypisać do tworzonego przycisku istniejącą makrodefinicję wpisz lub wybierz 

nazwę makrodefinicji w polu Nazwa / adres makra i wciśnij przycisk OK.

 

Aby utworzyć nową makrodefinicję i przypisać ją do przycisku wciśnij przycisk Rejestruj 

i dalej postępuj jak przy rejestracji makrodefinicji. 

6. 

Jeśli istnieje taka konieczność wciśnij przycisk Zamknij  aby zamknąć okno dialogowe 

Dostosuj.

 

 

background image

Rys. 4. Okno dialogowe Paski narzędzi

 

 

Rys. 5. Okno dialogowe Dostosuj dla pasków narzędzi. 

Zmiana makrodefinicji przypisanej do przycisku 

 

Podczas pracy może okazać się konieczne zmienienie makrodefinicji przypisanej do 

przycisku, zarejestrowanie dla niego nowej makrodefinicji lub przypisanie już istniejącej 

makrodefinicji do nowego przycisku. 

1.  Trzymając wciśnięty klawisz CTRL wskaż wybrany przycisk. 

2.  Wybierz Narzędzia / Przypisz makro. 

3.  Aby przypisać do przycisku istniejącą makrodefinicję wpisz lub wybierz nazwę 

makrodefinicji w polu Nazwa / adres makra i wciśnij przycisk OK. 

Aby usunąć makrodefinicję powiązaną z przyciskiem usuń nazwę makrodefinicji z pola 

Nazwa / adres makra i wciśnij przycisk OK. 

Aby utworzyć nową makrodefinicję i przypisać ją do przycisku wciśnij przycisk Rejestruj 

i dalej postępuj jak przy rejestracji makrodefinicji. 

 

Procedura zmiany makrodefinicji powiązanej z przyciskiem na pasku narzędzi 

przebiega podobnie, jednak najpierw należy wybrać polecenie Widok / Paski narzędzi, 

a następnie wcisnąć przycisk Dostosuj

 

Ustawianie i zmiana opcji makrodefinicji 

 

Po zarejestrowaniu makrodefinicji istnieje możliwość zmiany jej następujących opcji: 

• 

opisu makrodefinicji; 

• 

klawisza skrótu, który uruchamia makrodefinicję; 

background image

• 

nazwy makrodefinicji pojawiającej się w menu Narzędzia. 

1.  Wybierz Narzędzia / Makro

2.  W polu Nazwa / adres makra wpisz lub wybierz nazwę makrodefinicji, której opcje chcesz 

zmienić. 

3.  Wciśnij przycisk Opcje

4.  Zmień wymagane opcje. 

5.  Wciśnij przycisk OK. 

 

Adresy względne i bezwględne 

 Jedną z opcji, którą można zmieniać podczas rejestracji makrodefinicji jest rodzaj 

stosowanych podczas rejestracji adresów. 

 

W przypadku adresów bezwzględnych Microsoft Excel zapisuje dokładną pozycję 

każdej wybranej komórki, w przypadku adresów względnych pozycja każdej nowo wybranej 

komórki jest liczona względem komórki poprzednio wybranej. 

 Aby 

włączyć  używanie adresów względnych należy wybrać  Narzędzia / Rejestruj 

makro / Używaj adresów względnych

 

 

Rys. 6. Opcje okna dialogowego Zarejestruj nowe makro

 

Makrodefinicje lokalne i globalne 

background image

 Jedną z opcji możliwych do ustawienia przed rejestracją nowej makrodefinicji jest 

opcja wskazująca gdzie rejestrowana makrodefinicja zostanie zapisana (pole Przechowaj w 

okna dialogowego Zarejestruj nowe makro): w aktywnym skoroszycie, a nowym skoroszycie, 

czy w Osobistym skoroszycie makr (rys. 6). 

 

Osobisty skoroszyt makr jest ukrytym skoroszytem, który zawsze pozostaje otwarty. 

Wszystkie zapisane w nim makrodefinicje są zawsze dostępne. 

 

Przeglądanie i modyfikowanie zarejestrowanych makrodefinicji 

 

Pierwszym krokiem w edycji makrodefinicji jest wyświetlenie jej. Makrodefinicje są 

napisane w języku programowania Visual Basic i zapisane w specjalnych arkuszach 

nazywanych modułami Visual Basica. 

Wyświetlenie makrodefinicji z wykorzystaniem okna dialogowego Makro

1. 

Wybierz Narzędzia  / Makro.

 

2. 

W polu Nazwa / adres makra wpisz lub wybierz nazwę makrodefinicji, którą chcesz 

wyświetlić.

 

3. 

Wciśnij przycisk Edytuj.

 

 

Wyświetlenie makrodefinicji powiązanej z przyciskiem na arkuszu: 

1.  Wciśnij przycisk prawym przyciskiem myszy. 

2.  Wybierz z menu Przypisz makro. 

3.  W polu Nazwa / adres makra wpisz lub wybierz nazwę makrodefinicji, którą chcesz 

wyświetlić. 

4.  Wciśnij przycisk Edytuj

 

Czytanie kodu Visual Basica 

 

Kiedy rejestrujesz makrodefinicję Microsoft Excel tworzy serię wyrażeń 

odpowiednich do akcji jakie podejmujesz. Wyrażenia te mogą składać się z słów kluczowych, 

operatorów, zmiennych i wywołań procedur. Np.: 

ActiveCell.FormulaR1C1 = ”Tytuł Arkusza” 

jest wyrażeniem Visual Basica wstawiającym tekst „Tytuł Arkusza” do aktywnej komórki. 

 

Słowa kluczowe są  słowami mającymi w Visual Basicu specjalne znaczenie. Np. 

słowa kluczowe Sub i End Sub oznaczają początek i koniec makrodefinicji. 

background image

 Początek komentarza oznacza pojedynczy apostrof. Komentarze zawsze kończą się 

z końcem linii, w której pojawił się rozpoczynający je apostrof. 

 

Usuwanie zbędnego kodu 

 

Rejestrator makrodefinicji tworzy kod, który odpowiada większości 

przeprowadzanych przez ciebie czynności. Często jednak w module Visual Basica zostaje 

zapisanych więcej instrukcji niż chciałbyś aby występowało w makrodefinicji. Powinieneś 

usunąć nadmiarowy kod, aby makrodefinicja robiła dokładnie to, czego sobie życzysz. 

 

 

 

Rejestracja dodatkowego kodu w istniejącej makrodefinicji 

 

Rejestracja dodatkowego kodu w istniejącej makrodefinicji jest użyteczna kiedy po 

zapisaniu i poprawieniu długiej sekwencji czynności okazuje się,  że któreś z zadań należy 

zmienić lub też dołączyć nowe. 

1.  Ustaw kursor w miejscu, gdzie chcesz  dołączyć kod. 

2.  Wybierz Narzędzia / Rejestruj makro / Ustaw znacznik dla rejestrowania. 

3.  Przełącz się na arkusz, z którego chcesz rejestrować nowe zadania. 

4.  Wybierz Narzędzia / Rejestruj makro / Zarejestruj od znacznika. 

5.  Przeprowadź operację, które chcesz zarejestrować. 

6.  Wciśnij przycisk Koniec. 

 

Rozszerzanie makrodefinicji o możliwości Visual Basica 

 

Visual Basic oferuje znacznie więcej niż można osiągnąć poprzez rejestrację 

makrodefinicji. Używając Visual Basica twoje makrodefinicje mogą testować różne warunki 

i w zależności od nich wykonywać odpowiednie działania, mogą pytać o dane użytkownika 

i informować go o postępie w wykonywaniu makrodefinicji. 

 

Zmiana stanu opcji 

 

Poniższa makrodefinicja zmienia stan opcji określającej włączenie bądź wyłączenia 

wyświetlania linii podziału, poprzez zanegowanie i przypisanie opcji dotychczasowej jej 

wartości. 

Sub SetGridlines ( ) 

background image

 

ActiveWindow.DisplayGridlines = Not ActiveWindow.DisplayGridlines 

End Sub 

 

Dodanie do makrodefinicji elementów interaktywnych 

 Przedstawiona 

niżej makrodefinicja podczas wykonywania wyświetla okno 

dialogowe, za pomocą którego pobiera od użytkownika dane do zmiennej służącej jako 

chwilowe miejsce przechowywania informacji. 

Sub SetTitle ( ) 
 

TitleText = InputBox(prompt := ”Podaj tytuł”, default := ”Tytuł domyślny”) 

 

ActiveCell.FormulaR1C1 = TitleText 

End Sub 

 

Dodanie do makrodefinicji struktur kontrolnych 

 Można uczynić makrodefinicję bardziej użyteczną poprzez wprowadzenie do niej 

struktur kontrolnych. Pozwalają one na wielokrotne powtarzanie wyrażeń Visual Basica i na 

podejmowanie decyzji, które wyrażenia mają zostać wykonane. 

 Poniższy przykład ustawia czcionkę pogrubioną dla wszystkich komórek arkusza 

w zakresie A1 : A10, które zawierają wartość większą od 500. Wykorzystuje ona wyrażenie 

warunkowe If...Then i pętlę For...Next

Sub BoldCells ( ) 
 

For I = 1 To 10 

 

 

If Cells(I,1).Value > 500 Then 

   Cells(I,1).Font.Bold 

True 

  End 

If 

 Next 

End Sub 

background image

Zadania 

1.  Zarejestruj makrodefinicję ukrywającą linie podziału. Makrodefinicję powiąż z 

przyciskiem na własnym pasku narzędzi. 

2.  Zarejestruj makrodefinicję otwierającą nowy arkusz, ukrywającą na nim linie podziału, 

w komórce A1 wpisującą imię i nazwisko autora arkusza, zaś w komórce C4 tytuł arkusza 

pogrubioną i podkreśloną czcionką Arial CE o rozmiarze 16 pkt. Makrodefinicję przypisz 

do menu Narzędzia

3.  Zarejestruj makrodefinicję, która na aktualnie wybranej komórce arkusza przeprowadza 

następujące operacje: 

• 

ustawia czcionkę Times New Roman CE, pogrubioną, kursywę, o rozmiarze 12 pkt., 

o kolorze niebieskim; 

• 

ustawia tło komórki na kolor czerwony; 

• 

do komórki przepisuje zawartość komórki C4; 

• 

dla sąsiednich komórek ustawia kolor tła zielony i kasuje ich zawartość. 

Makrodefinicję powiąż z przyciskiem na jednym z wbudowanych pasków narzędzi. 

4.  Usuń zbędny kod w stworzonych makrodefinicjach. 

5.  Makrodefinicję z zad. 1 zmodyfikuj tak, aby za każdym wywołaniem zmieniała stan opcji 

odpowiedzialnej za wyświetlanie linii podziału. Utwórz dla niej przycisk na arkuszu 

i powiąż ją z nim. 

6.  Makrodefinicję z zad. 2 zmodyfikuj tak, aby przy uruchomieniu użytkownik proszony był 

o podanie swego imienia i nazwiska oraz tytułu arkusza. 

7.  Utwórz makrodefinicję, która dla wszystkich komórek z zakresu D5-M14, których 

zawartość jest większa od 500 będzie ustawiała czcionkę pogrubioną i tło czerwone, zaś 

dla wszystkich, których zawartość jest mniejsza od 100 będzie ustawiała czcionkę 

podkreśloną i kolor tła zielony.