Algorytmy i Programowanie Ćwiczenia: VBA (1)

Transkrypt

Algorytmy i Programowanie Ćwiczenia: VBA (1)
(C) 2005 RoG@j
2005-02-20
Algorytmy i
Programowanie
Ćwiczenia: VBA (1)
Program zajęć (wg. TS…)
!
Wprowadzenie:
!
© 2005 R. Robert Gajewski
[email protected]
http://rogaj.il.pw.edu.pl
!
!
!
!
!
Wiosna 2005
AiPOI 2004/2005
1
Startujemy…
!
Wiosna 2005
!
Przeciągamy i upuszczamy prawym klawiszem
myszy z teczki Programy – z menu wybieramy
Kopia
!
!
!
Narzędzia | Makra | Visual Basic
<Alt-F11>
AiPOI 2004/2005
!
3
Co to jest program???
!
!
!
Wiosna 2005
!
!
!
AiPOI Cw 01
AiPOI 2004/2005
Wstaw | Moduł
W górnej części musi być:
Option Explicit!!!
Programy zapisujemy w module!!!
AiPOI 2004/2005
4
Instrukcje, procedury, moduły
Program w VB składa się z jednej lub więcej
instrukcji wykonywanych w porządku
zdefiniowanym przez programistę.
Instrukcje programu zorganizowane są w
procedury, moduły i projekty.
Program w VB wymaga przynajmniej jednej
procedury
Wiosna 2005
Narzędzia | Opcje | Edytor
" Wymagana deklaracja zmiennych
Utworzenie modułu
!
!
Wiosna 2005
2
Działanie jednorazowe!!!
!
Visual Basic:
!
AiPOI 2004/2005
Konfiguracja i moduły
Ikona Excel’a na pulpicie
!
!
Automatyzacja obliczeń z zastosowaniem
makropoleceń,
Uruchamianie i konfiguracja środowiska VBA,
Edycja + kompilacja + uruchamianie własnych
programów,
Deklaracje zmiennych i stałych prostych,
Operator przypisania, wyrażenia i operatory
arytmetyczne,
Komunikacja z użytkownikiem MsgBox, InputBox,
czytanie i pisanie do i z komórek arkusza.
5
Wiosna 2005
Instrukcja jest najmniejsza częścią kodu.
Może ona zadeklarować zmienną lub
wykonać operację.
Procedura jest najmniejszą częścią kodu
posiadająca własną nazwę. , którą można
uruchomić niezależnie.
Moduł zawiera co najmniej jedną
procedurę oraz wspólny zestaw deklaracji.
AiPOI 2004/2005
6
1
(C) 2005 RoG@j
Instrukcje VB
!
!
!
Procedura VB składa się z instrukcji
Większość instrukcji zajmuje jeden wiersz.
Istnieją cztery typy instrukcji
!
!
!
!
Deklaracje
Instrukcje przypisania
Instrukcje wykonujące konkretne zadania
Informacje dla kompilatora
Stałe
!
!
!
!
Aby zadeklarować stałą należy użyć słowa
kluczowego Const
Stała zastępuje w programie niezmienną
wartość, na przykład przyspieszenie ziemskie
Warto przyjąć regułę, że nazwy stałych
rozpoczynają się od litery c
Const cg As Real = 9.81
Pozostałe typy instrukcji
!
!
Instrukcja wykonująca konkretne zadanie
to na przykład wywołanie procedury lub
funkcji.
Instrukcja z informacjami dla kompilatora
to na przykład wymuszenie deklaracji danych
Option Explicit
2005-02-20
Deklaracje
!
!
!
Deklaracja służy do poinformowania
kompilatora VB, że zamierzamy elementu
posiadającego nazwę
Informuje ona również o typie
Można używać jedynie zadeklarowanych
elementów
Dim Liczba As Integer
Przypisanie
!
!
Instrukcja przypisania służy do przypisania
zmiennej wartości.
Składa się ona z trzech części
!
!
!
Pierwszy program…
!
Sub Hello()
!
!
!
!
End Sub dopisuje się automatycznie!
MsgBox – procedura biblioteczna
Wypisywany tekst jest w parze ” ”
Procedury w VB są dwóch typów:
!
!
AiPOI Cw 01
Nazwy zmiennej
Znaku równości (przypisania…)
Wyrażenia określającego nową wartość
Podprogramy (Sub Procedures)
Funkcje (Function Procedures)
2
(C) 2005 RoG@j
Proste okna dialogowe
!
!
!
!
!
!
!
MsgBox to na dobą sprawę… też funkcja, ale o
tym więcej będzie nieco później
Chr(9) tabulacja, nowa kolumna
Chr(13) znak nowej linii
!
!
InputBox – funkcja, zwraca wprowadzony
łańcuch, nawiasy i… podstawienie!!!
Kompilacja
i uruchamianie (1)
!
Podstawowe reguły…
MsgBox to instrukcja – nie zwraca wartości,
jedynie wykonuje określone czynności –
parametry bez nawiasu
!
!
2005-02-20
Warto przed uruchomieniem skompilować
program!!!
Kompilacja to proces tłumaczenia programu
z języka VB na maszynowy
Najczęściej będziemy uruchamiać programy
w środowisku Excel’a!
!
Kompilacja
i uruchamianie (2)
!
Środowisko edytora VB
!
!
!
!
Analiza | Analiza krokowa
!
!
!
<F8>
„wskazanie” zmiennej „ujawnia” jej wartość
Jest to znakomita technika szukania błędów w
złożonych zadaniach
AiPOI Cw 01
Kompilacja: Analiza | Kompiluj
Uruchomienie: <F5>
Środowisko Excel’a
!
!
Debugging
Wcięcia czynią program czytelnym
Na samym początku pracy zapisujemy
plik, najlepiej na dysku I: i co pewien czas
zapisujemy zmiany: <Ctrl-S> lub ikona
Różne programy (procedury) mogą być w
tym samym module
Komentarz rozpoczyna znak ‘
Komentuj programy – zwiększa to ich
czytelność!
Uruchomienie: Narzędzia | Makra | Makro –
wybierz odpowiednie makro!!!
<Alt-F8>
Deklaracje
!
!
!
Dim Nazwa_Zmiennej As Typ
Dim As – słowa kluczowe – zmienne nie
mogą mieć takich samych nazw jak słowa
kluczowe
Deklaracje mogą być w dowolnym miejscu
programu, ale przed użyciem zmiennej
3
(C) 2005 RoG@j
Nazwy zmiennych
!
!
!
!
Kolejność zgodna z priorytetem
!
!
!
!
!
!
^ potęgowanie
negacja
*/
mnożenie i dzielenie
\ dzielenie całkowite
Mod reszta z dzielenia całkowitego
+dodawanie i odejmowanie
Kolejność wykonywania
operacji
!
Jeśli jest więcej niż jeden operator kolejność
wykonywania operacji to:
!
!
!
!
!
Typy zmiennych
Nazwa zmiennej musi rozpoczynać się od
litery – wewnątrz może być znak
podkreślenia i liczby
Nazwa nie może zawierać znaków
interpunkcyjnych i specjalnych
Nazwa nie może zawierać spacji
Nazwa musi być unikatowa i różna od słów
kluczowych
Operatory arytmetyczne
!
2005-02-20
Operacje arytmetyczne
Operacje konkatenacji (&) czyli łączenia
łańcuchów
Operacje porównania
Operacje logiczne
Kiedy nie jesteś pewien… stawiaj nawiasy!
Boolean Wartość logiczna
0-255
Integer
Liczba całkowita
-32768 32767
Long
Liczba całkowita
+/-2147483648
Single
Zmiennoprzecinkowa
Poj. precyzja
Podw. precyzja
Double
Zmiennoprzecinkowa
String
Łańcuch
Variant
Dowolna wartość
Wyrażenia
!
!
Wyrażenie jest elementem instrukcji
Wyrażenie składa się z:
!
!
!
!
!
Zmiennych
Literałów
Stałych
Funkcji wbudowanych
Funkcji zdefiniowanych
Komunikacja z Excell’em
!
!
!
Traktujemy aktywny arkusz jak tablicę
(macierz)
Cells(i,j) „odwołuje” się do elementu tablicy
o indeksach [i,j]
A=Cells(2,3)
!
!
„przepisanie” do A zawartości kom. [2,3]
Cells(4,5)=B
!
AiPOI Cw 01
Mała liczba całkowita
Byte
Prawda Fałsz
„przepisanie” do [4,5] wartości zm. B
4