PROGRAMOWANIE OBIEKTOWE: VISUAL BASIC VISUAL BASIC FOR APPLICATION (VBA) NA PRZYKŁADZIE EXCELA



Podobne dokumenty
Właściwości i metody obiektu Comment Właściwości

Algorytmika i Programowanie VBA 1 - podstawy

Podstawy programowania w języku Visual Basic dla Aplikacji (VBA)

VBA-podstawy cz. 1. Począwszy od wersji Office 2010 skoroszyty Excel wsparte makrami VB mają rozszerzenie.xlsm

LibreOffice Calc VBA

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Podstawy VBA cz. 2. Programowanie komputerowe

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Podstawy VBA cz. 3. Programowanie komputerowe

Aplikacje w środowisku VBA. Visual Basic for Aplications

Kiedy i czy konieczne?

Visual Basic w programie Excel

Plik->Opcje->Zakladka Główne->Dostosuj Wstążkę Zaznaczamy kwadracik Developer na liscie po prawej stronie. Klikamy OK.

Program szkoleniowy. 24 h dydaktycznych (18 h zegarowych) NAZWA SZCZEGÓŁY CZAS

Pracownia Informatyczna Instytut Technologii Mechanicznej Wydział Inżynierii Mechanicznej i Mechatroniki. Podstawy Informatyki i algorytmizacji

Przedmiot: Informatyka w inżynierii produkcji Forma: Laboratorium Temat: Zadanie 5. MessageBox, InputBox, instrukcja Select Case i instrukcje pętli.

Visual Basic for Applications. Wstęp

VBA 1 VBA TYPY PROCEDUR (PODPROGRAM, FUNKCJA) ZMIENNE, DEKLARACJA ZMIENNYCH FUNKCJA MsgBox

VISUAL BASIC W EXCELU

Visual Basic w programie Excel dla Windows

Visual Basic for Application (VBA)

PROGRAMOWANIE MAKR W PROGRAMIE EXCEL W JĘZYKU VISUAL BASIC

MsgBox(Komunikat [, Przyciski] [, Tytuł] [, PlikHelp, HelpContext])

Technologia informacyjna programowanie Janusz Uriasz

Makropolecenia w Excelu

VBA obiekty AutoCADa 1

Visual Basic for Application (VBA)

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Podstawy VBA cz. 1. Programowanie komputerowe

Do obiektów nie odwołujemy się bezpośrednio, tylko przez ich atrybuty i metody. Obiekt.identyfikator[.identyfikator]

Wprowadzenie do programowania w VBA

Zastanawiałeś się może, dlaczego Twój współpracownik,

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Zakres tematyczny dotyczący podstaw programowania Microsoft Office Excel za pomocą VBA

VBA praca z makrami w Excelu

Program szkolenia VBA (VISUAL BASIC FOR APPLICATIONS) W EXCELU PODSTAWOWY.

Makra VBA w Excelu dla początkujących

JAVASCRIPT PODSTAWY. opracowanie: by Arkadiusz Gawełek, Łódź

PROGRAMOWANIE MAKR W PROGRAMIE EXCEL W JĘZYKU VISUAL BASIC

Program szkolenia VBA (VISUAL BASIC FOR APPLICATIONS) W EXCELU PRZEKROJOWY.

Makropolecenia w PowerPoint Spis treści

Ćwiczenie 1 Obsługa makr

Autor: dr inż. Katarzyna Rudnik

AUTOMATYZACJA PRACY Z UŻYCIEM MAKR. Tom XII NPV WSP.KORELACJI ROZKŁ.EXP JEŻELI COS KOMÓRKA VBA DNI.ROBOCZE ILOCZYN LOG SUMA CZY.

INSTRUKCJA SKOKU GOTO

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].

Przygotowanie własnej procedury... 3 Instrukcja msgbox wyświetlanie informacji w oknie... 6 Sposoby uruchamiania makra... 8

VBA praca z makrami w Excelu

Wprowadzenie (17) Część I. Makra w Excelu - podstawy (23)

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

COMARCH IT AKADEMIA. Programista VBA w Microsoft Excel (microbootcamp)

1 Algorytmy. Algorytmy i VBA. 1. Zapoznaj się z symboliką schematów blokowych.

Visual Basic for Application (VBA)

Cw.12 JAVAScript w dokumentach HTML

JAVAScript w dokumentach HTML (1)

1 Podstawy c++ w pigułce.

JAVASCRIPT PODSTAWY. opracowanie: by Arkadiusz Gawełek, Łódź

Języki skryptowe w programie Plans

Laboratorium 6. 1 Makropolecenia wprowadzenie. 2 Formatowanie komórek. 2.1 Rejestrowanie makra. Legenda: tekst do wpisania

Maxima i Visual Basic w Excelu

Automatyzacja pracy w AutoCAD

JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.

Laboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych

Wprowadzania liczb. Aby uniknąć wprowadzania ułamka jako daty, należy poprzedzać ułamki cyfrą 0 (zero); np.: wpisać 0 1/2

LABORATORIUM 6: ARKUSZ MS EXCEL JAKO BAZA DANYCH

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

Kolumna Zeszyt Komórka Wiersz Tabela arkusza Zakładki arkuszy

Excel 2016 PL w biurze i nie tylko / Sergiusz Flanczewski. Gliwice, cop Spis treści

ARKUSZ KALKULACYJNY komórka

Programowanie w Visual Basic. Programowanie w Visual Basic 1

Programowanie. Projektowanie funkcje programu tworzenie algorytmu i struktur danych. Programowanie implementacja algorytmu kompilacja programu

Materiały do laboratorium MS ACCESS BASIC

