Visual Basic for Applications Joanna Porter-Sobieraj

Slides:



Advertisements
Podobne prezentacje
Temat 2: Podstawy programowania Algorytmy – 1 z 2 _________________________________________________________________________________________________________________.
Advertisements

Visual Basic Patryk Rosiak. Visual Basic for Applications Jest uproszczoną wersją języka Visual Basic służącym do obsługi dokumentów w pakiecie Microsoft.
Proces doboru próby. Badana populacja – (zbiorowość generalna, populacja generalna) ogół rzeczywistych jednostek, o których chcemy uzyskać informacje.
1 TREŚĆ UMOWY O PRACĘ : Umowa o pracę określa strony umowy, rodzaj umowy, datę jej zawarcia oraz warunki pracy i płacy, w szczególności: 1) rodzaj pracy,
Równowaga chemiczna - odwracalność reakcji chemicznych
1 Dr Galina Cariowa. 2 Legenda Iteracyjne układy kombinacyjne Sumatory binarne Sumatory - substraktory binarne Funkcje i układy arytmetyczne Układy mnożące.
OBOWIĄZKI INFORMACYJNE BENEFICJENTA Zintegrowane Inwestycje Terytorialne Aglomeracji Wałbrzyskiej.
NIE TAKI KOMPUTER STRASZNY JAK GO MALUJĄ PODSTAWY OBSŁUGI KOMPUTERA.
Przewodnik po raportach rozliczeniowych w Condico Clearing Station (Rynek finansowy)
Tworzenie odwołania zewnętrznego (łącza) do zakresu komórek w innym skoroszycie Możliwości efektywnego stosowania odwołań zewnętrznych Odwołania zewnętrzne.
PRACA Z APLIKACJAMI SYSTEM PRZEMIESZCZANIA oraz NADZORU WYROBÓW AKCYZOWYCH EMCS PL 1.
Wyszukiwanie informacji w Internecie. Czym jest wyszukiwarka? INTERNET ZASOBY ZAINDEKSOWANE PRZEZ WYSZUKIWARKI Wyszukiwarka to mechanizm, który za pomocą.
ELEMENTY ZESTAWU KOMPUTEROWEGO
Umowy Partnerskie w projektach zbiór najważniejszych składników Uwaga! Poniżej znajdują się jedynie praktyczne wskazówki dotyczące tworzenia umów. Dokładne.
Rozliczanie kosztów działalności pomocniczej
Zasady tworzenia prezentacji multimedialnych Autor: Switek Marian.
Zasady tworzenia prezentacji multimedialnych I. Główne zasady: prezentacja multimedialna powinna być ilustracją (uzupełnieniem) treści prezentowanych.
© Kazimierz Duzinkiewicz, dr hab. inż. Katedra Inżynierii Systemów Sterowania 1 Metody optymalizacji - Energetyka 2015/2016 Metody programowania liniowego.
© Matematyczne modelowanie procesów biotechnologicznych - laboratorium, Studium Magisterskie Wydział Chemiczny Politechniki Wrocławskiej, Kierunek Biotechnologia,
Excel 2007 dla średniozaawansowanych zajęcia z dnia
18 kwietnia 2016 (poniedziałek) Część humanistyczna 19 kwietnia 2016 (wtorek) Część matematyczno – przyrodnicza 20 kwietnia 2016 (środa) Język obcy nowożytny.
Niepewności pomiarowe. Pomiary fizyczne. Pomiar fizyczny polega na porównywaniu wielkości mierzonej z przyjętym wzorcem, czyli jednostką. Rodzaje pomiarów.
FORMAT WYMIANY DANYCH GEODEZYJNYCH TANAGO. TANGO V. 1.
 Czasem pracy jest czas, w którym pracownik pozostaje w dyspozycji pracodawcy w zakładzie pracy lub w innym miejscu wyznaczonym do wykonywania pracy.
