280 likes | 434 Views
Wstęp do makr. 2 XII 2013. Wstęp do makr. środowiska pracy programisty VBA bezpieczeństwo – poziom zabezpieczeń tworzenie makr przy pomocy nagrywania przypiswanie makr do przycisków i paska „szybki dostęp”. Co można uzyskać dzięki językowi VBA?.
E N D
Wstęp do makr 2 XII 2013
Wstęp do makr • środowiska pracy programisty VBA • bezpieczeństwo – poziom zabezpieczeń • tworzenie makr przy pomocy nagrywania • przypiswanie makr do przycisków i paska „szybki dostęp”
Co można uzyskać dzięki językowi VBA? • Automatyzacja czynności, które wykonujemy w regularnych odstępach czasu (np. aktualizacja Monitora Konwergencji) albo wielokrotnie (ta sama operacja w wielu wierszach lub arkuszach) • Własne funkcje • Własne interfejsy służące do wprowadzania danych i prezentacji wyników
Jak wyświetlić kartę Deweloper? • Kliknąć (okrągły) przycisk pakietu Office • Opcje programu Excel • Popularne • Pokaż kartę Deweloper na Wstążce Jak utworzyć makro? • Poprzez rejestrację • Poprzez napisanie kodu źródłowego w module Visual Basic
Bezpieczeństwo makr • Przycisk pakietu Office • Opcje programu Excel • Centrum zaufania • Ustawienia centrum zaufania • Ustawienia makr • Zaufane lokalizacje (dodaj nową lokalizację)
Ćwiczenie: przykładowe makro • Wpisz dowolną liczbę w dowolną komórkę • Deweloper/Użyj odwołań względnych lub bezwzględnych • Deweloper/Zarejestruj makro • Nazwij makro (brak odstępów), nadaj skrót, dodaj komentarz • Jeśli chcesz używać makra we wszystkich skoroszytach, zapisz je w skoroszycie makr osobistych • Po naciśnięciu OK, wciśnij ctrl+c • Przejdź do drugiego arkusza i wciśnij ctrl+v • Zatrzymaj rejestrowanie makra • Zarejestrowałeś/-aś pierwsze makro! • Możesz teraz wypróbować, jak działa za pomocą przypisanego uprzednio skrótu
Ćwiczenie – ciąg dalszy • Przejrzyj zarejestrowane makro: Alt+F11 lub Deweloper/Visual Basic lub Deweloper/makra/edycja Sub Przeklej() ' ' Przeklej Makro <- KOMENTARZE SĄ IGNOROWANE PRZEZ KOMPILATORA ' Wkleja zawartość komórki do drugiego arkusza ' ' Klawisz skrótu: Ctrl+i ' Selection.Copy ' Kopiuj Sheets("Arkusz2").Select ' Wybierz Arkusz2 ActiveSheet.Paste ' Wklej End Sub • Zmień powyższy kod procedury tak, aby zawartość komórki źródłowej była wklejana do komórki wynikowej położonej w tym samym miejscu, co komórka źródłowa (choć w innym arkuszu) • Skorzystaj z następujących linijek: Dim adres As String ' Deklarowanie zmiennej adres = ActiveCell.Address ' Przypisanie adresu do zmiennej Range(adres).Select ' Wybór komórki o uprzednio zapisanym adresie
Jak przypisać makro do przycisku? • Deweloper/Wstaw/Formanty formularza/Przycisk • Wybierz makro, które chcesz przypisać i naciśnij OK. • Jeśli chcesz zmienić etykietę (napis) na przycisku, naciśnij prawym klawiszem myszy na przycisk, a potem „edytuj tekst”
Jak przypisać makro do paska „Szybki dostęp”? • Kliknij na wstążkę prawym klawiszem myszy • Dostosuj pasek narzędzi „Szybki dostęp” • Wybierz polecenia z: Makra • Zaznacz makro, które chcesz dodać, dodaj i naciśnij OK
Podstawy Visual Basic for Applications (cz. I) • główne elementy okna edytora VBA (eksplorator projektu, właściwości, kod programu, formularz) • zasady tworzenia procedur • zmienne – definiowanie i ich cechy • definicja pojęć: obiekt, atrybut (właściwość), metoda, argument, kolekcja • sterowanie przebiegiem programu: konstrukcje warunkowe i pętle • zasięg zmiennych, procedur i funkcji -> przeniesione na inny dzień
Okno Edytor projektu VB • Skrót Atl+F11 lub Deweloper/Visual Basic Pasek menu Pasek narzędziowy Okno Eksplorator projektu Okno kodu Okno bezpośrednich instrukcji Okno właściwości
Okno Eksplorator projektu • Dojście na skróty: (alt+F11) ctrl+r • Zawiera trzy przyciski: • Pokaż kod • Pokaż obiekt • Przełącz foldery • Wyświetla hierarchiczną listę aktualnie otwartych projektów oraz zawartych w nich elementów, m.in.: • Arkusze • Wykresy • ThisWorkbook (skoroszyt) • Moduły (w tym klasy) • Formularze (UserForm) • Odwołania do innych projektów
Standardowy pasek narzędzi VB Pokaż Microsoft Excel Tryb projekto-wania Okno właściwości Przybornik Przerwij Eksplorator projektu Przeglądarka obiektów Wiersz i kolumna w oknie kodu Wstaw UserForm Uruchom procedurę Sub Zresetuj
Okno właściwości • Dojście na skróty: (alt+F11) F4 • Służy do przeglądania i ustawiania właściwości zaznaczonego obiektu, np. formularza, projektu lub modułu • Właściwości przeglądamy alfabetycznie lub według kategorii
Okno Formularz • Umożliwia tworzenie okien dialogowych • Do rysowania formantów służą przyciski (kontrolki) przybornika (toolbox) • Do ustawiania właściwości formantów służy okno właściwości
Okno Kod programu • Dojście na skróty: (alt+F11) F7 lub • nacisnąć prawym przyciskiem myszy na dany formularz / moduł, a następnie „view code” • Służy do wpisywania, przeglądania i edytowania kodu • U samej góry okna – dwa rozwijane pola listy (obiekt i procedury), dzięki którym można szybko poruszać się w obrębie programu • Prawe ramię gwiazdki wskazuje linię podziału okna • W lewym dolnym rogu znajdują się ikonki o nazwie widok i pełny widok modułu
Procedury: Sub i Function • Procedura Sub (zwykła) • wykonuje określone zadania, • nie zwraca jawnie żadnych wartości, • zaczyna się Sub, a kończy End Sub • Private Sub zabezpiecza przed wykorzystaniem procedur z innych formularzy • Procedura Function (funkcja) • wykonuje określone zadania, • zwraca pojedynczą wartość, • Zaczyna się Function, a kończy End Function
Jak pisać kod procedury w VB? • Z klawiatury / edytować zarejestrowane makra / kopiować kod z innego modułu • Wcięcia wiersza za pomocą tab (szczególnie przy pętlach i warunkach logicznych) • Łamanie wierszy za pomocą podkreślnika _ • Generalnie wielkość liter nie ma znaczenia • Cofamy operację za pomocą ctrl+z • Zapisujemy za pomocą ctrl+s, jeśli skoroszyt posiada makro, to rozszerzenie .xlsm
Ćwiczenie: piszemy program Option Explicit ‘To polecenie wymusza deklarację zmiennych Dim Kwota_wynik AsSingle ‘Deklarujemy zmienne Dim Kwota_1 As Single Dim KorektaCPI As Single Dim PrognozaCPI As Single Dim SredniPKB As Single Dim Korekta As Single Private Sub cmdOblicz_Click() 'Procedura oblicza kwotę wydatków na rok n Kwota_1 = txtKwota_1.Value KorektaCPI = txtKorektaCPI.Value PrognozaCPI = txtPrognozaCPI.Value SredniPKB = txtSredniPKB.Value Korekta = txtKorekta.Value Kwota_wynik = Kwota_1 * KorektaCPI * PrognozaCPI * (SredniPKB + Korekta) lblKwota_wynik = Kwota_wynik End Sub Private Sub cmdZakoncz_Click() Unload Me End Sub
Definicje • Obiekt – element manipulowany przy użyciu VBA, np. zakresy, wykresy, rysunki itp. • Atrybut/właściwość/własność – określona cecha obiektu, np. pole tekstowe ma czcionkę, tekst, rodzaj ramki, nazwę itp. • Metoda – operacja powiązana z obiektem, np. metoda Show służy do pokazania (usfRegula.Show) • Argument – dane konieczne do tego, aby dana procedura mogła działać • Kolekcja – zbiór podobnych obiektów, np. kolekcja Sheets (zawiera arkusze i wykresy), kolekcja Workbooks, kolekcja Worksheets
Konstrukcje warunkowe (cz. I): IF, THEN, ELSE • If warunek Then instrukcja Np. If (PrognozaCPI > 1.05 And SredniPKB > 1.04) OrPrognozaCPI <= 1 Then MsgBox ("Zła prognoza") • If warunek Then [instrukcje] End If • Ifwarunek Then Instrukcje1 Else Instrukcje2 • If warunek1 Then [instrukcje, gdy warunek1 jest prawdą] ElseIf warunek2 Then [instrukcje2, gdy warunek2 jest prawdą] ElseIf warunek3 Then [instrukcje3, gdy warunek3 jest prawdą]… Else [instrukcje, gdy wszystkie warunki są fałszywe]… End If
Konstrukcje warunkowe (cz. II): SELECT CASE Select Case wyrażenie Case wartość1 Instrukcje, gdy wartość1 równa się wyrażeniu Case wartość2 Instrukcje, gdy wartość2 równa się wyrażeniu Casewartość3 Instrukcje, gdy wartość3 równa się wyrażeniu … End Select
Pętle UNTIL, WHILE i FOR Do If warunek Then Exit Do [instrukcje] Loop Do Until warunek [instrukcje] Loop Do While warunek [instrukcje] Loop Do [instrukcje] Loop While warunek For licznik=start To Stop If warunek Then Exit For [instrukcje] Next licznik For Each element In Grupa [instrukcje] Next element
Pętle – ćwiczenie (cz. I) utrzymywanie wyniku sektora GG na odpowiednim poziomie w stosunku do wzrostu gospodarczego w danym kraju pozwala na stopniowe obniżanie relacji długu do PKB zgodnie z następującym wzorem: gdzie: d* - relacja długu do PKB w długim okresie b – wynik w relacji do PKB g – wzrost nominalnego PKB Np.
Pętle – ćwiczenie (cz. II) • Zapisz program, który poda wskaźnik długu GG do PKB w długim okresie w zależności od wyniku sektora GG i średniookresowego wzrostu nominalnego PKB SubPrzycisk1_Kliknięcie() Dim i As Integer Dim j As Integer Dim d As Single Dimb As Single Dim g As Single For j = 1 To 5 g = (j + 1) Cells(1, j + 1) = g For i = 1 To 5 b = -4 + i Cells(i + 1, 1) = b Cells(i + 1, j + 1) = (-b / g) * (1 + g / 100) Next Next End Sub
Okno Instrukcje bezpośrednie • Dojście na skróty (alt+F11) ctrl+g • Dzięki temu oknu można przećwiczyć różne funkcje i instrukcje • Po wpisaniu instrukcji, Excel poda wynik • Wypróbuj: • Worksheets("Arkusz2").Activate • Range("B2:B5").Select • [B2:B5].Value = 13 • ?Range("B5") • Selection.ClearContents • ?2+2 • ?Selection.Address • ?Selection.Rows.Count • ?ActiveWorkbook.Name