Spis tre ci. Rozdzia 1. Co to jest VBA Rozdzia 2. Makropolecenia Rozdzia 3. Jak uruchomi edytor Visual Basic... 31

VBA praca z makrami w Excelu: piszemy kod! Ulepszamy program! 0. Parę uwag o samym edytorze

1 Podstawy c++ w pigułce.

Arkusze kalkulacyjne i VBA

Skróty klawiaturowe w programie Microsoft Excel 2013

ABC 2002/XP PL EXCEL. Autor: Edward C. Willett, Steve Cummings. Rozdział 1. Podstawy pracy z programem (9) Uruchamianie programu (9)

Visual Basic for Applications Wprowadzenie, makra

Arkusze kalkulacyjne i VBA

Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje. dr Artur Bartoszewski - Języki C i C++, sem.

Program szkolenia PODSTAWY VBA (VISUAL BASIC FOR APPLICATIONS) I FORMULARZE.

Nagrywanie Makr. Na karcie Dostosowywanie Wstążki zaznaczamy kartę Deweloper.

Programowanie w języku Python. Grażyna Koba

Programowanie obiektowe

Visual Basic dla Aplikacji

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania

Excel. Tworzenie zaawansowanych aplikacji.

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Instrukcje sterujące. Programowanie komputerowe

PRZETWARZANIE I ORGANIZOWANIE DANYCH: ARKUSZ KALKULACYJNY

Ten odcinek Akademii PC Kuriera poświęcony zostanie tworzeniu i wykorzystaniu funkcji i procedur w języku Visual Basic.NET.

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

Visual Basic dla AutoCAD

Pascal - wprowadzenie

Podstawy informatyki

Języki programowania zasady ich tworzenia

Operacje wykonywane są na operandach (argumentach operatorów). Przy operacji dodawania: argumentami operatora dodawania + są dwa operandy 2 i 5.

Automatyzowanie zadan przy uz yciu makr języka Visual Basic

Arkusze kalkulacyjne i VBA

Programowanie strukturalne i obiektowe

Transkrypt:

Opracowała: Joanna Kisielińska 1 PROGRAMOWANIE OBIEKTOWE: VISUAL BASIC LITERATURA M. Jeznach, Visual Basic w Excelu od podstaw, Translator s.c., Warszawa. A. Snarska, Ćwiczenia z makropoleceń w Excelu, Mikom, Warszawa 2000. R. Thayer, Visual Basic 6. Księga eksperta, Helion, Gliwice 1999. J. Walkenbach Programowanie Excel 2000. Visual Basic, Wydawnictwo RM, Warszawa 2000. VISUAL BASIC FOR APPLICATION (VBA) NA PRZYKŁADZIE EXCELA VBA jest językiem programowania wysokiego poziomu dołączonym do wszystkich aplikacji pakietu Microsoft Office. Pozwala tworzyć makropolecenia. Makropolecenia umożliwiają automatyzowanie czynności wykonywanych w Excelu.. Tworzenie makropolecenia: nagrywanie pisanie w edytorze

Opracowała: Joanna Kisielińska 2 MAKROPOLECENIA REJESTROWANE W EXCELU Ograniczenia: rejestrować można jedynie proste makra nie można rejestrować makr zawierających pętle, używających zmiennych, czy wyświetlających okna dialogowe polecenia zarejestrowane cechuje zwykle zdecydowana nadmiarowość (wymaga to często usuwania zbędnych poleceń) Zapisywanie skoroszytu polecenie Plik Zapisz jako Skoroszyt programu Excel z obsługą makr Nagranie (rejestracja) makropolecenia polecenie Widok Makra Zarejestruj makro wpisać nazwę makra i klawisz skrótu, opis w oknie, przycisk [OK]. wykonać ciąg czynności, które ma wykonywać makro zakończyć rejestrację - polecenie Widok Makra Zatrzymaj rejestrowanie

Opracowała: Joanna Kisielińska 3 Uruchamianie makropolecenia polecenie Widok Makra Wyświetl makra wybrać makro które chcemy uruchomić przycisk Uruchom lub kombinacja klawiszy uruchamiająca makro Usuwanie makropolecenia polecenie Widok Makra Wyświetl makra wybrać makro przycisk Usuń Miejsce przechowywania makropolecenia Opcje pola Przechowuj makro w: Ten skoroszyt Nowy skoroszyt Skoroszyt makr osobistych Odwołanie względne i bezwzględne Dodawanie do arkusza przycisku wywołującego makro Wstaw pole tekstowe wprowadź nazwę makra Menu Podręczne Przypisz makro Edycja makro Poprawki do zarejestrowanego makra mogą być nanoszone w oknie Edytora VB, gdzie dostępny jest kod makra. Konieczna jest znajomość VB, aby dokonać odpowiednich zmian.

Opracowała: Joanna Kisielińska 4 PODSTAWOWE INFORMACJE I DEFINICJE VBA wykonywanie działań w VBA odbywa się za pomocą kodu VBA wpisywane lub rejestrowane makropolecenia (kody VBA) są przechowywane w module VBA moduł VBA składa się z procedur (procedura to kod programu stanowiący pewną całość i wykonujący pewne działania) Sub Nazwa(nazwy parametrów) ciąg instrukcji i deklaracji są dwa typy procedur Sub (typowa procedura) oraz Function (funkcja) VBA operuje obiektami zawartymi w swojej rodzimej aplikacji. Np. obiektami są skoroszyty, arkusze, zakresy, wykresy... klasy obiektów tworzą strukturę hierarchiczną. Obiekty mogą pełnić funkcję kontenerów dla innych obiektów. Excel (obiekt o nazwie Application - aplikacja) Workbook (skoroszyty), CommandBar (pasek narzędziowy) Worksheet (arkusz), Chart (wykres) Range (zakres) Powiązania między obiektami określane są jako model obiektowy identyczne obiekty tworzą kolekcję Np. kolekcja Worksheets - wszystkie arkusze danego skoroszytu. Kolekcja Charts - wszystkie wykresy w danym skoroszycie. odwołanie do obiektu zawartego w innym obiekcie musi zawierać jego lokalizację w hierarchii. Między kontenerem, a jego składnikiem musi być kropka. Np. Application.Woorkbooks( Zeszyt1.xls ).Worksheets( Arkusz1 )