Poczta elektroniczna – e- mail Gmail zakładanie konta. Wysyłanie wiadomości.
Literary Reference Center Przewodnik
EWALUACJA PROJEKTU WSPÓŁFINANSOWANEGO ZE ŚRODKÓW UNII EUROPEJSKIE J „Wyrównywanie dysproporcji w dostępie do przedszkoli dzieci z terenów wiejskich, w.
EWALUACJA JAKO ISTOTNY ELEMENT PROJEKTÓW SYSTEMOWYCH Sonia Rzeczkowska.
Zmienne losowe Zmienne losowe oznacza się dużymi literami alfabetu łacińskiego, na przykład X, Y, Z. Natomiast wartości jakie one przyjmują odpowiednio.
Umowy o dofinansowanie projektów, umowy partnerskie - na co warto zwrócić szczególną uwagę Grzegorz Gołda PWT PL-SK.
IEN 2010 © wszelkie prawa zastrzeżone SEMINARIUM Pakiet MATLAB w Zakładzie OGM Możliwości posiadanych produktów.
Kontrakty terminowe na indeks mWIG40 Prezentacja dla inwestorów Giełda Papierów Wartościowych w Warszawie S.A. Dział Notowań GPW kwiecień 2005.
OPTYMALNY CEL I PODSTAWY ROZWOJU SZKOŁY. PRZEDE WSZYSTKIM DZISIEJSZA SZKOŁA POWINNA PRZYGOTOWYWAĆ DO ŻYCIA W DRUGIEJ POŁOWIE XXI WIEKU.
ENERGIA to podstawowa wielkość fizyczna, opisująca zdolność danego ciała do wykonania jakiejś pracy, ruchu.fizyczna Energię w równaniach fizycznych zapisuje.
E-sądy po polsku IV EDYCJA Badanie i ranking stron internetowych sądów okręgowych i apelacyjnych oraz Sądu Najwyższego i Trybunału Konstytucyjnego 3 kwietnia.
Jak to się robi ? Instrukcja wypełnienia dzienniczka treningowego, na podstawie danych z GARMIN-a Forerunner 305.
Porównywarki cen leków w Polsce i na świecie. Porównywarki w Polsce.
W KRAINIE TRAPEZÓW. W "Szkole Myślenia" stawiamy na umiejętność rozumowania, zadawania pytań badawczych, rozwiązywania problemów oraz wykorzystania wiedzy.
Algorytmy Informatyka Zakres rozszerzony
Materiały pochodzą z Platformy Edukacyjnej Portalu Wszelkie treści i zasoby edukacyjne publikowane na łamach Portalu
Wyższa Szkoła Informatyki i Zarządzania w Bielsku-Białej Wydział Informatyki Kierunek: Informatyka Specjalność: Systemy Informatyczne PRACA DYPLOMOWA INŻYNIERSKA.
5 kwietnia 2016 r. (wtorek) część 1. – język polski i matematyka – godz. 9:00 (80 minut – arkusz standardowy lub 120 minut – czas wydłużony) część 2. –
Microsoft PowerPoint. Metodyka „dobrej” prezentacji.
Komunikatory Zespół Szkół Zawodowych Nr 3 im. Adama Kocura w Katowicach - Janowie.
Menu Jednomiany Wyrażenia algebraiczne -definicja Mnożenie i dzielenie sum algebraicznych przez jednomian Mnożenie sum algebraicznych Wzory skróconego.
Instalacja nienadzorowana windows xp Jakub klafta.
Python. Języki Programistyczne Microcode Machine code Assembly Language (symboliczna reprezentacja machine code) Low-level Programming Language (FORTRAN,
Wieloaspektowa analiza czasowo- kosztowa projektów ze szczególnym uwzględnieniem kryterium jakości rozwiązań projektowych AUTOR: ANNA MARCINKOWSKA PROMOTOR:
Optymalna wielkość produkcji przedsiębiorstwa działającego w doskonałej konkurencji (analiza krótkookresowa) Przypomnijmy założenia modelu doskonałej.
Metody sztucznej inteligencji - Technologie rozmyte i neuronowe 2015/2016 Perceptrony proste nieliniowe i wielowarstwowe © Kazimierz Duzinkiewicz, dr hab.
Definiowanie i planowanie zadań typu P 1.  Planowanie zadań typu P  Zadania typu P to zadania unikalne służące zwykle dokonaniu jednorazowej, konkretnej.
Projektowanie systemów cyfrowych z wykorzystaniem języka VHDL Układy sekwencyjne.
1 Definiowanie i planowanie zadań budżetowych typu B.
Renata Maciaszczyk Kamila Kutarba. Teoria gier a ekonomia: problem duopolu  Dupol- stan w którym dwaj producenci kontrolują łącznie cały rynek jakiegoś.
Magdalena Garlińska Generator wniosków o dofinansowanie Program INNOCHEM.
Programowanie Obiektowe – Wykład 1
Schematy blokowe.
DEFINICJA I ZASTOSOWANIE W JĘZYKU HASKELL
Liczby pierwsze.
Akademia C# - Lab2 Zmienne, instrukcje warunkowe, pętle, debugger,
Kurs języka C++ – wykład 13 ( )
Języki programowania.
Podstawy informatyki Zygfryd Głowacz.
Zmienne i typy danych w C#
Proste obliczenia w arkuszu kalkulacyjnym
Implementacja rekurencji w języku Haskell
Doskonalenie rachunku pamięciowego u uczniów
Program na dziś Wprowadzenie Logika prezentacji i artykułu
Autor: Magdalena Linowiecka
Zapis prezentacji:

Visual Basic for Applications Joanna Porter-Sobieraj

Plan wykładu Pojęcia wstępne Makra Edytor Visual Basic Podstawy języka

Plan wykładu Typy danych, zmienne, stałe Procedury i funkcje Funkcje wbudowane Sterowanie  Instrukcje warunkowe  Pętle

Plan wykładu Tablice Obiekty Obiekty Visual Basic'a Formularze

Pojęcia wstępne Programowanie Zapisanie w pewnym dokładnie określonym języku poleceń dla komputera, systemu operacyjnego lub programu Wygoda? Konieczność? Sztuka? Rzemiosło?

Pojęcia wstępne Programiści - ludzie, którzy programują Kategorie  Projektanci  Programiści  Testerzy Znajomość i umiejętność tworzenia algorytmów to podstawowa umiejętność programisty

Pojęcia wstępne W codziennym życiu napotykamy algorytmy  przepisy kulinarne  instrukcja księgowania kosztów  instrukcje obsługi np. RTV Nie są to algorytmy komputerowe

Pojęcia wstępne Algorytm  formalnie zapisany sposób rozwiązania danego problemu składający się z kolejnych kroków wykonywanych w określonej kolejności  każdy algorytm ma tylko jeden punkt startowy, czyli wyróżniony pierwszy krok działania  punktów końcowych może być wiele

Pojęcia wstępne Najważniejszy jest pomysł Sposoby opisu algorytmu  schemat blokowy  język naturalny  język programowania

Pojęcia wstępne Najlepszym sposobem nauki pisania algorytmów jest analiza i rozumienie istniejących algorytmów w połączeniu z własnymi próbami rozwiązywania prostych problemów samemu Należy dążyć do algorytmicznego sposobu myślenia o zagadnieniach

Pojęcia wstępne Algorytm Euklidesa Dla dwóch danych liczb naturalnych m i n wyznaczyć największą liczbę naturalną która jest dzielnikiem zarówno m i n Przykład Największym wspólnym dzielnikiem 119 i 544 jest 17

Pojęcia wstępne Język naturalny E1. [wyznaczanie reszty] Podziel liczbę m przez n, resztę z dzielenia oznaczamy jako r (m=a*n + r 0 ≤ r < n) E2. [Reszta zero?] Jeżeli r = 0 algorytm kończy się, wynikiem jest liczba n E3. [Redukcja] Zmień m ← n, n ← r i przejdź do kroku E1 Numer kroku* *Tu się przyda Krótki opis kroku

Pojęcia wstępne Język naturalny  Zrozumiały dla człowieka, dobrze opisuje idee algorytmu, skupia się tylko na rzeczach ważnych pomija detale  Nie jest rozumiany przez komputer

Pojęcia wstępne Symulacja Lp.Krokmnr 1E E E32114? 4E E E3147? 7E E21470

Pojęcia wstępne Schemat blokowy E1.Wyznaczanie reszty E2.Czy reszta jest 0? E3.Redukcja nie tak

Pojęcia wstępne Schemat blokowy  Pokazuje przepływ sterowania, sekwencje  Dobrze uzupełnia opis w języku naturalnym  Trudno wpisać wszystkie istotne informacje w boksy  Nie istnieją dostatecznie dobre programy zamieniające schemat blokowy na program

Pojęcia wstępne Język programowania  Wyspecjalizowany i ograniczony język rozumiany przez komputer na pewnym poziomie  Grupy w zależności od przeznaczenia języki niskiego poziomu - sterowanie sprzętem lub systemem operacyjnym, np. asembler języki wysokiego poziomu - tworzenie samodzielnych programów, np. BASIC, Pascal, C, C++, Visual Basic języki poziomu aplikacji - manipulowanie aplikacjami, np. Visual Basic for Applications

Pojęcia wstępne Język programowania  Jest zrozumiały dla komputera  Jest precyzyjny  Trudniejszy do studiowania przez człowieka  Detale i elementy ważne są tak samo wyeksponowane

Pojęcia wstępne Ułatwieniem w konstrukcji algorytmu może być poznanie 5 jego cech 1. skończoność 2. precyzja definicji 3. wejście 4. wyjście 5. efektywność

Pojęcia wstępne 1.Skończoność  Oznacza, że algorytm musi zakończyć swoje działanie w skończonym czasie  Dla prostych problemów będzie to „mgnienie oka”, dla bardziej złożonych godziny lub nawet dni  Programista musi zatroszczyć się aby algorytm nie pozwalał na nieskończone "kręcenie się" w pętli  Algorytm nieskończony (przykład negatywny): A1. Ustal x ← x+1 A2. Jeżeli x > 0 zakończ w p.p. przejdź do kroku A1 A0. x← -5

Pojęcia wstępne 2.Precyzja Definicji  Każdy krok algorytmu musi być opisany precyzyjnie, dokładnie  Algorytm nie zna niedomówień lub założeń „zwyczajowych”  Zapis w postaci kodu C lub C++ utrudnia nieprecyzyjne definiowanie kroków.  Negatywny przykład: A1. Wyznacz NWD liczb x i y, wynik przechowaj jako liczbę w A2. Jeżeli w = 1 przejdź dalej Jak? Do którego kroku?

Pojęcia wstępne 3.Wejście  Algorytm może posiadać jedno lub więcej wejść (UWAGA: nie mylić z punktem startowym)  Przez wejście rozumiemy każdą pojedynczą informację dostarczaną algorytmowi  W przypadku algorytmu Euklidesa są dwa wejścia: liczba m i liczba n  Technicznie wejściem algorytmu może być: Informacja wskazana myszką podczas pracy z programem Dane podane z klawiatury Dane wczytane z pliku Informacje odczytane z urządzenia zewnętrznego takiego jak np. skaner kodów paskowych

Pojęcia wstępne 4.Wyjście  Algorytm musi posiadać jedno lub więcej wyjść (nie mylić z zakończeniem działania)  Przez wyjście rozumiemy każdą pojedynczą informację jaka jest efektem działania algorytmu  W przypadku algorytmu Euklidesa jest jedno wyjście: liczba będąca NWD  Technicznie wyjściem algorytmu może być: Informacja wyświetlana na ekranie Impulsy sterujące pracą urządzenia zewnętrznego np. drukarki  Nie ma sensu algorytm bez wyjścia!

Pojęcia wstępne 5.Efektywność  Algorytm powinien dany problem rozwiązywać możliwie najszybciej, czyli w jak najmniejszej ilości kroków  Algorytm powinien dany problem rozwiązywać używając możliwie jak najmniej zasobów czyli pamięci, łączy sieciowych itp.  Te dwa pojęcia kolidują – czasem czas można poprawić kosztem pamięci i odwrotnie  W praktyce zajęć studenckich i wielu projektów komercyjnych osłabia się efektywność na rzecz łatwości i szybkości kodowania

Pojęcia wstępne AlgorytmPrzepis kulinarny Skończoność + Tak, orientacyjny czas często podawany, Musi się kiedyś ugotować Precyzja definicji + Nie, „Dodaj szczyptę soli, Gotuj aż zmięknie” Wejście + Tak, wiktuały Wyjście + Tak, potrawa Efektywność + Tak, wyrażona kosztem czyli cena wiktuałów + czas przygotowania potrawy

Pojęcia wstępne Algorytm Kod źródłowyKod maszynowy ProgramInterpreter Kompilator Krok I Ścieżka kompilacji Ścieżka interpretacji

Pojęcia wstępne Od algorytmu do programu (Krok I)  Gotowy algorytm zapisać w postaci kodu języka programowania  Istnieje wiele różnych języków programowania, każdy z nich posiada przewagę nad każdym innym, wszystko zależy od problemu  Dobrze poznając jeden język programowania, łatwo jest później opanować kolejne  UWAGA: algorytmy pozostają niezmienione, niezależnie od wybranego języka programowania

Pojęcia wstępne Od algorytmu do programu (Krok I)  Wybór języka programowania determinuje jaką ścieżką należy podążać potem Visual Basic (także w wersji dołączonej do pakietu MSOffice) jest językiem interpretowanym C i C++ jest językiem kompilowanym  Algorytm spisany zgodnie z kanonem danego języka programowania nazywamy kodem źródłowym  Do spisania kodu źródłowego używamy najczęściej tego samego programu komputerowego, który wykorzystujemy do kompilacji lub interpretacji

Pojęcia wstępne Interpretacja  Jest to proces przetłumaczenia kodu źródłowego, czyli tekstu na język zrozumiały dla komputera  Wynikiem interpretacji jest działający program, procesy korzystania z programu i jego interpretacji zachodzą równocześnie, przypomina to rozmowę z biegłym tłumaczem.  Do przeprowadzenia interpretacji kodu potrzebny jest specjalny program zwany interpreterem  Ponowne użycie programu będzie wymagało ponownej interpretacji

Pojęcia wstępne Kompilacja  Jest to proces zamiany kodu źródłowego, czyli tekstu na kod zrozumiały dla komputera  Wynikiem kompilacji jest plik z danymi binarnymi zwany kodem maszynowym  Do przeprowadzenia kompilacji kodu potrzebny jest specjalny program zwany kompilatorem  Aby skorzystać z tak przygotowanego programu wystarczy uruchomić plik z kodem maszynowym  Kompilacja jest konieczna tylko raz, z kodu maszynowego (czyli pliku.exe) można korzystać wielokrotnie

Pojęcia Wstępne Wady i zalety Interpretacja Kompilacja Szybkość działania  Przenośność  Łatwość kodowania  Odporność na błędy  Zasoby 

Pojęcia wstępne BASIC (Beginners All-Purpose Symbolic Instruction Code) 1963 r. Założenie: umożliwić szybkie tworzenie programów dla osób nie zajmujących się zawodowo komputerami

Pojęcia wstępne VB (Visual Basic) 1991 r. BASIC połączony ze środowiskiem programowania wizualnego Założenie: umożliwić łatwe tworzenie aplikacji dla środowiska Windows

Pojęcia wstępne VBA (Visual Basic for Applications) Visual Basic dołączony do aplikacji Microsoft Office: Access, Excel, PowerPoint, Outlook, Word Założenie: umożliwić samodzielne rozszerzanie aplikacji przez użytkowników

Makra Makro Lista instrukcji, które aplikacja może automatycznie wykonać Dwie metody tworzenia:  Wykonać pożądane instrukcje z włączonym trybem ich automatycznego zapisywania  Zapisać instrukcje w postaci poleceń języka VBA

Makra – przykłady wykorzystania Sformatowanie w jednakowy sposób wielu komórek w wielu arkuszach Excela Sformatowanie w jednakowy sposób wielu fragmentów tekstu dokumentu Worda Sformatować wiele wykresów w jednakowy sposób w arkuszu Excela

Makra – przykłady wykorzystania Zmodyfikować zawartość wielu komórek według zadanego schematu w wielu arkuszach Excela Zmodyfikować zawartość dokumentu Worda w sposób bardziej skomplikowany niż zwykłe zastępowanie tekstu Skopiować do nowego dokumentu Worda tylko wybrane fragmenty innych dokumentów Wczytać do arkusza Excela dane zapisane w niestandardowym formacie Zapisać dane z arkusza Excela w niestandardowym formacie

Makra Rejestrowanie makra Krok 1 Przemyśleć problem! Zadbać o poprawne warunki początkowe Menu: Narzędzia / Makro / Zarejestruj nowe makro

Makra Rejestrowanie makra Krok 2 Nazwa  Złożona z liter, cyfr i znaków podkreślenia  Pierwszy znak musi być literą Klawisz skrótu  Dozwolone jest użycie klawisza SHIFT  Trzeba pamiętać o wykorzystywanych już skrótach Przechowywanie  'Skoroszyt makr osobistych' - wspólny dla wszystkich otwieranych arkuszy  'Nowy skoroszyt'  'Ten skoroszyt'

Makra Rejestrowanie makra Krok 3 Wszystkie czynności wykonane przy pomocy klawiatury lub myszy zostaną zarejestrowane, aż do momentu zatrzymania rejestrowania Odwołanie względne czy bezwzględne?  Bezwzględne - odtwarzane makro będzie zawsze wykonywało czynności w tej samej komórce ($A$1)  Względne - odtwarzane makro będzie wykonywało czynności w komórce wskazanej przez przesunięcie względem początkowej komórki (A1)

Makra Dialog makro Menu: Narzędzia / Makro / Makra Nazwy makr powinny być znaczące! Opisy makr mogą być pomocne! 'Edycja'- możliwość edycji kodu VBA będącego zapisem zarejestrowanego makra

Makra Uruchamianie makra Klawiatura - klawisz skrótu wybrany przed rozpoczęciem rejestrowania Dialog 'Makro' - przycisk 'Uruchom' Menu - nowa opcja menu specjalnie dla makra Pasek narzędzi - nowy przycisk specjalnie dla makra Przycisk w arkuszu Z edytora VBA

Makra Dodawanie makra do menu Menu: Narzędzia / Dostosuj Dialog 'Dostosuj': Opcja 'Polecenia', kategoria 'Makra' Przenieść 'Niestandardowy element menu' w pożądane miejsce w menu aplikacji Prawy przycisk myszy na nowej pozycji menu – możliwość zmiany nazwy i przypisania makra Zamknięcie dialogu 'Dostosuj' - koniec modyfikacji menu Można tworzyć nowe menu z dowolną zawartością wybierając kategorię 'Nowe menu' z opcji 'Polecenia' na dialogu 'Dostosuj'.

Makra Dodawanie makra do paska narzędzi Menu: Narzędzia / Dostosuj Dialog 'Dostosuj': Opcja 'Polecenia', kategoria 'Makra' Przenieść 'Przycisk niestandardowy' w pożądane miejsce w dowolnym pasku narzędzi aplikacji Prawy przycisk myszy na nowym przycisku – możliwość zmiany nazwy i przypisania makra Zamknięcie dialogu 'Dostosuj' - koniec modyfikacji pasków narzędzi Można tworzyć nowe paski narzędzi z dowolną zawartością wybierając opcję 'Paski narzędzi' na dialogu 'Dostosuj' i naciskając przycisk 'Nowy'.

Makra Kod zarejestrowanego makra Przycisk 'Edycja' na dialogu 'Makro' (menu: Narzędzia / Makro / Makra) Makro  Zarejestrowane czynności użytkownika  Zapisane w postaci procedury języka VBA  Wykorzystujące obiekty udostępniane przez aplikację

Makra

Edytor Visual Basic

Okno eksploratora projektu Zawartość projektu: Obiekty Excela - This Workbook - skoroszyt projektu - Arkusze - Wykresy Formularze - własne okna dialogowe Moduły - moduły kodu (standardowe) Moduły klas - moduły klas wykorzystywane przy tworzeniu własnych obiektów Odwołania do innych projektów

Edytor Visual Basic Okno właściwości Obiekty - poszczególne arkusze, wykresy, moduły, moduły klas oraz This Workbook Zbiory właściwości różnych obiektów są różne Nie wszystkie właściwości zawsze można zmieniać Nie wszystkie właściwości są zawsze widoczne

Edytor Visual Basic Okno kodu Możliwości wyświetlania: Wszystkie procedury z modułu oddzielone poziomymi liniami Tylko jedna aktualnie wybrana procedura Okno podzielone na dwie niezależnie przewijane części Zawartości listy obiektów i listy procedur zależą od obiektu aktualnie wybranego do edycji

Edytor Visual Basic Okno kodu Edycja kodu Po przejściu do nowej linii automatycznie jest sprawdzana poprawność i dokonywane formatowanie (zamiana wielkości liter, stosowanie wcięć i kolorowanie składni) Znak podkreślenia '_' umożliwia kontynuowanie instrukcji w nowej linii, ale nie można dzielić w ten sposób ciągu znaków w cudzysłowach

Edytor Visual Basic Okno kodu Edycja kodu Kolory: - niebieski - słowa kluczowe - zielony - komentarze - czerwony - błąd

Edytor Visual Basic Okno instrukcji bezpośrednich Wykonywanie pojedynczych poleceń VBA. Wypisywanie tekstu instrukcją Debug.Print (lub krócej ' ? '), umożliwiające sprawdzanie wyniku wykonania instrukcji

Edytor Visual Basic Pomoc Domyślnie pomoc na temat Visual Basica nie jest instalowana. Można ją dodać bez potrzeby ponownego instalowania całego MS Office 'Microsoft Visual Basic - tematy Pomocy' - pomoc na temat aplikacji, z której uruchamiany jest Visual Basic. 'Spis treści i indeks' - pomoc na temat Visual Basica

Edytor Visual Basic Pomoc na temat Visual Basica Zawiera informacje na temat Visual Basic for Applications bez szczegółów dotyczących poszczególnych aplikacji:  Obsługa środowiska VBA  Opis języka VBA  Tworzenie formularzy (własnych okien dialogowych)  Odnośniki do pomocy na temat wykorzystania VBA w aplikacjach MS Office

Edytor Visual Basic Pomoc na temat Visual Basica dla Excela Zawartość  Opis VBA  Pełny opis Visual Basica dla Excela - opis wszystkich zdarzeń, funkcji, metod, obiektów i własności  Informacje o dostępie do baz danych  Opis tworzenia formularzy

Edytor Visual Basic Korzystanie z pomocy Sposoby znajdowania szukanych informacji:  Zawartość – przeglądanie rozdziałów i podrozdziałów pomocy  Indeks - znajdowanie słów kluczowych  Wyszukiwanie - znajdowanie wystąpień wskazanego tekstu we wszystkich tekstach zawartych w pomocy  Informacje o słowie występującym w kodzie – klawisz F1 UWAGA: Szukając informacji trzeba pamiętać, żeby szukać w dobrym zbiorze pomocy.

Podstawy języka Moduł  Miejsce przechowywania instrukcji VB  Złożony z deklaracji procedur Procedura  Zbiór instrukcji wykonywanych w całości  Złożona z instrukcji  Ograniczona frazami: Sub i End Sub Funkcja  Procedura zwracająca wartość  Ograniczona frazami: Function i End Function Instrukcja  Pojedyncza linia procedury lub funkcji

Podstawy języka

Procedury Zalety stosowania procedur:  Większa czytelność kodu  Prostsze dokonywanie zmian  Prostsze testowanie kodu  Możliwość wielokrotnego użycia kodu

Podstawy języka Procedury Kolejność szukania procedury w momencie jej wołania:  Moduł, w którym znajduje się procedura wywołująca  Pozostałe moduły znajdujące się w aktualnym skoroszycie  W przypadku wywoływania procedury z innego skoroszytu należy dodać odwołanie do tego skoroszytu (menu: Narzędzia / Odwołania)

Podstawy języka Obiekt  Przedmiot kontrolowany przez Visual Basic  np. Workbook, Worksheet, Range, Application, Window Kolekcja  Zbiór podobnych obiektów  np. Workbooks, Worksheets Właściwość  Cecha obiektu  np. Column, Font, Formula, Name, Row, Style, Value dla obiektu Range Metoda obiektu  Czynność, którą dany obiekt potrafi wykonać  np. ClearContents, ClearFormats, Clear dla obiektu Range Właściwość obiektu może być obiektem.

Podstawy języka Hierarchia obiektów Excela

Podstawy języka Hierarchia obiektów Worksheets

Podstawy języka Składnia Odwołanie do właściwości obiektu: obiekt.właściwość Range("A1").Value ActiveSheet.Range("A1").Value Zmiana właściwości obiektu: obiekt.właściwość = wartość Range("A1").Value = 25 ActiveSheet.Range("A1").Value = "nowy tekst"

Podstawy języka Składnia Wywołanie metody bezargumentowej: obiekt.metoda Range("A1").Clear ActiveSheet.Range("A1").ClearFormats Wywołanie metody z argumentami: obiekt.metoda(arg1, arg2,..., argN ) ActiveCell.Offset(3,2) ActiveCell.Offset(rowOffset:=3,columnOffset:=2)

Podstawy języka Błędy w kodzie Syntaktyczne  Wynikające z zastosowania nieprawidłowej składni instrukcji  Większość jest automatycznie wychwytywana przez edytor po zakończeniu edycji linii  Część jest wychwytywana przy próbie uruchomienia

Podstawy języka Błędy w kodzie Błędy wykonania  Pokazywane podczas działania wywołanych procedur Błędy logiczne  Rozbieżności działania procedur z oczekiwaniami  Nieprawidłowe wyniki

Podstawy języka Narzędzia ułatwiające pisanie kodu Przyspieszają wpisywanie instrukcji Szczególnie przydatne do obsługi obiektów Excela Dostępne na pasku narzędzi Edycja

Podstawy języka Polecenie: Wyświetl właściwości/metody Lista wszystkich właściwości i metod obiektu Sposoby pokazania:  napisać nazwę obiektu i kropkę  przycisk na pasku narzędzi  Ctrl+J Obsługa listy właściwości i metod obiektu:  tabulator - wstawia wybrany element, aktualna linia nie zmienia się  enter - wstawia wybrany element, edycja przechodzi do następnej linii  ESC - zamknięcie listy bez wstawienia

Podstawy języka Polecenie: Wyświetl stałe Lista stałych akceptowalnych jako wartości własności obiektów Sposoby pokazania:  napisać nazwę obiektu, kropkę, nazwę właściwości, znak równości  przycisk na pasku narzędzi  Shift+Ctrl+J Obsługa jak w przypadku listy właściwości i metod obiektu

Podstawy języka Polecenie: Informacje o parametrze Informacje o parametrach akceptowanych przez metodę obiektu Sposoby pokazania:  napisać nazwę obiektu, kropkę, nazwę metody, nawias otwierający  przycisk na pasku narzędzi  Shift+Ctrl+I

Podstawy języka Polecenie: Dokończ wyraz Automatyczne dokończenie rozpoczętego wyrazu, jeśli zawarty jest on w zbiorze znanych wyrazów Jeśli istnieje więcej niż jedna możliwość dokończenia, umożliwiany jest wybór z listy Sposób wywołania polecenia:  przycisk na pasku narzędzi  Shift+Spacja

Podstawy języka Przeglądarka obiektów Menu: Widok / Przeglądarka obiektów Klawisz F2

Podstawy języka Wykorzystanie okna instrukcji bezpośrednich Doskonałe narzędzie testowania pojedynczych instrukcji, szczególnie przydatne przy jednoczesnym podglądzie arkusza Cells(2).Select Selection.Offset(2,3).Select Range("A1").Resize(10,5).Select ?Selection.Rows.Count 10 Worksheets("Arkusz2").Select ActiveCell.Formula = "tekst" Selection.Value = 12 Cells(3,2) = 30

Podstawy języka Wykorzystanie okna instrukcji bezpośrednich Doskonałe narzędzie testowania pojedynczych instrukcji, szczególnie przydatne przy jednoczesnym podglądzie arkusza Range("B4").Formula = "=B3*3" ?Range("B4").Formula =B3*3 ?Range("B4").FormulaR1C1 =R[-1]C*3 Range("B4").NumberFormat = "#.##0.00 $" Workbooks.Add Workbooks("Zeszyt2").Close ?ActiveWindow.Caption Zeszyt1 ActiveWindow.Height = 100

Wykład 2 Zadanie 1: Nagraj makro, wstaw je do menu i na pasek. Makro ma zmieniać tło, obramowanie, grubość tekstu i tekst TYLKO w aktywnej komórce Zadanie 2: Wywołaj to makro trzykrotnie dla elementów na diagonali (odwołania względne) poprzez menu->Uruchom makro, z paska i dodanego menu (2 ostatnie nie działają) Zamiana Run -> Call Zadanie 3: Rekurencja, F8

Typy danych Liczby całkowite: Byte - 1 bajt; wartości od 0 do 255 Integer - 2 bajty; od do Long - 4 bajty; od ok. -20 mld do ok. 20 mld Decimal - 14 bajtów; do 28 cyfr z przecinkiem Liczby rzeczywiste: Single - 4 bajty; od ok. -3.4e38 do ok. 1.4e45 Double - 8 bajtów; rzędu +/-1.8e308 Currency - 8 bajtów; +/-9.2e14 (+4 miejsca po przecinku)

Typy danych Wartości logiczne: Boolean - True/False Daty: Date - od 1/1/100 do 31/12/9999 Ciągi znaków: String (ustalonej długości) - od 0 do znaków String (zmiennej długości) - od 0 do ok. 2 mld znaków

Typy danych Obiekty: Object - wskazanie na dowolny obiekt Typ dopasowany do wartości: Variant Definiowany przez użytkownika: Type

Zmienne Zmienna: miejsce w pamięci, które może przechowywać wartość określonego typu. Ta wartość może się zmieniać w trakcie działania programu. Nazwa zmiennej:  unikatowa w obrębie swojego zakresu  do 255 znaków  nie może zawierać znaku deklarującego typ, spacji, przecinka i kropki  musi zaczynać się od litery  małe i duże litery nie są rozróżniane  nie można używać słów kluczowych VB

Zmienne Przykłady:  wynik  wynik_dod  wynik_dodawania  wynikDod  wynikDodawania

Deklaracje Deklaracja zmiennej Informacja o nazwie zmiennej i jej typie Domyślnym typem jest Variant Nieobowiązkowa, ale zalecana:  przyspieszenie wykonania  oszczędność pamięci  unikanie błędów

Deklaracje Składnia deklaracji: Dim zmienna As typ np.: Dim wynik As Integer Skrócona deklaracja przy użyciu specjalnych znaków typów danych: % Integer & Long ! Single # Currency $ String np.: Dim wynik%

Deklaracje Jawne deklarowanie zmiennych Wymuszenie deklarowania zmiennych w module: Option Explicit w pierwszej linii kodu modułu

Ciągi znaków Znaki zwykłe i sterujące ujęte w cudzysłowach Pusty ciąg: "" Zmienne łańcuchowe stałej długości np. Dim sNazwisko As String * 30 Zmienne łańcuchowe zmiennej długości np. Dim sCiag As String

Ciągi znaków Łączenie ciągów znaków operatorem & np. sCiag = "tekst" & "2" Specjalne znaki sterujące, m.in.: vbNewLine - znak nowego wiersza vbTab - tabulator vbBack - backspace np. "tekst linii pierwszej" & vbNewLine & _ "tekst linii drugiej"

Daty Wartość daty i czasu Dostępny zakres: od do Reprezentacja dat:  użycie znaków #  ciągi znaków zawierające poprawne daty

Daty Przykłady: Dim d As Date d = #12/24/ :33:00# d = #12/24/1998# d = #13:33:00# d = ”24 grudnia 1998” Uwaga: format zależny od formatu obowiązującego w systemie operacyjnym

Obiekty Excel zawiera dużą liczbę dodatkowych typów danych, należących do ogólnej kategorii danych typu Object Najczęściej wykorzystywane: Chart, Comment, FillFormat, Filter, Font, Outline, PageSetup, Range, Sheets, Window, Workbook, Worksheet, WorksheetFunction Tworzenie zmiennej obiektowej:  Zadeklarować zmienną i określić jej typ (może być ogólny Object lub szczegółowy typ obiektów Excela)  Przypisać zmienną do obiektu przy pomocy instrukcji Set

Obiekty Przykład:

Tablice Tablica Kolekcja zmiennych posiadających tę samą nazwę, rozróżnianych na podstawie indeksu, czyli numeru w kolekcji. Deklaracja jednowymiarowej tablicy Dim wektor(1 To 10) As Double Deklaracja wielowymiarowej tablicy: Dim macierz(1 To 10, 1 To 10) As Double

Tablice

Tablice dynamiczne Deklaracja: Dim tabDyn() As Integer Określenie rozmiaru: ReDim tabDyn(1 To 10) Zmiana rozmiaru:  z wyczyszczeniem: ReDim tabDyn(1 To 100)  z zachowaniem: ReDim Preserve tabDyn(1 To 100) Sprawdzenie rozmiaru: UBound(tabDyn)

Tablice dynamiczne

Stałe Stała Nazwa o określonym znaczeniu zastępujące wartości niezmienne w kodzie programu Przykłady deklaracji stałych: Const Tytul = "Wczytywanie danych" As _ String Const As Integer Pot_2_5 = 32 Const Poczatek As Date = #1/1/99#

Stałe Nie można deklarować stałych obiektów Pewne stałe są zadeklarowane w Visual Basicu lub w Excelu, np.: vbNewLine, vbTab, xlLeft, xlSolid (spis dostępny w Przeglądarce obiektów)

Zasięg zmiennych i stałych Zasięg Określa dostępność zmiennych i stałych dla innych procedur i modułów Trzy poziomy zasięgu:  Poziom procedury (zmienne, stałe lokalne)  Prywatny poziom modułu (prywatne)  Publiczny poziom modułu (publiczne)

Zasięg zmiennych i stałych Poziom procedury (zmienne, stałe lokalne)  deklaracja wewnątrz procedury  niewidoczne poza macierzystą procedurą Prywatny poziom modułu (prywatne)  deklaracja w sekcji deklaracji modułu z użyciem słowa kluczowego Private  dostępna dla wszystkich procedur zawartych w module Publiczny poziom modułu (publiczne)  deklaracja w sekcji deklaracji modułu z użyciem słowa kluczowego Public  dostępna dla wszystkich procedur w projekcie

Zasięg zmiennych i stałych

Czas życia zmiennych Czas życia Określenie jak długo (lub kiedy) zmienna jest poprawna. Dotyczy wyłącznie zmiennych lokalnych. Zmienna lokalna jest niszczona automatycznie po wyjściu sterowania poza jej zasięg (wyjściu z procedury) Zmienne lokalne zadeklarowane jako Static nie są niszczone

Czas życia zmiennych

Procedury i funkcje Niepodzielne bloki instrukcji wykonujące określone czynności Procedury Nie zwracają żadnej wartości Funkcje Zwracają wartość

Procedury Nie zwracają żadnej wartości Deklaracja [Public lub Private] _ Sub nazwaProcedury(arg1 As typArg1, _ arg2 As typArg2,...) Koniec: End Sub

Funkcje Zwracają wartość Deklaracja [Public lub Private] _ Function nazwaFunkcji(arg1 As typArg1, _ arg2 As typArg2,...) As typZwracany Koniec: End Function

Uruchamianie W Excelu: Procedury - dostępne w oknie dialogowym 'Makro', skąd można je uruchomić Funkcje - dostępne po wybraniu kategorii 'Wszystkie' lub 'Użytkownika' w oknie dialogowym 'Wklej funkcję'

Uruchamianie W edytorze Visual Basic: Uruchamianie  menu Uruchom / Uruchom makro (kursor musi być w obrębie procedury lub funkcji, którą chcemy uruchomić)  wpisać nazwę uruchamianej funkcji lub procedury w oknie Instrukcji bezpośrednich i nacisnąć Enter Przerywanie - menu Uruchom / Przerwij Resetowanie - menu Uruchom / Zresetuj

Wywoływanie Procedura Call nazwaProcedury(parametry,...) nazwaProcedury parametry Funkcja nazwaFunkcji(parametry,...)

Wywoływanie

Zwracanie wartości przez funkcje Domyślnym typem zwracanej wartości jest Variant Aby zwrócić wartość z funkcji przypisuje się tę wartość nazwie funkcji Można wielokrotnie przypisywać wartość nazwie funkcji

Zwracanie wartości przez funkcje

Zadanie 1: Funkcja obliczająca sumę (nie nazywać „suma”) Zadanie 2: Funkcja obliczająca sumę szeregu arytmetycznego od 1 do podanej liczby Zadanie 3: Funkcja łącząca login z nazwą serwera Zadanie 4: Funkcja TestZnaku z if’ami

Argumenty Domyślny typ argumentu: Variant Przekazywane przez referencję: ByRef Przekazywane przez wartość: ByVal

Wykład 3 Zadanie 1: Procedura pobierająca 2 liczby i zwracająca je w kolejności mniejsza/większa Zadanie 2: Pobierająca 2 teksty i zwracająca je w kolejności alfabetycznej (Należy użyć zmiennych przekazywanych przez zmienną)

Argumenty opcjonalne Argumenty, których wartości nie muszą być przekazywane do procedury lub funkcji przy jej wywołaniu. Deklaracja argumentu jako opcjonalnego: Optional Sprawdzenie, czy opcjonalny argument został przekazany do procedury lub funkcji: IsMissing(nazwa_arg) Argumenty opcjonalne muszą być umieszczone na końcu listy argumentów

Argumenty opcjonalne

Argumenty nazwane Wywoływanie procedur i funkcji z podaniem nazw argumentów i ich wartości. Zalety  Większa czytelność i przejrzystość kodu  Nie ma znaczenia kolejność argumentów

Argumenty nazwane Przykład: funkcja, w której wszystkie argumenty są opcjonalne i jej wywołania: SaveAs(Filename, FileFormat, Password, WriteResPassword, ReadOnlyRecommended, CreateBackup, AddToMru, TextCodePage, TextVisualLayout) ActiveSheet.SaveAs "C:\01.xls",,,,, _ True,,, True ActiveSheet.SaveAs FileName:="C:\01.xls", _ CreateBackup:=True, _ AddToMru:=True

Wyjście z procedury lub funkcji Automatyczne na końcu kodu procedry lub funkcji Przed końcem kodu, używając instrukcji: Exit Sub Exit Function

Procedury i funkcje prywatne Prywatne Mogą być wywoływane tylko z wnętrza modułu, w którym zostały zdefiniowane Oznaczane słowem Private Np. Private Function TekstDoSpacji(tekst _ As String) As String

Procedury i funkcje publiczne Publiczne Mogą być wywoływane z dowolnego modułu w projekcie Oznaczane słowem Public Np. Public Sub Komunikat(tekst As String) Domyślnie wszystkie są publiczne

Procedury i funkcje publiczne Aby kod w jednym projekcie mógł wywoływać procedurę lub funkcję publiczną z innego projektu, projekt wywołujący musi posiadać odwołanie do projektu wywoływanego (menu Narzędzia / Odwołania) Składnia wywołania: NazwaModułu.NazwaProcedury Przykład: FunkcjeTekstowe.TekstDoSpacji("siedem osiem")

MsgBox MsgBox(prompt[, buttons] [, title] [,helpfile, context])

MsgBox MsgBox(prompt[, buttons] [, title] [,helpfile, context]) Przyciski: vbOKOnly, vbOKCancel, vbAbortRetryIgnore, vbYesNoCancel, vbYesNo, vbRetryCancel Ikony: vbCritical, vbQuestion, vbExclamation, vbInformation Zwracane wartości: vbOK, vbCancel, vbAbort, vbRetry, vbIgnore, vbYes, vbNo

InputBox InputBox(prompt[, title] [, default] [, xpos] [, ypos] [, helpfile, context])  default – wartość domyślna w oknie edycji  xpos, ypos – (15 twips = 1 piksel)

InputBox

Operacje na ciągach znaków Len(ciag) - długość ciągu np. Len("Tekst")  5 UCase(ciag) - zamiana na wielkie litery np. UCase("Tekst")  "TEKST" LCase(ciag) - zamiana na małe litery np. LCase("Tekst")  "tekst"

Operacje na ciągach znaków Left(ciag, dlugosc) - początek ciągu np. Left("Tekst",2)  "Te" Right(ciag, dlugosc) - koniec ciągu np. Right("Tekst",3)  "kst" Mid(ciag, poczatek, dlugosc) - wnętrze ciągu np. Mid("Tekst",2,3)  "eks" Instr(poczatek, ciag, podciag) - szukanie podciągu w ciągu np. Instr(1,"Tekst","e")  2

Operacje na ciągach znaków Str(liczba) - konwersja liczby na ciąg np. Str(12)  "12" Val(ciag) - konwersja ciągu na liczbę np. Val("12")  12 String(liczba, podciag) - powtarzanie podciągu w ciągu np. String(2, "ma")  "mama" Space(liczba) - stworzenie ciągu złożonego ze spacji np. Space(3)  " "

Operacje na ciągach znaków Trim(ciag) - usuwanie spacji początkowych i końcowych np. Trim(" Tekst ")  "Tekst" LTrim(ciag) - usuwanie spacji początkowych np. LTrim(" Tekst ")  "Tekst " RTrim(ciag) - usuwanie spacji końcowych np. RTrim(" Tekst ")  " Tekst"

Porównywanie ciągów znaków ciag1 = ciag2 True tylko gdy są identyczne, w przeciwnych przypadkach False ciag Like wzorzec  Option Compare Binary porównywanie domyślne polegające na porównywaniu numerów znaków  Option Compare Text porównywanie uzależnione od ustawień regionalnych (np. dla sortowania polskich tekstów)

Porównywanie ciągów znaków Znaki specjalne we wzorcu: ? - dowolny pojedynczy znak * - dowolna liczba dowolnych znaków # - dowolna cyfra [lista_znakow] - dowolny znak należący do listy [!lista_znakow] - dowolny znak nie należący do listy

Porównywanie ciągów znaków Przykładowe prawdziwe dopasowania: "tekst12" Like "te?st" "tekst12" Like "t*t12" "tekst12" Like "te???#?" "tekst12" Like "[a-z]ekst[12][0-9]" "tekst12" Like "[!0-9]*[0-9]"

Operacje na dacie i czasie Pobranie  Date, Time, Now – pobranie systemowej daty, czasu, daty i czasu  Year, Month, Day, Weekday, Hour, Minute, Second – pobranie składowych daty i czasu  Timer – pobranie liczby sekund od północy Ustawienie  Date, np. Date = # #  Time, np. Time = #17:43#

Operacje na dacie i czasie DateAdd(odstep, liczba, data) – dodanie do daty liczby odstępów DateAdd("m", 3, " ")  # # DateDiff(odstep, data1, data2) – pobranie liczby odstępów pomiędzy datami DateDiff("d", " ", " ")  59 DatePart(odstep, data) – pobranie składowej daty np. DatePart("h", " :43")  17

Operacje na dacie i czasie DateSerial(rok, miesiac, dzien) – określenie daty, np. DateSerial( , 8-2, 1-1)  # # DateValue(wyrazenie) – określenie daty, np. DateValue("12 luty 1969")  # # TimeSerial(godzina, minuta, sekunda) – określenie czasu, np. TimeSerial(12 - 6, -15, 0)  #05:45:00# TimeValue(wyrazenie) – określenie czasu, np. TimeValue("4:35:17 PM")  #16:35:17#

Sprawdzanie danych IsDate(wart) - czy wartość jest poprawną datą IsEmpty(zmienna) - czy zmienna nie została zainicjowana IsEmpty(komorka) - czy komórka jest pusta IsNull(zmienna) - czy zmienna ma wartość Null (nie zawiera żadnych danych) IsNumeric(wartosc) - czy wartość jest liczbą

Konwersje typów CBool(wyrazenie)  Boolean CByte(wyrazenie)  Byte CCur(wyrazenie)  Currency CDate(wyrazenie)  Date CDbl(wyrazenie)  Double CDec(wyrazenie)  Decimal CInt(wyrazenie)  Integer CLng(wyrazenie)  Long CSng(wyrazenie)  Single CVar(wyrazenie)  Variant CStr(wyrazenie)  String

Funkcja Format Format(wyrażenie [, format [, pierwszy_dzień_tygodnia [, pierwszy_tydzień_roku]]]) format dla dat: d 1-30 dd 1-30 ww 1-51 mmmm nazwa miesiąca y yyyy vbSunday … vbSaturday vbFirstJan1 vbFirstFourDays vbFirstFullWeek

Funkcja Format Format(czas, "h:m:s")  "17:4:23" Format(czas, "hh:mm:ss AMPM")  "05:04:23 PM" Format(data, "dddd, mmm d yyyy")  "Wednesday, Jan " Format(23)  "23" Format(5459.4, "##,##0.00")  "5,459.40" "5 459,40" Format(334.9, "###0.00")  "334.90" Format(5, "0.00%")  "500.00%" Format("Tekst", "<")  "tekst" Format("Tekst", ">")  "TEKST"

Instrukcje warunkowe Pozwalają uzależnić działanie programu od zadanych warunków zapisanych w postaci wyrażeń warunkowych Wyrażenia warunkowe (boolowskie) mogą przyjmować tylko dwie wartości:  Prawda ( True )  Fałsz ( False ) Wyrażenia warunkowe tworzone są przy pomocy operatorów porównania i operatorów logicznych

Operatory Operatory porównania  = równe, <> różne,  > większe, < mniejsze,  >= większe lub równe, <= mniejsze lub równe  Is identyczność obiektów  Like zgodność ze wzorcem Operatory logiczne  AND koniunkcja  OR alternatywa

If … Then Instrukcja lub instrukcje zostaną wykonane tylko wtedy, gdy warunek jest spełniony If warunek Then instrukcja  Najczęściej używane, gdy tylko jedna instrukcja ma zostać wykonana  Można podać więcej instrukcji, ale muszą być zapisane w jednej linii i oddzielone dwukropkiem

If … Then If warunek Then [instrukcje] End If  Jedna lub więcej instrukcji do wykonania, każda instrukcja zapisana w jednej linii  Zasada działania: Obliczany jest warunek Jeśli warunek jest spełniony, wtedy wykonywane są instrukcje

If … Then

If … Then … Else Inne instrukcje zostaną wykonane, gdy warunek jest spełniony, inne, gdy nie jest spełniony If warunek Then instrukcja1 Else instrukcja2  Wykorzystywana, gdy pojedyncze instrukcje są wykonywane w obu przypadkach  Zasada działania: Obliczany jest warunek Jeśli warunek jest spełniony, to wykonywana jest instrukcja1 Jeśli warunek nie jest spełniony, to wykonywana jest instrukcja2

If … Then … Else If warunek Then [instrukcje1] Else [instrukcje2] End If  Wykorzystywana, gdy więcej niż jedna instrukcja powinna zostać wykonana

If … Then … ElseIf Rozszerzenie Else o możliwość sprawdzenia jednego lub więcej dodatkowych warunków If warunek1 Then [instrukcje1] ElseIf warunek2 Then [instrukcje2] ElseIf warunek3 Then [instrukcje3]... Else [instrukcjeN] End If

If … Then … ElseIf Nie ma ograniczenia na liczbę klauzul ElseIf Klauzula Else jest opcjonalna Zasada działania:  Obliczany jest warunek1. Jeśli jest spełniony, wykonywane są instrukcje1 i skok do End If  W przeciwnym przypadku obliczany jest warunek2. Jeśli jest spełniony, wykonywane są instrukcje2 i skok End If ...  Jeśli żaden warunek nie jest spełniony, wykonywane są instrukcjeN

If … Then … ElseIf

Select Case Wykonanie jednego z kilku bloków instrukcji w zależności od wartości podanego wyrażenia Select Case wyrażenie Case wartość1 [instrukcje1] Case wartość2 [instrukcje2]... Case Else [instrukcjeN] End Select

Select Case Część Case Else jest opcjonalna Dozwolone jest umieszczanie wielu wartości oddzielanych przecinkami, np. Case 1, 2, 3 Dozwolone jest stosowanie Is z operatorami >, =,, =, np. Case Is <= 15 Dozwolone jest sprawdzanie zakresów przy pomocy To, np. Case 1 To 10

Zadanie Wyliczyć rozwiązanie układu dwóch równań liniowych metodą wyznaczników Wersja uproszczona zakłada, że rozwiązanie zawsze istnieje a 1 * x + b 1 * y = c 1 a 2 * x + b 2 * y = c 2 W = a 1 * b 2 – a 2 * b 1 W x = c 1 * b 2 – c 2 * b 1 x = W x / W W y = a 1 * c 2 – a 2 * c 1 y = W y / W

Zadanie Algorytm: A1. [Pobranie danych] Pobierz a1, a2, b1, b2, c1 i c2 A2. [Wyliczenie W] W ← a1* b2 – a2 * b1 A3. [Wyliczenie Wx] Wx ← c1* b2 – c2* b1 A4. [Wyliczenie Wy] Wy ← a1* c2 – a2* c1 A5. [Wyznaczenie x] Wypisz Wx / W A6. [Wyznaczenie y] Wypisz Wy / W Dobór pewnych danych (gdy W = 0) spowoduje błąd

Wykład 4 Zadanie 1: Napisz funkcję LiczbaDniMiesiaca zwracającą liczbę dni miesiąca o numerze podanym jako parametr Zadanie 2: Napisz funkcję DataPlus51Dni zwracającą datę o 51 dni późniejszą niż ta podana jako parametr Zadanie 3: Napisz funkcję DataPlusMiesiącITydzien zwracającą datę późniejszą o miesiąc i tydzień niż ta podana jako parametr

Wykład 4 Zadanie 4: Napisz funkcję Login zwracającą login z adresu Zadanie 5: Napisz funkcję Serwer zwracającą adres serwera z adresu Zadanie 6: Napisz funkcję Strona dodającą (tylko jeśli potrzeba) tekst „ przed adresem

Pętle Struktury programowe pozwalające wykonywać instrukcję lub blok instrukcji wielokrotnie. Warunek sterujący pętlą określa, kiedy wykonywanie instrukcji zostanie zakończone lub jak długo instrukcja ma być wykonywana. W przypadku złego zdefiniowania warunku sterującego, działanie programu może się nigdy nie zakończyć - instrukcje objęte pętlą będą wykonywane w nieskończoność. Nieskończone pętle można przerwać klawiszami Ctrl+Break

Do Do If warunek Then Exit Do [instrukcje] Loop Zakończenie wykonywania pętli nastąpi, gdy w chwili sprawdzania warunku jego wartość będzie True

Do

Wykład 4 Zadanie 7: Napisz funkcję MojaSilnia zwracającą silnię z liczby podanej jako parametr Zadanie 8: Napisz funkcję CiagArytmetyczny zwracającą sumę ciągu arytmetycznego od wartości pierwsza do wartości ostatnia (podanych jako parametry funkcji)

Do Until Do Until warunek [instrukcje] Loop Instrukcje będą wykonywane, aż do chwili, gdy warunek osiągnie wartość True Jeśli na początku pętli warunek będzie miał wartość True, instrukcje nie zostaną wykonane Warunek jest sprawdzany przed każdym wykonaniem instrukcji

Do Until

Do While Do While warunek [instrukcje] Loop Instrukcje będą wykonywane tak długo, jak długo warunek będzie miał wartość True (czyli aż do chwili, gdy warunek osiągnie wartość False ) Jeśli na początku pętli warunek będzie miał wartość False, instrukcje nie zostaną wykonane Warunek jest sprawdzany przed każdym wykonaniem instrukcji

Do While

Do Until ze sprawdzaniem warunku na końcu Do [instrukcje] Loop Until warunek Instrukcje będą wykonywane, aż do chwili, gdy warunek osiągnie wartość True Warunek jest sprawdzany po każdym wykonaniu instrukcji Bez względu na początkową wartość warunku instrukcje zostaną wykonane co najmniej raz

Do Until ze sprawdzaniem warunku na końcu

Do While ze sprawdzaniem warunku na końcu Do [instrukcje] Loop While warunek Instrukcje będą wykonywane tak długo, jak długo warunek będzie miał wartość True (czyli aż do chwili, gdy warunek osiągnie wartość False ) Warunek jest sprawdzany po każdym wykonaniu instrukcji Bez względu na początkową wartość warunku instrukcje zostaną wykonane co najmniej raz

Do While ze sprawdzaniem warunku na końcu

While While warunek [instrukcje] Wend Instrukcje będą wykonywane tak długo, jak długo warunek będzie miał wartość True (czyli aż do chwili, gdy warunek osiągnie wartość False ) Jeśli na początku pętli warunek będzie miał wartość False, instrukcje nie zostaną wykonane Warunek jest sprawdzany przed każdym wykonaniem instrukcji

While

Wykład 5 Zadanie 1: Napisz procedurę PierwszyWyraz wpisującą pierwszy wyraz tekstu z aktywnej komórki do komórki sąsiadującej z prawej strony Zadanie 2: Napisz procedurę LiczbaSpacji wypisującej w okienku MsgBox liczbę spacji w tekście wpisanym do aktywnej komórki Zadanie 3: Napisz procedurę WyrazyAktywnejKomorki wpisującej kolejne wyrazy do komórek na prawo od aktywnej

Wykład 5 Zadanie 4: Napisz procedurę OproczPodciagu pobierającą za pomocą okienka InputBox tekst od użytkownika i wpisującą do komórki sąsiadującej z prawej strony tekst z aktywnej komórki z wyciętym tekstem od użytkownika Zadanie 5: Zamień powyższą procedurę na funkcję – tekst do usunięcia ma być podawany jako parametr tej funkcji

Wykład 5 Zadanie 6: Napisz funkcję OstatniRoboczyDzienMiesiaca( Miesiac, Rok ) pobierającą jako parametry miesiąc i rok, a zwracającą datę reprezentującą ostatni dzień tego miesiąca Zadanie 7: Przekształć poprzednią funkcję tak, aby pobieranym parametrem była dowolna data, a zwracaną wartością – data reprezentująca ostatni dzień miesiąca zawierającego przekazaną datę

For For licznik = start To stop Step krok [instrukcje] Next licznik Na początku pętli zmiennej licznik nadawana jest wartość start Przed każdym wykonaniem instrukcji sprawdzane jest, czy wartość zmiennej licznik przekracza wartość stop, jeśli nie - instrukcje zostaną wykonane, jeśli tak - pętla zostaje przerwana Po każdym wykonaniu instrukcji wartość zmiennej licznik zwiększana jest o wartość krok

For For licznik = start To stop Step krok [instrukcje] Next licznik Fraza Step krok jest opcjonalna, domyślną wartością kroku jest 1 Krok może być ujemny Podawanie nazwy zmiennej we frazie Next jest opcjonalne W dowolnym miejscu wewnątrz pętli można ją przerwać przy pomocy instrukcji Exit For

For

For Each For Each element In kolekcja [instrukcje] Next element Instrukcje zostaną wykonane dla każdego elementu należącego do kolekcji Podawanie nazwy zmiennej we frazie Next jest opcjonalne W dowolnym miejscu wewnątrz pętli można ją przerwać przy pomocy instrukcji Exit For

For Each

Zagnieżdżanie pętli Umieszczanie jednej pętli w obrębie drugiej Wewnętrzna pętla zostanie wykonana w całości (czyli instrukcje w niej zawarte zostaną wykonane wielokrotnie) w każdym cyklu pętli zewnętrznej Można dowolnie zagnieżdżać pętle, bez względu na ich rodzaj

Tablica Zmienna będąca tablicą reprezentuje zbiór wartości mających ten sam typ danych. Możliwe jest tworzenie tablic mających do 60 wymiarów Elementy tablicy są zmiennymi tych samych typów Dostęp do elementów tablicy jest możliwy poprzez ich indeksy, czyli liczby określające położenie w każdym wymiarze Każdemu zestawowi możliwych indeksów odpowiada dokładnie jeden element tablicy Najmniejszą i największą dozwoloną wartość każdego indeksu podaje się w deklaracji tablicy

Deklarowanie tablic Deklaracja tablicy rezerwuje w pamięci miejsce na przechowywanie wartości znajdujących się w tablicy. Dim nazwaTablicy([najmniejszyIndeks1 To] najwiekszyIndeks1, [...]) As typ Jeśli tablica została zadeklarowana bez wskazania najmniejszego dozwolonego indeksu, to będzie on równy ustawieniu Option Base Opcja Option Base może przyjmować wartości 0 (domyślnie) i 1

Deklarowanie tablic Przykłady: Dim Nazwiska(20) As String Dim Imiona$(10) Dim DatyWazne(5) As Date Dim WartosciFunkcji(1000) As Double Dim Macierz(1 To 10, 1 To 20) As Integer

Użycie tablic Dostęp do składowych tablicy jest możliwy poprzez podanie wszystkich indeksów oddzielonych przecinkami, zawartych w nawiasach Podawane indeksy muszą mieścić się w ograniczeniach podanych w deklaracji

Użycie tablic Przykłady: Nazwiska(1) = "Abacki" s = s & Imiona(5) DatyWazne(5) = Now() WartosciFunkcji(i) = _ WartosciFunkcji(i-1) + WartosciFunkcji(i-2) Macierz(3,3) = 1

Użycie tablic

Tablice dynamiczne Tablice, których rozmiar może ulegać zmianie podczas pracy programu Schemat użycia: 1. Zadeklarować bez podania dozwolonych indeksów: Dim tab() As Integer 2. Wyznaczyć początkowy rozmiar tablicy: ReDim tab(3,3) 3. Zmienić rozmiar tablicy z wyczyszczeniem: ReDim tab(2,5) 4. Zmienić rozmiar tablicy z zachowaniem aktualnych wartości: ReDim Preserve tab(5,3)

Funkcje obsługi tablic Array - utworzenie zmiennej typu Variant będącej jednowymiarową tablicą, np. Dim tab As Variant tab = Array("pierwszy", "drugi", "trzeci") IsArray - sprawdzenie, czy dana zmienna jest tablicą, np. IsArray(tab)

Funkcje obsługi tablic Erase - wyczyszczenie tablicy, w przypadku tablicy dynamicznej zwalniana jest przydzielona jej pamięć, np. Erase(tab) LBound - podaje najmniejszy indeks tablicy, np. LBound(tab) UBound - podaje największy indeks tablicy, np. UBound(macierz,2)

Tablica parametrów funkcji Sposób na przekazywanie do procedury lub funkcji zmiennej liczby parametrów Parametr typu ParamArray, np. Function suma(ParamArray liczby() _ As Variant) As Double Function suma(ParamArray liczby()) As Double Parametr musi być dynamiczną tablicą elementów typu Variant

Tablica parametrów funkcji