VBA – praca z makrami w Excelu

Transkrypt

VBA – praca z makrami w Excelu
VBA – praca z makrami w Excelu
Dariusz Aksamit
Wydział Fizyki Politechniki Warszawskiej
Przedmiot „Programowanie w języku Visual Basic for Application” (VBA)
Semestr zimowy 2016/2017
Opiekun przedmiotu: dr inż. Daniel Kikoła
VBA – praca z makrami w Excelu
1. Jak odblokować używanie makr?
To ustawienie spowoduje, że uruchomienie
pliku z makrem wywoła taki komunikat:
Każdorazowo będzie trzeba kliknąć „włącz zawartość”
VBA – praca z makrami w Excelu
1. Jak odblokować używanie makr?
2. Jak zarejestrować makro?
VBA – praca z makrami w Excelu
1. Jak odblokować używanie makr?
2. Jak zarejestrować makro?
3. Jak zapisać makro w pliku?
Zapisz jako .xlsm – inaczej wszystko się usunie:p
VBA – praca z makrami w Excelu
1.
2.
3.
4.
Jak odblokować używanie makr?
Jak zarejestrować makro?
Jak zapisać makro w pliku?
Jak dodać do wstążki zakładkę „Deweloper”?
Prawy klik myszką gdziebądź
VBA – praca z makrami w Excelu
1.
2.
3.
4.
5.
Jak odblokować używanie makr?
Jak zarejestrować makro?
Jak zapisać makro w pliku?
Jak dodać do wstążki zakładkę „Deweloper”?
Jak ze wstążki Deweloper dostać się do kodu?
VBA – praca z makrami w Excelu
1.
2.
3.
4.
5.
Jak odblokować używanie makr?
Jak zarejestrować makro?
Jak zapisać makro w pliku?
Jak dodać do wstążki zakładkę „Deweloper”?
Jak ze wstążki Deweloper dostać się do kodu?
Czyli można wygodnie przejść do tworzenia kodu!:)
VBA – praca z makrami w Excelu: piszemy kod!
1. Jak definiować zmienne?
Typ
Rozmiar w pamięci
Opis
Zakres wartości
Byte
1 bajt
Wartości dodatnie
0 do 255
Dwie wartości
True lub False
2 bajty
wartości całkowite
-32,768 do +32,767
Long
4 bajty
wartości
całkowite
-2,147,483,648 do +2,147,483,647
Single
4 bajty
Liczby rzeczywiste
-3.4e38 do +3.4e38
Double
8 bajtów
Liczby rzeczywiste
-1.8e308 do +1.8e308
Boolean
Integer
Currency
zależnie od
systemu
8 bajtów
Liczby rzeczywiste o stałej ilości miejsc po przecinku
-922,337,203,685,477.5808 do
+922,337,203,685,477.5807
Date
8 bajtów
Typ przeznaczony dla dat
1 styczeń 100 to
31.gru.99
Object
4 bajty
Wskaźnik na obiekt
wskaźnik na dowolny obiekt
Zestaw znaków o zmiennej długości
Zmienny - Do 2 bilionów znaków
String
zależnie od
zawartości
VBA – praca z makrami w Excelu: piszemy kod!
1. Jak definiować zmienne?
2. Jak użyć gotowej funkcji Excela/VBA?
'mozna odwoływać się względnie - jeden w górę i trzy w prawo:
ActiveCell.FormulaR1C1 = "=SEARCH(""-"",R[-1]C[3],0)"
'można odwoływać się bezwględnie, adresem:
ActiveCell.Formula = "=SEARCH(""-"",G2,0)"
'mozna odwoływać się względnie - jeden w górę i trzy w prawo:
ActiveCell.FormulaR1C1 = "=SEARCH(""-"",R[-1]C[3],0)"
'można odwoływać się bezwględnie, adresem:
ActiveCell.Formula = "=SEARCH(""-"",G2,0)"
'można wpisać formułę w komórkę tak, żeby była formułą:
ActiveCell.FormulaR1C1 = "=SEARCH(""-"",R[-1]C[3],0)"
ActiveCell.Formula = "=SEARCH(""-"",G2,0)"
'można wpisać w komórkę bezpośrednio wynik działania funkcji:
ActiveCell.Value = WorksheetFunction.Search("-", G2, 0)
'przy niektórych funkcjach prościej, bo są wbudowane w VBA:
ActiveCell.Value = Left(G3, 5)
'mozna odwoływać się względnie - jeden w górę i trzy w prawo:
ActiveCell.FormulaR1C1 = "=SEARCH(""-"",R[-1]C[3],0)"
'można odwoływać się bezwględnie, adresem:
ActiveCell.Formula = "=SEARCH(""-"",G2,0)"
'można wpisać formułę w komórkę tak, żeby była formułą:
ActiveCell.FormulaR1C1 = "=SEARCH(""-"",R[-1]C[3],0)"
ActiveCell.Formula = "=SEARCH(""-"",G2,0)"
'można wpisać w komórkę bezpośrednio wynik działania funkcji:
ActiveCell.Value = WorksheetFunction.Search("-", G2, 0)
'przy niektórych funkcjach prościej, bo są wbudowane w VBA:
ActiveCell.Value = Left(G3, 5)
Pisząc „VBA.” wyświetli nam się lista funkcji wbudowanych w VBA
VBA – praca z makrami w Excelu: piszemy kod!
1. Jak definiować zmienne?
2. Jak użyć gotowej funkcji Excela/VBA?
3. Skąd wiedzieć jakie funkcje mam do wyboru?
ActiveCell.FormulaR1C1 =
Można zarejestrować makro,
wpisując funkcje po polsku,
otrzymamy „tłumaczenie”:
"=SEARCH(""-"",RC[3],0)"
"=LEFT(RC[1],1)"
"=RIGHT(RC[1],5)"
"=MID(RC[1],0,5)"
"=VLOOKUP(RC[1],RC[2]:R[1]C[3],2,0)"
"=CONCAT(RC[1],RC[2])"
"=CONCATENATE(RC[1],RC[2])"
"=LEN(RC[1])"
"=IF(RC[1]=RC[2],""true"",""nieeee"")"
"=IFNA(RC[1],RC[2])"
"=MATCH(RC[1],RC[2]:R[1]C[3],0)"
"=INDEX(RC[1]:R[2]C[2],2,3)"
"=SWITCH(RC[1],RC[2],RC[3],)"
"=ISNUMBER(RC[1])"
Opis ze składnią: http://www.knf.pw.edu.pl/~aksamit/VBA/Funkcje_tekstowe_angielski.pdf
Można zacząć pisać kod i nacisnąć ctr+spacja
Można zacząć pisać kod i nacisnąć ctr+spacja
Można zacząć pisać kod i nacisnąć ctr+spacja
Po czym nacisnąć TAB
Można zacząć pisać kod i nacisnąć ctr+spacja
Po czym nacisnąć TAB
Można zacząć pisać kod i nacisnąć ctr+spacja
Po czym nacisnąć TAB
A potem postawić kropkę (ewentualnie
ponownie ctr+spacja i tab)
Można zacząć pisać kod i nacisnąć ctr+spacja
Po czym nacisnąć TAB
A potem postawić kropkę (ewentualnie
ponownie ctr+spacja i tab)
Analogicznie – funkcje wbudowane w VBA:
VBA – praca z makrami w Excelu: piszemy kod!
1.
2.
3.
4.
Jak definiować zmienne?
Jak użyć gotowej funkcji Excela/VBA?
Skąd wiedzieć jakie funkcje mam do wyboru?
Piszę kod – jak go uruchomić?
4.1 – dodając przycisk i przypisując do niego
wybrane makro
4.2 – Widok-> Makra lub Deweloper->Makra
lub alt+F8
4.2 – Widok-> Makra lub Deweloper->Makra
lub alt+F8: wybierz makro i kliknij „Uruchom”
4.3 – w widoku kodu: na górze z lewej zielony
przycisk „play” lub F5
4.3 – w widoku kodu: na górze z lewej zielony
przycisk „play” lub F5 lub z menu „Run”
4.3 – w widoku kodu: na górze z lewej zielony
przycisk „play” lub F5 lub z menu „Run”
4.4 – wybierając przypisany skrót
klawiaturowy, np. „ctr+j”
4.5 – Przypisać makro do przycisku w
UserFormie
Ale o tym będzie za parę slajdów,
jak dowiemy się co to UserForm
VBA – praca z makrami w Excelu: piszemy kod!
1.
2.
3.
4.
5.
Jak definiować zmienne?
Jak użyć gotowej funkcji Excela/VBA?
Skąd wiedzieć jakie funkcje mam do wyboru?
Piszę kod – jak go uruchomić?
Piszę kod – jak sprawdzić wartości zmiennych lub wykonać fragment?
Lub kliknąć lewym myszki
Teraz trzeba URUCHOMIĆ kod
Najeżdżając myszką nad zmienną
wyświetlimy jej wartość
Najeżdżając myszką nad zmienną
wyświetlimy jej wartość
VBA – praca z makrami w Excelu: piszemy kod!
1.
2.
3.
4.
5.
6.
Jak definiować zmienne?
Jak użyć gotowej funkcji Excela/VBA?
Skąd wiedzieć jakie funkcje mam do wyboru?
Piszę kod – jak go uruchomić?
Piszę kod – jak sprawdzić wartości zmiennych lub wykonać fragment?
UserForm
6.1 – Jak zrobić UserForma?
Prawy klik myszką
6.2 – Jakie mamy ikonki/opcje?
6.3 – Jak dostać się do kodu UF?
Prawy klik myszką
6.4 – Jak uruchomić makro w UF?
Podwójne
kliknięcie na
przycisk
6.5 – Jak uruchomić UF w makrze?
VBA – praca z makrami w Excelu: piszemy kod!
1.
2.
3.
4.
5.
6.
7.
Jak definiować zmienne?
Jak użyć gotowej funkcji Excela/VBA?
Skąd wiedzieć jakie funkcje mam do wyboru?
Piszę kod – jak go uruchomić?
Piszę kod – jak sprawdzić wartości zmiennych lub wykonać fragment?
UserForm
Ulepszamy program
VBA – praca z makrami w Excelu: piszemy kod!
Ulepszamy program!
Ale to już następne zajęcia!