Opracowała: Joanna Kisielińska 5 obiekty mają właściwości. Właściwości obiektu ustawienia obiektu. Obiekt Range ma właściwości Value i Name Właściwości obiektów można określać i zmieniać. Odwołanie się do właściwości obiekt, a po kropce właściwość. Np. Worksheets( Arkusz1 ).Range( A1 ).Value W VBA występują zmienne, którym można przypisywać różne wartości. Stopa= Worksheets( Arkusz1 ).Range( A1 ).Value Obiekty mają metody. Metoda - działanie wykonane na obiekcie. Np. metodą obiektu Range jest ClearContents. Odwołanie do metody - obiekt, a po kropce metoda. Np. Range( A18 ). ClearContents w VBA występują instrukcje typowe dla każdego języka programowania takie jak instrukcja warunkowa, pętle, tablice itp. OKNO EDYTORA VISUAL BASIC wywołanie kombinacja klawiszy [ALT+F11]

Opracowała: Joanna Kisielińska 6 OKNO EDYTORA VISUAL BASIC Okno eksploratora projektów, Okno właściwości, Okno kodu

Opracowała: Joanna Kisielińska 7 OKNO CODE Okno Code przechowuje cztery rodzaje kodów VBA procedury Sub procedury Function procedury Property Deklaracje Uruchamianie procedury z okna Edytora VBA klawisz [F5] polecenie menu Run Run Sub/UserForm przycisk

