PROGRAMOWANIE W EXCELU W JĘZYKU
VISUAL BASIC FOR APPLICATIONS
mgr Tadeusz Ziębakowski
Szczecin, 2010
Wstęp
Opracowanie zawiera zestaw ćwiczeń przeznaczonych do zajęć laboratoryjnych z przedmiotów Podstawy informatyki i algorytmizacji oraz Informatyka II realizowanych na I roku studiów. Celem tych ćwiczeń jest wprowadzenie studenta w podstawowe zagadnienia algorytmizacji i programowania, głównie w zakresie programowania strukturalnego. Jako narzędzie programistyczne wybrano język Visual Basic for Applications, który jako język skryptowy może być wykorzystywany do tworzenia zarówno prostych makr jak i rozbudowanych aplikacji. Wszystkie ćwiczenia osadzone są w strukturze arkusza kalkulacyjnego, który oferuje łatwy dostęp do danych i jest zarazem źródłem ciekawych problemów programistycznych. Niezbędne do ćwiczeń pliki Excela z danymi, można pobrać ze strony internetowej autora http://tezet.zut.edu.pl lub z zasobów serwera dydaktycznego. Ponieważ zakłada się, że student na wykładzie otrzymuje wiedzę niezbędną do pracy na zajęciach laboratoryjnych, opis ćwiczeń nie został wzbogacony o szerszy materiał pojęciowy. Podstawowe informacje na temat języka Visual Basic for Applications można jednak znaleźć w dodatku zamieszczonym na końcu opracowania.
Zawartość:
Ćwiczenie 1 5
Ćwiczenie 2 10
Ćwiczenie 3 13
Ćwiczenie 4 15
Ćwiczenie 5 17
Ćwiczenie 6 20
Ćwiczenie 7 24
Ćwiczenie 8 28
Ćwiczenie 9 33
DODATEK 38
Ćwiczenie 1
Zagadnienia:
-
Nagrywanie makr i ich edycja w edytorze VBA.
-
Podstawowe elementy języka Visual Basic for Applications: zmienne i ich typy,
instrukcje deklaracji i podstawienia.
-
Dostęp do danych arkusza kalkulacyjnego za pomocą obiektu Range.
-
Instrukcja warunkowa If.
-
Procedura MsgBox.
-
Właściwość ActiveCell
1.Nagrywanie makra
Zadanie 1. Rejestrowanie makra.
W nowym arkuszu wykonaj następujące czynności:
-
Na karcie Deweloper wybierz polecenie Zarejestruj makro w grupie Kod.
-
Zmień nazwę makra na. „Adam” i wybierz klawisz skrótu na Ctrl-a i potwierdź OK – rozpoczął się tryb nagrywania makra.
-
W wybranej komórce wpisz napis „Adam”, potwierdź wpisany napis myszką na pasku formuły.
-
Zakończ nagrywanie makra przyciskiem .
-
Wybierz nową komórkę i naciśnij Ctrl-a.
-
Przejdź do edytora VBA za pomocą kombinacji klawiszy Alt+F11 i kliknij na znak + przy Modules i dwukrotnie na Module1:
Sub Adam()
'
' Adam Makro
'
' Klawisz skrótu: Ctrl+a
'
ActiveCell.FormulaR1C1 = "Adam"
End Sub
-
Zmień napis „Adam” na „Adam i Ewa” i ponownie uruchom makro w nowej wybranej komórce arkusza.
2.Obiekt Range
Zadanie 2
Wpisz w edytorze VBA w Module1 makro:
Sub Dodaj()
Range("C1")= Range("A1")+ Range("B1")
End Sub
W Arkuszu wpisz do komórek A1 i B1 dowolne wartości liczbowe i wykonaj makro.
Uwaga. W VBA istnieje również prostsza forma zapisu zmiennej związanej z komórką arkusza kalkulacyjnego. Zamiast np. Range("C1")można też stosować zapis [C1], zatem powyższe makro można zapisać nastepująco:
Sub Dodaj1()
[C1]= [A1]+ [B1]
End Sub
Ostrzeżenie. W VBA można utworzyć zmienną o nazwie np. A1. Jeśli jest taka zmienna to VBA nie interpretuje zapisu [A1] jako odwołania do komórki A1. Aby odwołać się do komórki A1 należy wówczas zastosować zapis Range("A1").
Zadanie 3
Należy obliczyć wartość wyrażenia:
|
|
(*)
|
dla wartości a,b znajdujących się w komórkach odpowiednio A1 i B1. W tym celu napisz następujące makro:
Sub Wynik()
Dim a As Double ,b As Double ,c As Double
a = [A1]
b = [B1]
c =
[C1] = c
End Sub
Po wpisaniu wartości do A1 i B1 i uruchomieniu makra, w komórce C1 pojawi wynik.
Przykładowe wyniki przedstawia tabela poniżej.
a
|
b
|
c
|
1
|
1
|
0
|
1
|
-1
|
-0,366025
|
0
|
0
|
1
|
Zadanie 4
Napisz makro, które zamienia wartości dwóch komórek, np. A2 i B2. (Wskazówka: wprowadź dodatkową zmienną typu Variant w celu zapamiętania wartości jednej z komórek).
|