Opracowała: Joanna Kisielińska 8 OBIEKTY I KOLEKCJE OBIEKT Obiekt jest elementem Excela, którym można operować ręcznie lub przy użyciu makropoleceń. aplikacja Excel skoroszyt arkusz zakres arkusza formant określonego typu arkusz wykresu wykres seria danych na wykresie MODEL OBIEKTOWY Modelem obiektowym nazywamy hierarchię obiektów Excela. Lista obiektów Excela - polecenie View Edytora VBA) Object Browser (w oknie

Opracowała: Joanna Kisielińska 9 KOLEKCJA Kolekcja - grupa obiektów należących do tej samej klasy. NP. Workbooks Workbooks.Worksheets Workbooks.Sheets Odwołanie obiektu - nazwa w nawiasach okrągłych i cudzysłowie po nazwie kolekcji. Worksheets("Arkusz1") lub Worksheets(1) ODWOŁANIA DO OBIEKTÓW Odwołanie do obiektu Excela wymaga podania kolejno obiektów nadrzędnych oddzielonych kropkami. Workbooks("Obliczenia").Worksheets("Dane") Workbooks("Obliczenia ").Worksheets("Dane").Range("A1") Pełne odwołania Application.Workbooks("Obliczenia ").Worksheets("Dane") Application. Workbooks("Obliczenia ").Worksheets("Dane"). _ Range("A1") Uwaga: Znak kontynuacji linii to podkreślenie po spacji. W odwołaniu można pomijać obiekty aktualnie aktywne. Jeśli aktywnym skoroszytem jest Obliczenia, można go pominąć: Worksheets("Dane") Worksheets("Dane").Range("A1") Jeśli aktywnym skoroszytem jest Dane: Range("A1") Uwaga: Jeśli kody VBA mają być uniwersalne muszą w dużym zakresie operować obiektami aktywnymi.

Opracowała: Joanna Kisielińska 10 WŁAŚCIWOŚCI OBIEKTU Przykłady Właściwości - cechy obiektów, które można oglądać i zmieniać. Obiekty tej samej klasy maja te same właściwości. Ustawienie właściwości - instrukcją podstawienia (=) w kodzie VBA. Odwołanie do właściwości obiektu - nazwa obiektu i po kropce nazwa właściwości. Obiekty mają swoje właściwości domyślne - nie potrzeba ich specyfikować. Sub PokażWartość() Wartość= Worksheets("Arkusz1").Range("A1").Value MsgBox Wartość Sub ZmieńWartość() Worksheets("Dane").Range("B8").Value=340 METODY OBIEKTU Metody - działania, operacje, jakie mogą być wykonywane z udziałem obiektów. Obiekty tej samej klasy maja te same metody. Wywołanie metody obiektu - nazwa obiektu i po kropce nazwy metody. Przykłady Sub WyczyśćZakres() Worksheets("Arkusz1").Range("A1:C3").Clear

Opracowała: Joanna Kisielińska 11 WŁAŚCIWOŚCI I METODY POSIADAJĄCE PARAMETRY parametry oddzielane są przecinkami parametry opcjonalne można pomijać parametry mają nazwy (mogą być pominięte w odwołaniu) nazwa_parametru := wartość lub wartość jeśli w odwołaniu używane są nazwy parametrów - kolejność ich podawania jest dowolna jeśli nazwy są pominięte - kolejność podawania parametrów jest istotna Parametry właściwości Parametry właściwości dokładniej określają ich cechy. Po nazwie właściwości w nawiasach okrągłych, oddzielone przecinkami. Parametry metody Parametry metod precyzyjniej określają sposób ich działania. Po nazwie metody, oddzielone przecinkami. Przykłady Parametry właściwości Range("A1").Address(False) Range("A1").Address(rowAbsolute:=False) Parametry metody Workbooks("zadania2.xls").Protect xyzzy, True, True Workbooks("zadania2.xls").Protect, True, True Workbooks("zadania2.xls").Protect Password:= xyzzy,structure:=true,_ Window:=True Workboosks("zadania2.xls").Protect Structure:=True, Window:=True

Opracowała: Joanna Kisielińska 12 PRACA Z OBIEKTAMI - NA PRZYKŁADZIE OBIEKTU COMMENT Comment - komentarz do komórki Z poziomu arkusza - Wstaw Komentarz Aby uzyskać pomoc na temat dowolnego obiekt należy wpisać jego nazwę w oknie Code i nacisnąć klawisz [F1] Właściwości i metody obiektu Comment Właściwości Właściwość Czy można zmieniać Opis Application nie Zwraca nazwę aplikacji, która utworzyła komentarz Author nie Zwraca nazwę osoby, która utworzyła komentarz Parent nie Zwraca obiekt rodzic (nadrzędny) komentarza jest to zakres Shape nie Zwraca obiekt Shape, określający kształt, w którym umieszczony jest komentarz Visible tak True komentarz jest widoczny, False - niewidoczny Metody Metoda Opis Delete Usuwa komentarz Next Zwraca obiekt Comment, stanowiący następny komentarz Previous Zwraca obiekt Comment, stanowiący poprzedni komentarz Text Wstawia tekst do komentarza (ma 3 parametry) Kolekcja Comments Kolekcja ta obejmuje wszystkie komentarze z danego arkusza (kolekcja ta może być pusta). Komentarze są ponumerowane od 1. MsgBox Worksheets("Arkusz1").Comments(1).Text MsgBox Activesheet.Comments.Count MsgBox Activesheet.Comments(1).Parent.Address For Each cmt In Activesheet. Comments MsgBox cmt.text Next cmt Range( B12 ). AddComment komentarz wstawiony z kodu VBA

Opracowała: Joanna Kisielińska 13 WYBRANE WŁAŚCIWOŚCI OBIEKTU APPLICATION Właściwość Zwracany obiekt ActiveCell Aktywna komórka ActiveSheet Aktywny arkusz ActiveWindow Aktywne okno ActiveWorkbook Aktywny skoroszyt RangeSelection Zaznaczone komórki na arkuszu (tylko dla obiektu Window) Selection Zaznaczony obiekt (moży byc to Range, Shape, ChartObject... ThisWorkbook Skoroszyt, który zawiera wywoływaną procedurę Odwołanie do obiektów przy pomocy wymienionych właściwości jest bardzo ogólne, ponieważ nie wymaga precyzowania obiektów, które będą używane. ActiveCell.Value = "LEKCJA VBA" ActiveCell.ClearContents MsgBox ActiveSheet.Name MsgBox ActiveWorkbook.Name Selection.Value = 12 lub ActiveWindow.RangeSelection.Value = 12

Opracowała: Joanna Kisielińska 14 DOSTĘP DO KOMÓREK ARKUSZA właściwości Range obiektu Worksheet lub obiektu Range właściwości Cells obiektu Worksheet właściwości Offset obiektu Range Właściwość Range Właściwość Range zwraca obiekt Range Jest właściwością obiektu Worksheet lub Range Dostęp do zakres komórek (może być pojedyncza komórka) Składnia: Przykłady obiekt.range(komórka) obiekt.range(komórka1, komórka2) Worksheets( Arkusz1 ).Range( A1 ).Value= abcd Worksheets( Arkusz1 ).Range( Dane ).Value=300 Worksheets( Arkusz1 ).Range( A5:B7 ).Value=123 lub Worksheets( Arkusz1 ).Range( A5, B7 ).Value=123 Worksheets( Arkusz1 ).Range( A1:B10 B5:C15 ).Value=13.5 Uwaga: spacja oznacza część wspólną Worksheets( Arkusz1 ).Range( A1,C1,E1 ).Value= X

Opracowała: Joanna Kisielińska 15 Właściwość Cells Właściwość Cells jest zawarta w obiekcie Worksheet lub Range. Dostęp do pojedynczej komórki. Składnia: obiekt.cells (IndeksWiersza, IndeksKolumny) obiekt.cells (IndeksWiersza) obiekt.cells Dwa parametry: IndeksWiersza zmienia się w zakresie od 1 do 65 536 IndeksKolumny zmienia się w zakresie od 1 do 256 Jeden parametr: IndeksWiersza zmienia się w zakresie od 1 do 16 777 216 (65 536x256), komórki numerowane są wierszami Przykłady Worksheets("Arkusz1").Cells(1, 1) = 198 Worksheets("Arkusz1").Cells(5, 2) = Cells ActiveSheet.Cells(1, 1) = 200 ActiveCell.Cells(1, 1) = 3000 ActiveCell.Cells(1 + 2, 1 + 3) = 8000 ActiveSheet.Cells(770) = "komórka" (B4 770=3*256+2) Uwaga: właściwość Cells obiektu Range. Parametr IndeksWiersza i IndeksKolumny obliczane są wówczas wewnątrz obszaru. Range( B2:E5 ).Cells(4,1) = "Napis" Range( H20:J30 ).Cells(16) = "Napis"

Opracowała: Joanna Kisielińska 16 Właściwość Offset (przesunięcie) Właściwość Offset jest zawarta w obiekcie Range. Dostęp do pojedynczej komórki i zakresu. Składnia: obiekt.offset (PrzesunięcieWiersza, PrzesunięcieKolumny) PrzesunięcieWiersza: 0 brak przesunięcia >0 przesunięcie w dół <0 - przesunięcie w górę PrzesunięcieKolumny: 0 brak przesunięcia >0 przesunięcie w prawo <0 - przesunięcie w lewo Przesunięcia odlicza się od: komórki wyspecyfikowanej dla obiektu Range komórki aktywnej dla właściwości ActiveCell ActiveCell.Offset(1, 0) = ABCD ActiveCell.Offset(0, -1) = ABCD Range("A1").Offset(5, 5) = "Napis" Range("B2").Offset(2, 2) = "Napis" Range("B2:C3").Offset(3, 3) = "Tabela"

Opracowała: Joanna Kisielińska 17 ZASADY OGÓLNE OBOWIĄZUJĄCE PRZY WPRO- WADZANIU KODU VBA Kod VBA składa się z instrukcji. Każdy język programowania zawiera określony zestaw instrukcji, które pozwalają realizować określone operacje. Zwykle jedną instrukcję umieszcza się w jednym wierszu np: Sub test() x=2 y=5 z=x+y MsgBox z Jeśli chcemy w jednym wierszu umieścić więcej niż jedną instrukcję, należy oddzielić je dwukropkami: Sub test() x=2 : y=5 : z=x+y MsgBox z Jeśli instrukcja jest długa, można podzielić ją na wiersze kombinacją znaków _. Workbook("zadania2.xls").Protekt Password:= xyzzy, _ Structure:=True, Window:=True Komentarze Komentarz - tekst objaśniający, nie ma żadnego wpływu na wykonanie kodu. Wszystko, co występuje po znaku apostrofa do końca linii jest komentarzem. Sub test() procedura dodaje dwie liczby x=2 y=5 z=x+y sumowanie liczb MsgBox z

Opracowała: Joanna Kisielińska 18 Działania podjęte po wprowadzeniu linii kodu VBA w oknie Edytora: w celu zwiększenia czytelności obok operatorów wstawiane są spacje z=x+y z = x + y (z = x + y) powiększanie lub zmniejszanie litery w słowach kluczowych tak, aby zgadzały się z przyjętym zapisem Dana=activesheet.range("a1").value=12 Dana = ActiveSheet.Range("a1").Value = 12 Dana=ACTIVESHEET.range("a1").value=12 Dana = ActiveSheet.Range("a1").Value = 12 wielkość znaków nie ma żadnego znaczenia w nazwach! AXY axy, Axy, axy itd. VBA modyfikuje nazwę do postaci, w jakiej ostatnio została zapisana (zmienia wcześniejsze zapisy): AXY=15: axy=18:axy=20:axy=45 axy = 15: axy = 18: axy = 20: axy = 45 wyjątek! - zmienne zadeklarowane (słowem kluczowym Dim): Dim AXY AXY=15: axy=18:axy=20:axy=45 AXY = 15: AXY = 18: AXY = 20: AXY = 45 VBA po wprowadzeniu wiersza kodu sprawdza jego poprawność syntaktyczną (składniową) Wyświetlanie komunikatu o błędzie kompilacji - musi być aktywna opcja Auto Syntax Check (okna Options Edytora VBA). Tools Options

Opracowała: Joanna Kisielińska 19 ZMIENNE W VBA I ICH TYPY Zmienna jest miejscem w pamięci operacyjnej, przeznaczonym do przechowywania danych, które przyjmować mogą podczas wykonywania kodu VBA różne wartości. Zmienne mają nazwy. Zmienne zajmują określony obszar w pamięci operacyjnej, którego wielkość zależy od tego, jaki jest typ zmiennej. Nazwy zmiennych w VBA nazwa zmiennej jest ciągiem znaków (liter i cyfr), który musi zaczynać się od litery duże i małe litery traktowane są jednakowo w nazwie nie można używać spacji ( _) w nazwie nie można używać znaków #, $, %, &,! i kropki maksymalna długość nazwy to 254 znaki nazwa zmiennej nie może być słowem kluczowym Np. Poprawne nazwy - as34, Nowe_słowo, TablicaZDanymi Nie poprawne nazwy - CV&13, 123AD, Adresy pracowników Typy zmiennych w VBA Typ danych Rozmiar Przedział zmienności Byte - Bajt 1 bajt 0 do 255 Boolean - Logiczny 2 bajty True lub False Integer - Całkowity 2 bajty -32768 do 32767 Long - Całkowity długi 4 bajty -2147483648 do 2147483647 Single - Rzeczywisty 4 bajty -3,40E38 do -1,40E-45 1,40E-45 do 3,40E38 8 bajtów -1,79E308 do -14,94E-324 14,94E-324 do 1,79E308 Double - Rzeczywisty podwójnej precyzji Currency - Walutowy 8 bajtów -92,2E11 do 92,2E11 Date - Data 8 bajtów od 1 I 100r. do 31 XII 9999r. Object - obiektowy 4 bajty odwołanie do dowolnego obiektu String - Łańcuchowy 10 bajtów + długość do 2 mld. znaków (zmiennej długości) łańcucha String - Łańcuchowy długość łańcucha do 65535 znaków (stałej długości) Variant (z liczbami) 16 bajtów zmienna uniwersalna jak Double Variant (ze znakami) 22 bajty + długość zmienna uniwersalna łańcucha User defined Definiowany przez użytkownika zależy od definicji rozmiar zmienny

Opracowała: Joanna Kisielińska 20 Deklaracje zmiennych Dim zmienna1 As typ1, zmienna2 As typ2, zmienna3 As typ3... Np. Dim a As Integer, DS As Double Dim TekstLekcji As String * 50, TekstZadania As String Uwaga: Nie można używać listy zmiennych: Dim a, f, j1 As Integer x, DS As Double ŹLE Variant - typ domyślny Zmienna nie musi być zadeklarowana (nadawany jest jej typ Variant). Wymuszanie deklarowania zmiennych Na początku modułu należy wpisać instrukcję: Option Explicit Użycie zmiennej bez deklaracji powoduje wówczas komunikat: Zasięg zmiennych zmienna lokalna zmienna o zasięgu cały moduł zmienne publiczne

Opracowała: Joanna Kisielińska 21 Typy stałych: STAŁE W VBA I ICH TYPY literalne symboliczne Definicja stałej Tylko stałe symboliczne za pomocą słowa kluczowego Const. Stałej można przypisać określony typ, jeśli nie to nadawany jest jej typ domyślny Variant. Składnia: Const stała1[ As typ1] = literał1, stała2[ As typ2] = literał2... Np. Const a1 =.876, b= abcd, i12=18. Const ad As Integer=123, t1 As String = zadanie do wykonania Zasięg stałych tak jak zasięg zmiennych Public Const Pi = 3.14 Zdefiniowanej stałej nie można ponownie przypisać nowej wartości! Uwaga: W VBA występują stałe predefiniowane, które można używać bez definiowania (ich definicje zostały umieszczone przez twórców oprogramowania). Listę stałych i ich wartości znaleźć można w plikach pomocy. WYRAŻENIA Wyrażenie jest ciągiem argumentów (operandów) i operatorów, którego zadaniem jest wyznaczanie nowej wartości. Operatory to symbole wykonywanych operacji, operandy to wielkości, na których operacje są wykonywane.

Opracowała: Joanna Kisielińska 22 Operatory Operatory arytmetyczne + dodawanie - odejmowanie * mnożenie ^ potęgowanie / dzielenie \ dzielenie (część całkowita wyniku) Mod dzielenie modulo (reszta z Sqr pierwiastek kwadratowy dzielenia) Operatory porównań = równy <> różny > większy < mniejszy >= większy lub równy <= mniejszy lub równy Like wykorzystywany do porównywania tekstów Operatory logiczne And koniunkcja (iloczyn logiczny) Or altrnatywa (suma logiczna) Imp implikacja Eqv równoważność Not negacja Xor nierównoważność Inne & konkatenacja : operator zakresu ; operator łączący wiele odwołań w jedno SUMA(A1:B3;D4:E6) = operator przypisania zmienna = wyrażenie spacja operator przecięcia - tworzy odwołanie do komórek wspólnych dla dwóch odwołań (B7:D7 C6:C8) C7 Kolejność wykonywania działań o kolejności wykonywania działań decydują priorytety jeśli obok siebie występują operatory o tym samym priorytecie, wykonane zostaną kolejno od lewej kolejność wykonywania działań zmieniają nawiasy Priorytety działań: : (dwukropek) (pojedyncza spacja) ; (średnik) - Not (minus -3) ^ * i / + i & = < > <= >= <> And Or Imp Eqv Xor

Opracowała: Joanna Kisielińska 23 Przykłady A/B*C A/(B*C) 23 \ 5 = 4 23 Mod 5 = 3 A>2 And B<=10 12+23*4^7+34/19 z 1.3^4 1 7.3 23 3 45 43 12 *7 3.5^2 y 1 12 1 3 17*34 7 12^3 7 12 13*3^3 (34+12)^3/23*4+25 Operator & Sub asd() Dim A As String, b As String, k As String A = "Baza" b = "danych" k = A & " " & b & " o firmie" Baza danych o firmie MsgBox k Jeśli łańcuchy są stałej długości, to co się nie mieści jest ucinane. Dim A As String, b As String, k As String*7 A = "Baza" b = "danych" k = A & " " & b & " o firmie" Baza da MsgBox k Operator Like Porównywanie łańcuchów. "tekst1" Like "tekst2" Tekstem wzorcowym jest "tekst2" "styczeń" Like "luty" "luty" Like "luty" False True W tekście wzorcowym można używać znaków globalnych * i? "luty" Like "lu*" True "lu*" Like "luty" False "avb" Like "a?b" True "AVB" Like "a?b" False

Opracowała: Joanna Kisielińska 24 KOMUNIKACJA Z UŻYTKOWNIKIEM Operacja wejścia/wyjścia (we/wy) - wymiana informacji między użytkownikiem i programem. operacja wyjścia operacja wejścia W VBA: operacje wyjścia - funkcja MsgBox operacje wejścia - InputBox Funkcja MsgBox wyświetlanie informacji w postaci komunikatów wyświetlanie wartości wybranych zmiennych Składnia funkcji zmienna=msgbox(prompt[,buttons] [,title][,helpfile,context]) prompt (komunikat, wymagany) tekst wyświetlany w oknie komunikatu buttons (przyciski, opcjonalny) wyrażenie, którego wartość określa przyciski i ikony wyświetlane w oknie informacyjnym title (tytuł, opcjonalny) helpfile context ewentualny tytuł okna informacyjnego (plik pomocy i temat pomocy, opcjonalne) jeśli chcemy, aby w oknie znalazł się przycisk Pomoc Wartości predefiniowanych stałych do określania wartości parametru buttons (buttons=st1+st2+st3) Stała Wartość Przyciski Liczba i rodzaje przycisków (st1) vbokonly 0 OK vbokcancel 1 OK, Anuluj vbabortretryignore 2 Przerwij, Ponów próbę, Zignoruj vbyesnocancel 3 Tak, Nie, Anuluj vbyesno 4 Tak, Nie vbretrycancel 5 Ponów próbę, Anuluj Wygląd ikony (st2) vbcritical 16 Komunikat błędu vbquestion 32 Pytanie vbexclaimation 48 Ostrzeżenie vbinformation 64 Informacja Przycisk domyślny (st3) vbdefaultbutton1 0 przycisk 1 vbdefaultbutton2 256 przycisk 2 vbdefaultbutton3 512 przycisk 3

Opracowała: Joanna Kisielińska 25 Przykłady i = MsgBox("to jest komunikat", 1 + 16, "tytuł okna") i = MsgBox("to jest komunikat", vbokcancel + vbcritical, "tytuł okna") i = MsgBox("to jest komunikat", 2 + 32 + 512, "tytuł okna") i = MsgBox("to jest komunikat", vbabortretryignore + vbquestion + _ vbdefaultbutton3, "tytuł okna") Zmiana linii w komunikacie - wewnątrz tekstu stała vbcrlf kom = "Wartość" & vbcrlf & "zmiennej" & vbcrlf & "jest niewłaściwa" i = MsgBox(kom) Wartości zwracane przez funkcję MsgBox W zależności od tego, jaki przycisk naciśnie użytkownik, funkcja zwraca wartości odpowiednio: 1 OK 2 Anuluj 3 Przerwij 4 Ponów próbę 5 Zignoruj 6 Tak 7 Nie odp = MsgBox("wybór", 4) MsgBox odp Jeśli wybrane zostanie Tak, w kolejnym oknie pojawi się 6, jeśli Nie wyświetlona zostanie liczba 7.

Opracowała: Joanna Kisielińska 26 MsgBox jako polecenie Jeśli używamy tylko pierwszego parametru można MsgBox wywołać jako polecenie. kom = "Wartość" & vbcrlf & "zmiennej" & vbcrlf & "jest niewłaściwa" MsgBox kom Wyświetlanie wartości zmiennej Wyświetlenie samej wartości zmiennej: MsgBox nazwa zmiennej lub k=msgbox(nazwa zmiennej) Wyświetlenie komunikatu i wartości zmiennej: MsgBox "komunikat" & nazwa zmiennej lub k=msgbox("komunikat" & nazwa zmiennej) Przykłady i=7 MsgBox "i=" & i t= abcd MsgBox "t=" & t Funkcja InputBox Funkcja pozwalająca na pobranie danych od użytkownika w specjalnym oknie dialogowym. Uwaga: W jednym oknie można pobrać jedynie jedną wartość, która zwracana jest przez funkcję InputBox w postaci łańcucha. Składnia funkcji zmienna (typu String lub Variant) =InputBox(prompt[,title] [,default] [,xpos] [,ypos] [,helpfile,context]) prompt (zapytanie, wymagany) tekst wyświetlany w oknie dialogowym title (tytuł, opcjonalny) ewentualny tytuł okna dialogowego default (wartość_domyślna, opcjonalny) wartość domyślna wyświetlana w oknie dialogowym xpos (pozycjax, pozycja y, opcjonalne) ypos helpfile context współrzędne ekranowe lewego górnego rogu okna (plik pomocy i temat pomocy, opcjonalne) jeśli chcemy, aby w oknie znalazł się przycisk Pomoc

Opracowała: Joanna Kisielińska 27 Sub wczytywanie() Dim s As String s = InputBox("wpisz tekst") Funkcja InputBox zwraca tekst. Sub wczytywania() Dim x As Integer x = InputBox("wpisz liczbę") Wpisanie tekstu powoduje błąd wykonania (Run-time error nr błędu ), wynikający z niezgodności typów. Przykłady Dim x As Integer x = InputBox("wpisz liczbę") x = x + 1 MsgBox x wprowadzono - 1,234 wyświetlone - 2 Dim x As Single x = InputBox("wpisz liczbę") x = x + 1 MsgBox x wprowadzono - 1,234 wyświetlone 2,234 Zmienna X ma typ Variant x = InputBox("wpisz liczbę") x = x + 1 MsgBox x wprowadzono - 1,234 wyświetlone 2,234

Opracowała: Joanna Kisielińska 28 Podstawowe funkcje konwersji Nazwa Działanie CInt(s) Zamienia łańcuch na liczbę Integer CLng(s) Zamienia łańcuch na liczbę Long CSng(s) Zamienia łańcuch na liczbę Single CDbl(s) Zamienia łańcuch na liczbę Double CCur(s) Zamienia łańcuch na liczbę Currency CDate(s) Zamienia łańcuch na datę Metoda InputBox Metoda InputBox, działa podobnie jak funkcja InputBox, ale pozwala określić pożądany typ zwracanej wartości. Składnia funkcji obiekt.inputbox(prompt[,title] [,default] [,xpos] [,ypos] [,helpfile,context][,type]) prompt (zapytanie, wymagany) tekst wyświetlany w oknie dialogowym title (tytuł, opcjonalny) ewentualny tytuł okna dialogowego default (wartość_domyślna, opcjonalny) wartość domyślna wyświetlana w oknie dialogowym xpos (pozycjax, pozycja y, opcjonalne) ypos współrzędne ekranowe lewego górnego rogu okna helpfile (plik pomocy i temat pomocy, opcjonalne) context type jeśli chcemy, aby w oknie znalazł się przycisk Pomoc (type, opcjonalny) parametr ten określa, jakiego typu wartość zwróci metoda Wartości parametru type i ich znaczenie Wartość Znaczenie 0 formuła 1 liczba 2 łańcuch 4 wartość logiczna 8 adres komórki w postaci obiektu typu Range 16 wartość błędu 64 tablica wartości

Opracowała: Joanna Kisielińska 29 Przykład Formuła Sub formuła() s = Application.InputBox("wpisz formułę","wejście", "***",,,,, 0) MsgBox TypeName(s) MsgBox "Napiałeś " & s INSTRUKCJA WARUNKOWA IF Składnia instrukcji If If warunek Then instrukcje_prawda Else instrukcje_fałsz If warunek Then instrukcje_prawda warunek instrukcje_prawda instrukcje_fałsz Jeżeli instrukcja jest zbyt długa, można rozbić ja na kilka wierszy stosując znaki kontynuacji _, lub użyć instrukcji If w postaci rozbitej na kilka wierszy: If warunek Then instrukcje_prawda Else instrukcje_fałsz End If Przykład Obliczanie wartości bezwzględnej: Sub moduł() x = InputBox("Podaj liczbę") x = Val(x) If x < 0 Then x = -x MsgBox "Wartość bezwględna liczby jest równa" & Str(x)

Opracowała: Joanna Kisielińska 30 Porównanie liczb: Sub moduł() x = InputBox("Podaj liczbę a") a = Val(x) y = InputBox("Podaj liczbę b") b = Val(y) If a > b Then MsgBox pierwsza liczba jest większa" Else MsgBox druga liczba jest większa, lub liczby są równe" EndIf Instrukcja warunkowa, często jest przedstawiana w postaci schematu blokowego.

Opracowała: Joanna Kisielińska 31 Zagnieżdżona instrukcja If Instrukcja If może być zagnieżdżona w instrukcji If. Taki przypadek zachodzi, jeśli instrukcje_prawda lub/i instrukcje_fałsz są instrukcjami warunkowymi If. Przykład Sub powitanie() If Time < 0.5 Then MsgBox "Miłego dnia" ElseIf Time < 0.75 Then MsgBox "Miłego popołudnia" Else MsgBox "Miłego wieczoru" End If Użycie daty: Sub datr() Dim z As Date z = InputBox("podaj datę") If z < #1/1/2000# Then MsgBox "data z poprzedniego tysiąclecia" Else: MsgBox "data z nowego tysiąclecia" End If

Opracowała: Joanna Kisielińska 32 INSTRUKCJA WYBORU CASE Składnia instrukcji Case Select Case wyrażenie_sterujące [Case listawyrażeń_1 [instrukcje_1]] [Case listawyrażeń_2 [instrukcje_2]]... [Case else [instrukcje_e]] End Select gdzie: wyrażenie _sterujące wartość tego wyrażenia decyduje o tym, które instrukcje zostaną wykonane listawyrażeń_n lista wartości dla danego przypadku, jeśli wyrażenie_sterujące jest równe jednej z tych wartości, wykonane zostaną instrukcje_n może mieć postać: wyrażenie 10+15; 19 itp wyrażenie To wyrażenie 2 To 5 ( 2, 3, 4, 5) Is operator_porównanie wyrażenie - <>18; =12; >=10 instrukcje_e instrukcje, które zostaną wykonane, jeżeli wyrażenie _sterujące nie było równe żadnej wartości spośród listawyrażeń_n Uwaga: Wybór przypadku powinien być jednoznaczny Inny zapis: Case listawyrażeń_1: instrukcja_a instrukcje_b Przykłady Sub od() Dim x As Integer x = InputBox("Podaj liczbę") Select Case x Case Is < 0: MsgBox "Ujemna" Case 0 To 10: MsgBox "0-10" Case 11, 12: MsgBox "11,12" Case Else: MsgBox "większa od 12" End Select

Opracowała: Joanna Kisielińska 33 Sub powitanie() Select Case Time Case Is < 0.5 MsgBox "Miłego dnia" Case 0.5 To 0.75 MsgBox "Miłego popołudnia" Case Else MsgBox "Miłego wieczoru" End Select Sub powitanie() Select Case Time Case Is < 0.5: MsgBox "Miłego dnia" Case 0.5 To 0.75: MsgBox "Miłego popołudnia" Case Else: MsgBox "Miłego wieczoru" End Select Sub znaki() z = InputBox("podaj znak") Select Case z Case "a" To "z": MsgBox "Podano małą literę" Case "A" To "Z": MsgBox "Podano dużą literę" Case "0" To "9": MsgBox "Podano cyfrę" Case Else: MsgBox "Znak nie jest literą, ani cyfrą" End Select Zamiana liczby punktów zapis słowny oceny Sub ocena() Dim z As Integer z = InputBox("podaj liczbę punktów") Select Case z Case 0 To 50: MsgBox "niedostateczny" Case 51 To 60: MsgBox "dostateczny" Case 61 To 70: MsgBox "dostateczny plus" Case 71 To 80: MsgBox "dobry" Case 81 To 90: MsgBox "dobry plus" Case 91 To 100: MsgBox "bardzo dobry" Case Else: MsgBox "Liczba punktów musi być z przedziału 0-100" End Select Rozwiązanie przy pomocy instrukcji If Sub ocena() Dim z As Integer z = InputBox("podaj liczbę punktów") If z < 0 Then MsgBox "Liczba punktów musi być z przedziału 0-100" ElseIf z < 51 Then MsgBox "niedostateczny" ElseIf z < 61 Then MsgBox "dostateczny" ElseIf z < 71 Then MsgBox "dostateczny plus" ElseIf z < 81 Then MsgBox "dobry" ElseIf z < 91 Then MsgBox "dobry plus" ElseIf z <= 100 Then MsgBox "bardzo dobry" Else: MsgBox "Liczba punktów musi być z przedziału 0-100" End If :