Visual Basic dla Aplikacji



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

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

Kiedy i czy konieczne?

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

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

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

Algorytmika i Programowanie VBA 1 - podstawy

Wprowadzenie do programowania w VBA

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

LibreOffice Calc VBA

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

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

Automatyzacja pracy w AutoCAD

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Technologia informacyjna programowanie Janusz Uriasz

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

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

Visual Basic for Application (VBA)

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

INSTRUKCJA SKOKU GOTO

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

Visual Basic for Application (VBA)

Instrukcje cykliczne (pętle) WHILE...END WHILE

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

VBA obiekty AutoCADa 1

Visual Basic for Applications. Wstęp

Instrukcje pętli przykłady. Odgadywanie hasła. 1) Program pyta o hasło i podaje adres, gdy hasło poprawne lub komunikat o błędnym haśle.

Podstawy Programowania C++

Visual Basic for Application (VBA)

VISUAL BASIC. deklaracja nazwa As typ_zmiennej. deklaracja Dim, Private zasięg lokalny. - Public zasięg globalny Liczby całkowite: BYTE [0..

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Pętle. Programowanie komputerowe

LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab

Materiały do laboratorium MS ACCESS BASIC

Języki skryptowe w programie Plans

Cw.12 JAVAScript w dokumentach HTML

Podstawy Programowania Podstawowa składnia języka C++

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

Podstawy programowania skrót z wykładów:

Podstawy programowania. 1. Operacje arytmetyczne Operacja arytmetyczna jest opisywana za pomocą znaku operacji i jednego lub dwóch wyrażeń.

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

Komentarze w PHP (niewykonywane fragmenty tekstowe, będące informacją dla programisty)

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

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

Tablice. Jones Stygar na tropie zmiennych

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

INSTRUKCJA PUSTA. Nie składa się z żadnych znaków i symboli, niczego nie robi. for i := 1 to 10 do {tu nic nie ma};

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Procedury i funkcje. Programowanie komputerowe

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

Bloki anonimowe w PL/SQL

1 Podstawy c++ w pigułce.

Programowanie obiektowe

PROGRAMOWANIE MAKR W PROGRAMIE EXCEL W JĘZYKU VISUAL BASIC

Visual Basic dla AutoCAD

1 Podstawy c++ w pigułce.

Języki i metodyka programowania. Typy, operatory, wyrażenia. Wejście i wyjście.

Pascal - wprowadzenie

Pętle instrukcje powtórzeo

PROGRAMOWANIE MAKR W PROGRAMIE EXCEL W JĘZYKU VISUAL BASIC

Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6

Struktura pliku projektu Console Application

Wykład 2 Składnia języka C# (cz. 1)

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

PL/SQL. Część 1 Bloki PL/SQL. Piotr Medoń

JAVAScript w dokumentach HTML (1)

Autor: dr inż. Katarzyna Rudnik

Lekcja 1. Składnia języka zmienne i podstawowe instrukcje PHP. Do wyświetlania tekstu służy instrukcja echo echo Hello world ;

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

DIAGRAMY SYNTAKTYCZNE JĘZYKA TURBO PASCAL 6.0

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

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

INSTRUKCJA. SIMPLE.ERP Finanse i Księgowość Automaty Księgowe oraz VISUAL BASIC

Wstęp do programowania. Różne różności

Podstawy programowania w języku C

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

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

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

2 Przygotował: mgr inż. Maciej Lasota

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Zmienne, stałe i operatory

Elementy języków programowania

Wstęp do programowania

Programowanie - instrukcje sterujące

2. Kliknij Insert->Userform. Jeżeli Toolbox nie pojawi się automatycznie, kliknij View -> Toolbox. Otrzymany widok powinien być jak poniżej.

Laboratorium Programowania Kart Elektronicznych

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44

Maxima i Visual Basic w Excelu

TABLICA (ang. array) pojedyncza zmienna z wieloma komórkami, w których można zapamiętać wiele wartości tego samego typu danych.

Aplikacje w środowisku VBA. Visual Basic for Aplications

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

Operatory cd. Relacyjne: ==!= < > <= >= bool b; int i =10, j =20; dzielenie całkowitych wynik jest całkowity! Łączenie tekstu: + string s = "Ala ma ";

Instrukcje warunkowe i skoku. Spotkanie 2. Wyrażenia i operatory logiczne. Instrukcje warunkowe: if else, switch.

Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja, - liczby losowe

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

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

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak

1. ELEMENTY JĘZYKA PL/SQL

Transkrypt:

Wykład Visual Basic dla Aplikacji Visual Basic - Podstawy dr inż.. Zbigniew Zakrzewski v. 1.2.2 v. 1.2.2 1

Zastosowanie języka Visual Basic 1. 1. MS MS Office (95, (95, 97, 97, 2000, XP, XP, 2003, 2007) jako jako VBA: Word, Excel, PowerPoint, Access, Publisher, Windows Script Host Visio. 2. 2. MS MS Windows (Win95 i i NT) NT) jako jako VBS VBS lub lub WSH. 3. 3. MS MS Server jako jako VBS VBS lub lub ASP ASP (Active Server Pages). 4. 4. MS MS Outlook jako jako VBS VBS oraz oraz VBA. 5. 5. MS MS Internet Explorer jako jako VBS. 6. 6. AutoCAD firmy AutoDesk jako jako VBS. 7. 7. Corel (pakiet graficzny) jako jako VBA. 2

Zasadnicze elementy języka wysokiego poziomu 1. 1. Projekt (zestaw modułów oraz formularzy); 2. 2. Moduł (zestaw procedur oraz funkcji); 3. 3. Procedura (podprogram zawierający instrukcje); 4. 4. Instrukcja (słowo kluczowe samodzielne lub grupowe); 5. 5. Zmienna (statyczna lub dynamiczna, dane); 6. 6. Stała (zmienna z wartością ustaloną przy deklaracji); 7. 7. Operator (pojedynczy znak symbolizujący operację); 8. 8. Przedrostek (znak lub zestaw znaków, skrót polecenia). 3

Etykieta w programowaniu VBA Poprawne nazewnictwo zmiennych i i obiektów: nazwa winna rozpoczynać się sięod od litery; wewnątrz nazwy można używać znaku podkreślenia; nazwa nie nie może zawierać znaków interpunkcyjnych:! @ & $ #?,,*..{ } ( ) [ ] = + - ^ % //\\ ~ < > : ; nazwa nie nie może zawierać spacji; nie nie wskazane jest jest stosowanie w nazwach polskich liter; liter; nazwa zmiennej może maksymalnie zawierać 255 255 znaków; nazwa formularza lub lub formantu może zawierać do do 40 40 znaków; nazwa nie nie może być byćtaka sama sama jak jak nazwa funkcji, instrukcji lub lub metody wbudowanej; moduł kodu kodu nie nie może zawierać procedur o tych tych samych nazwach; nazwy zmiennych mogą się siępowtarzać, gdy gdy są sądeklarowane lokalnie w procedurach, a nie nie w sekcji deklaracji modułu; należy zwrócić uwagę, że że VBA nie nie rozróżnia wielkich i i małych liter. liter. 4

Etykieta w programowaniu VBA c.d. Poprawianie czytelności kodu poprzez wstawianie wcięć. Cel: Cel: wyróżnianie bloków kodu, np. np. wyróżnianie zagnieżdżonych instrukcji: warunku If If...... Then...Else, pętli pętli Do Do...... Loop lub lub pętli pętli For For...... Next. Przykład: Do Do While x3 x3 <> <> 20 20 Początek pętli x1 x1 = x1 x1 +1 +1 If If x1 x1 = x2 x2 Then Początek warunku x1 x1 = 5 Podprogram warunku spełnionego x2 x2 = 10 10 Else W innym przypadku x1 x1 = x2 x2 Podprogram dla dla warunku x3 x3 = 20 20 niespełnionego End End If If Loop Koniec pętli 5

Etykieta w programowaniu VBA c.d. Kontynuacja wiersza kodu w nowej linii. Cel: Cel: Możliwość wizualnej analizy długiego wiersza poleceń jako jako całości. Przykład: MsgBox Aby przenieść część instrukcji VBA VBA do do & _ następnego wiersza kodu, wpisz znak spacji & _ oraz znak podkreślenia na na końcu wiersza. Opatrywanie kodu VBA w komentarze. Public Sub Sub Zmienne Rem Rem Deklaracja nowej procedury Dim Dim x, y As As Integer Rem Rem Deklaracja zmiennych x = 10 10 Przypisanie wartości zmiennej x y = 20 20 Przypisanie wartośći zmiennej y End End Sub Sub Zakończenie kodu procedury 6

Typy danych Typ Opis Zakres wartości Pamięć Boolean Wartość logiczna Prawda (True) lub Fałsz (False) 2 bajty Byte Mała liczba całkowita Od 0 do 255 1 bajt Integer Liczba całkowita Od -32 768 do 32 767 2 bajty Long Liczba całkowita Od -2 147 483 648 do 2 147 483 647 4 bajty Single Wartość zmiennoprzecinkowa pojedynczej precyzji Od -3.402823E38 do -1.401298E-45 dla ujemnych wartości oraz od 1.401298E-45 do 3.402823E38 dla dodatnich wartości 4 bajty Double Wartość zmiennoprzecinkowa podwójnej precyzji Od -1.79769313486231E308 do -4.94065645841247E-324 dla dodatnich wartości oraz od 4.94065645841247E-324 do 1.79769313486232E308 dla ujemnych 8 bajtów 7

Typy danych c.d. Typ Opis Zakres wartości Pamięć Currency Decimal Duża precyzyjna liczba (do 19 cyfr) Bardzo duża, bardzo precyzyjna liczba (do 29 cyfr) Od 922 337 203 685 477, 5808 do 922 337 203 685 477,5807; cztery cyfry na prawo od przecinka +/-79228162514264337593543950335 bez przecinka ; +/-7.9228162514264337593543950335 z 28 miejscami na prawo od przecinka; najmniejsza niezerowa liczba: +/-0.0000000000000000000000000001 8 bajtów 14 bajtów Date Daty i godziny Od 1 stycznia 100r. do 31 grudnia 9999r. 8 bajtów Object Obiekt Odniesienie do obiektu 4 bajty String Tekst o zmiennej długości Od 0 do około 2 miliardów znaków 10 bajtów +długość łańcucha 8

String Variant Typy danych c.d. Typ Opis Zakres wartości Pamięć Typ niestandardowy zdefiniowany za pomocą struktury Type Tekst o stałej długości Dowolna wartość Type DanePersonalne ID As Integer Nazwisko As String * 20 Adres As String * 30 End Type Grupa zmiennych używana jako całość Od 1 do około 65400 znaków Wartość numeryczna typ Double. Tekst o zmiennej długości od 0 do około 2 miliardów znaków Dopuszczalna wartość konkretnej zmiennej tworzącej grupę zależy od typu tej zmiennej długość łańcucha 22 bajty + długość łańcucha zależna od składników Tworzę typ zmiennej użytkownika. Tworzę elementy danych typu użytkownika. 9

Deklaracja zmiennych Option Explicit Pozycja początek modułu.wymuszenie deklaracji zmiennych. Przejrzystość kodu. Zasadnicza składnia podstawowego sposobu deklaracji zmiennej: Dynamiczna Statyczna Dim Zmienna As Typ_Danych Static Zmienna1 As Typ_Danych1 Przykłady: Dim x1 As Integer, x2 As Integer Dim z2 As Double Dim tekst1 As string*56 Static tekst2 As string 10

Deklaracja zmiennej i jej zasięg Zasięg zmiennej zależy od: miejsca, w którym zmienna jest zadeklarowana (sekcja deklaracji modułu, wnętrze procedury); słowa kluczowego służącego do do deklarowania zmiennej (Dim, Public, Private lub Static). Przykłady: Private Slowo As String Deklaracja lokalna Dim Komunikat As String Deklaracja lokalna Public Licznik As Long Deklaracja globalna Static Numer As Integer Deklaracja lokalna 11

Deklaracja zmiennej statycznej Cechy: zmienna statyczna nie nie zmienia swojej wartości po po wykonaniu procedury; globalna deklaracja w funkcji lub procedurze zamienia wszystkie deklaracje na na statyczne. Przykłady: Static Numer As As Integer Private Static Sub Procedura() Static Function Suma(x1 As As Integer, _ x2 x2 As As Integer) As As Double 12

Deklarowanie wielu zmiennych w wierszu Poprawna deklaracja zawiera (w (w kolejności): 1. 1. Słowo kluczowe (Dim, Private, Public), 2. 2. Nazwę zmiennej, 3. 3. Słowo kluczowe (As), 4. 4. Typ zmiennej. Po Po umieszczeniu znaku przecinka można powtórzyć punkty 2, 2, 3 i i 4. 4. Dim x1 x1 As As Integer, x2 x2 As As Integer, x3 x3 As As Integer Dim a1 a1 As As Currency, d1 d1 As As Date, s1 s1 As As String Dim x1, x2, x3 x3 As As Integer : Dim x4 x4 Uwaga: Zmienne typu Variant. 13

Stała literalna (symboliczna) Cel: określenie wartości, która nie nie zmienia się sięw czasie działania programu; możliwość globalnej zmiany deklaracji stałej stosowanej w programie; na na stałe przypisanie nazw wartościom, w celu podniesienia czytelności kodu. Przykłady: Public Const Nazwisko As As String = Kowalski Private Const Data As As Date = #1/10/1998# Const Stan As As Boolean = True Const Poniedziałek = 1, 1, Wtorek = 2 14

Wykorzystanie przyrostków w deklaracjach Przyrostek Typ zmiennej Przykład deklaracji % Integer Dim zmienna1%, zmienna2% & Long Dim wartosc1&, wartosc2&! Single # Double @ Currency $ String Dim slowo1!, slowo2! Dim x#, y# Dim x As Double, y As Double Dim placa1@, placa2@ Dim lancuch1$, lancuch2$ 15

Definiowanie niestandardowego typu danych [Private Public] Type nazwa_typu nazwa_elementu [([indeksy])] As typ [nazwa_elementu[([indeksy])] As typ]... End Type Public Private nazwa_typu nazwa_elementu indeksy typ Element nieobowiązkowy. Deklarowanie typów zdefiniowanych przez użytkownika dostępnych we wszystkich procedurach, modułach, projektach. Element nieobowiązkowy. Deklarowanie typu definiowanego przez użytkownika dostępnego tylko wewnątrz modułu. Element obowiązkowy. Nazwa typu definiowanego przez użytkownika. Element obowiązkowy. Nazwa elementu typu definiowanego przez użytkownika. Element nieobowiązkowy. Wymiary elementu będącego tablicą. Argument indeksy ma następującą składnię:[indeks_dolny To indeks_górny] Element obowiązkowy. Dowolnego rodzaju z wcześniejszej tabeli. 16

Charakterystyka zmiennej typu Variant Cechy: uniwersalność; możliwość przyporządkowania wartości dowolnego typu; dynamiczna zmiana typu wartości; zajętość dużego bloku pamięci oraz spowolnienie programu. Przykład: Dim WszystkieDane As As Variant, TypDanych WszystkieDane = 3 WszystkieDane = Dobrze WszystkieDane = #1/10/1998 19:05:21# Zapytanie o typ bieżącej wartości TypDanych = TypeName(WszystkieDane) Date 17

Operatory arytmetyczne Operator Operacja Przykład + Dodawanie 2 + 1 x + y - Odejmowanie i negacja 2 1 -x * Mnożenie 3 * 4 x * y ^ Potęgowanie 2 ^ 3 / Dzielenie 2 / 3 \ Dzielenie całkowite 2 \ 3 Mod Reszta z dzielenia 5 Mod 2 Sqr Pierwiastek kwadratowy Sqr(4) x ^ y x / y x \ y x Mod y Sqr(x) Funkcja posiadająca charakter operatora 18

Operatory porównywania i konkatenacji Operator Operacja Przykład = Równość, przypisanie x = 2 x = y <> Nierówność x <> 2 x <> y < Mniejszy x < 2 x < y > Większy x > 2 x > y <= Mniejszy lub równy x <= 2 x <= y >= Większy lub równy x >= 2 x >= y Is Sprawdzanie odwołań Object1 Is Object2 & lub + Konkatenacja łańcuchów "Wynik: " & x Like Porównywanie łańcuchów "abbba" Like "a*a" 19

Przykłady zastosowań operatora Like Dim Dim MojWynik MojWynik = "abbba" Like Like "a*a" "a*a" MojWynik = "F" "F" Like Like "[A-Z]" MojWynik = "F" "F" Like Like "[!A-Z]" MojWynik = "a2a" "a2a" Like Like "a#a" "a#a" MojWynik = "am5b" Like Like "a[l-p]#[!c-e]" MojWynik = "BAT123khg" Like Like "B?T*" MojWynik = "CAT123khg" Like Like "B?T*" Zwraca True. True. Zwraca True. True. Zwraca False. Zwraca True. True. Zwraca True. True. Zwraca True. True. Zwraca False. Znaki Znaki kluczowe w łańcuchu wzorcowym:? --dowolny pojedynczy znak, znak, ** --zero zero lub lub więcej więcej znaków, # --dowolna pojedyncza cyfra cyfra (0 9), (0 9), [Lista] [Lista] --dowolna pojedyncza litera litera z <Lista>, [!Lista] --dowolna pojedyncza litera litera z poza poza <Lista>,!! --negacja listy listy liter. liter. 20

Operatory logiczne Operator Operacja Przykład Not Negacja Not(x > y) And Koniunkcja x > y And a > b Or Alternatywa x > y Or a > b Xor Alternatywa wykluczająca x > y Xor a < b Eqv Równoważność x > y Eqv a > b Imp Implikacja x > y Imp a > b 21

Operacje logiczne (Not, And) Zastosowanie operatora: Not Dim Dim Test1, A, A, B, B, C, C, D A = 10 10 : B = 8 : C = 6 : D = Null ' Przypisanie. Test1 = Not(A > B) B) ' Zwraca False. Test1 = Not(B > A) A) ' Zwraca True. Test1 = Not(C > D) D) ' Zwraca Null. Test1 = Not Not A ' Zwraca -11-11 (negacja bitów). Zastosowanie operatora: And Dim Dim Test2, A, A, B, B, C, C, D A = 10 10 : B = 8 : C = 6 : D = Null ' Przypisanie. Test2 = A > B And And B > C ' Zwraca True. Test2 = B > A And And B > C ' Zwraca False. Test2 = A > B And And B > D ' Zwraca Null. Test2 = A And And B ' Zwraca 8 (mnożenie bitów). 22

Operacje logiczne (Or, Xor) Zastosowanie operatora: Or Dim Dim Test3, A, A, B, B, C, C, D A = 10 10 : B = 8 : C = 6 : D = Null Przypisanie. Test3 = A > B Or Or B > C ' Zwraca True. Test3 = A > B Or Or B > D ' Zwraca True. Test3 = B > D Or Or B > A ' Zwraca Null. Test3 = A Or Or B ' Zwraca 10 10 (sumowanie bitów). Zastosowanie operatora: Xor Dim Dim Test4, A, A, B, B, C, C, D A = 10 10 : B = 8 : C = 6 : D = Null ' Przypisanie. Test4 = A > B Xor Xor B > C ' Zwraca False. Test4 = B > A Xor Xor B > C ' Zwraca True. Test4 = B > A Xor Xor C > B ' Zwraca False. Test4 = B > D Xor Xor A > B ' Zwraca Null. Test4 = A Xor Xor B ' Zwraca 2 (wykluczanie pary bitów). 23

Operacje logiczne (Eqv, Imp) Zastosowanie operatora: Eqv Dim Dim Test5, A, A, B, B, C, C, D A = 10 10 : B = 8 : C = 6 : D = Null ' Przypisanie. Test5 = A > B Eqv Eqv B > C ' Zwraca True. Test5 = B > A Eqv Eqv B > C ' Zwraca False. Test5 = A > B Eqv Eqv B > D ' Zwraca Null. Test5 = A Eqv Eqv B ' Zwraca -3-3 (porównanie bitów). Zastosowanie operatora: Imp Dim Dim Test6, A, A, B, B, C, C, D A = 10 10 : B = 8 : C = 6 : D = Null ' Przypisanie. Test6 = A > B Imp Imp B > C ' Zwraca True. Test6 = A > B Imp Imp C > B ' Zwraca False. Test6 = B > A Imp Imp C > B ' Zwraca True. Test6 = B > A Imp Imp C > D ' Zwraca True. Test6 = C > D Imp Imp B > A ' Zwraca Null. Test6 = B Imp Imp A ' Zwraca -1-1 (włączanie bitów). 24

Option Base {0 1} Deklaracja tablic Początek modułu. Ograniczenie indeksów tablicy od dołu. Domyślna wartość 0. Tablice statyczne Dim NazwaTablicy(n) As TypDanych Dim NazwaTablicy(n,m,p,...) As TypDanych Dim NazwaTablicy(n1 To n2,m1 To m2,p1 To p2,...) As TypDanych Tablice dynamiczne Dim nazwatablicy() As TypDanych Do 60 wymiarów Option Base 1 Dim miesiace(11) As String Public wyniki(10, 10, 2) As Byte Static dane(1 To 5, 6 To 10) As Double Private wartosci() Tablica dynamiczna zmiennych Variant 25

Redeklaracja tablic dynamicznych (ReDim) Cel stosowania - ponowny przydział pamięci dla zmiennych reprezentujących tablice dynamiczne (w procedurze). ReDim [Preserve] nazwa_zmiennej (indeksy) [As typ] Preserve nazwa_zmiennej [, nazwa_zmiennej (indeksy) [As typ]]... Element nieobowiązkowy. Słowo kluczowe powodujące zachowanie danych istniejącej tablicy w przypadku zmiany jej ostatniego rozmiaru. Element obowiązkowy. Nazwa tablicy. indeksy typ Element nieobowiązkowy. Wymiary zmiennej tablicowej. Można zadeklarować do 60 wymiarów. Składnia: [indeks_dolny To] indeks_górny [, [indeks_dolny To] indeks_górny]... Element nieobowiązkowy. Typ danych zmiennej tablicowej. Możliwość zmiany tylko do dołu od typu Variant. 26

Redeklaracja tablic dynamicznych c.d. Przykład: Option Base 1 Dim Dim Tab() As As Integer 'Deklaracja tablicy dynamicznej. ReDim Tab(3, 2) 2) Określenie rozmiaru tablicy. ReDim Tab(3, 4) 4) Zmiana rozmiaru tablicy....... program wypełniający tablicę...... ReDim Preserve Tab(3, 5) 5) Zmiana rozmiaru z zachowaniem wcześniej wprowadzonych danych. Nienaruszona część tablicy (macierzy) Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab 11 12 13 14 21 22 23 24 31 32 33 34 Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab Tab 11 12 13 14 15 21 22 23 24 25 31 32 33 34 35 Nowe elementy tablicy (macierzy) 27

Odczyt indeksów tablicy Odczyt dolnego indeksu tablicy: LBound(NazwaTablicy[, NumerWymiaru]) Odczyt górnego indeksu tablicy: UBound(NazwaTablicy[, NumerWymiaru]) Option Base 1 Dim Dim Dolna, Gorna Dim Dim Matrix(1 To To 10, 10, 5 To To 15, 15, 10 10 To To 20) 20) Dim Dim InnyMatrix(10) As As Double Dolna = LBound(Matrix, 1) 1) ' Zwraca 1. 1. Dolna = LBound(Matrix, 3) 3) ' Zwraca 10. 10. Dolna = LBound(InnyMatrix) ' Zwraca 1. 1. Gorna = UBound(Matrix, 1) 1) ' Zwraca 10. 10. Gorna = UBound(Matrix, 3) 3) ' Zwraca 20. 20. Gorna = UBound(InnyMatrix) ' Zwraca 10. 10. 28

Dialogowe okna komunikacyjne Okno informacyjne - funkcja MsgBox() MsgBox(strKomunikat[, intprzyciski] [, strnaglowek] [, strzbiorpomocy, intnumerkontekstu]) strkomunikat intprzyciski strnagłowek strzbiorpomocy intnumerkontekstu Wymagany. Łańcuch do 1024 znaków. Przechodzenie do nowej linii Chr(13).Wprowadzenie pustej linii Chr(10). Nie wymagany. Suma wartości określających wyświetlane przyciski, typ wyświetlanej ikony, przycisk domyślny, modalność okna. Wartość domyślna wynosi 0. Nie wymagany. Łańcuch określający nazwę okna informacyjnego. Domyślnie jest to nazwa aplikacji. Nie wymagany. Łańcuch określający nazwę zbioru z pomocą podręczną. Wymagany, gdy został określony intnumerkontekstu. Nie wymagany. Numer kontekstu pomocy podręcznej. Wymagany, gdy został wprowadzony strzbiorpomocy. 29

Dialogowe okna komunikacyjne c.d. Okno informacyjne Przyciski wyświetlane w oknie informacyjnym: Nazwa stałej Wartość Przyciski Polska wersja vbokonly 0 OK OK vbokcancel 1 OK, Cancel vbabortretryignore 2 Abort, Retry, Ignore vbyesnocancel 3 Yes, No, Cancel vbyesno 4 Yes, No vbretrycancel 5 Retry, Cancel vbmsgboxhelpbutton 16384 Help OK, Anuluj Przerwij, Ponów próbę, Zignoruj Tak, Nie, Anuluj Tak, Nie Ponów próbę, Anuluj Pomoc 30

Dialogowe okna komunikacyjne c.d. Okno informacyjne Nazwa stałej Wartość Opis Ikony wyświetlane w oknie komunikatu: vbcritical 16 Wyświetla ikonę zdarzenia krytycznego. vbquestion 32 Wyświetla ikonę zapytania. vbexclamation 48 Wyświetla ikonę wiadomości ostrzegawczej. vbinformation 64 Wyświetla ikonę informacyjną. Domyślne przyciski wyświetlane w oknie komunikatu: vbdefaultbutton1 0 Pierwszy przycisk jako domyślny. vbdefaultbutton2 256 Drugi przycisk jako domyślny. vbdefaultbutton3 512 Trzeci przycisk jako domyślny. vbdefaultbutton4 768 Czwarty przycisk jako domyślny. 31

Dialogowe okna komunikacyjne c.d. Okno informacyjne Nazwa stałej Wartość Opis Modalność okna komunikatu: vbapplicationmodal 0 Okno modalne w aplikacji; działanie bieżącej aplikacji zostanie wstrzymane, dopóki użytkownik nie odpowie na wyświetlony komunikat. vbsystemmodal 4096 Okno modalne w systemie; działanie wszystkich aplikacji zostanie wstrzymane, dopóki użytkownik nie odpowie na wyświetlony komunikat. Inne funkcje dotyczące wyświetlania okna i tekstu w oknie: vbmsgboxsetforeground 65536 Okno informacyjne na pierwszy plan. vbmsgboxright 524288 Polecenie dosunięcia tekstu do prawej strony. vbmsgboxrtlreading 1048576 Odwrotne wprowadzanie tekstu do okna. 32

Dialogowe okna komunikacyjne c.d. Okno informacyjne Wartości zwracane przez funkcję MsgBox(): Nazwa stałej Wartość Opis vbok 1 Użytkownik wcisnął przycisk OK. vbcancel 2 Użytkownik wcisnął przycisk Cancel (Anuluj). vbabort 3 Użytkownik wcisnął przycisk Abort (Przerwij). vbretry 4 Użytkownik wcisnął przycisk Retry (Ponów próbę). vbignore 5 Użytkownik wcisnął przycisk Ignore (Zignoruj). vbyes 6 Użytkownik wcisnął przycisk Yes (Tak). vbno 7 Użytkownik wcisnął przycisk No (Nie). 33

Dialogowe okna komunikacyjne c.d. Okno informacyjne Przykłady: Dim Dim Info MsgBox "Zostały wykonane niezbędne obliczenia." P Info = MsgBox("Początkowy tekst informacyjny."& _ Chr(13) & "Przechodzę do do nowej linii.", _ vbdefaultbutton2 + vbinformation + vbyesnocancel + _ vbmsgboxhelpbutton, "Nazwa próbnego okna") P1 34

Dialogowe okna komunikacyjne c.d. Okno informacyjne Przykład --decyzyjne zamknięcie okna okna informacyjnego: Dim Dim Msg, Style, Title, Help, Ctxt, Resp, MyStr Msg Msg = "Czy chcesz kontynuować?"?" Style = vbyesno + vbcritical + vbdefaultbutton2 Title = "Prezentacja okna" Help = "DEMO.HLP" Ctxt = 1000 Resp = MsgBox(Msg, Style, Title, Help, Ctxt) If If Resp = vbyes Then MyStr = "Tak" Else MyStr = "Nie" End End If If MsgBox MyStr P 35

Dialogowe okna komunikacyjne c.d. Okno wprowadzania danych funkcja InputBox() strzmienna = InputBox( strpytanie [, strtytul] [,strdomyslne] strpytanie strtytul [,intxpoz] [,intypoz] [, strpomoc, intkontekst]) Argument obowiązkowy typu String określający komunikat umieszczany w oknie. Parametr opcjonalny typu String określający tytuł okna komunikatu. strdomyslne intxpoz intypoz strpomoc intkontekst Parametr opcjonalny typu String określający domyślną wartość wyświetlaną w polu tekstowym okna. Parametr opcjonalny typu Integer określający pozycję okna, w twipsach, w formularzu od lewego brzegu okna. Parametr opcjonalny typu Integer określający pozycję okienka, w twipsach, w formularzu od górnego brzegu okna. Parametr opcjonalny typu String określający zbiór pomocy. Parametr opcjonalny typu Integer określający kontekst pomocy. 36

Dialogowe okna komunikacyjne c.d. Okno wprowadzania danych Wartości zwracane przez funkcję InputBox() : Akcja Wybór przycisku OK Wybór przycisku Anuluj Opis Zwracana jest wartość typu String wpisana przez użytkownika do pola tekstowego lub zaakceptowana wartość domyślna. Zwracana jest wartość typu String w postaci pustego łańcucha. Przykład: Dim a, b, c As Integer a = InputBox("Podaj liczbę a: ") b = InputBox("Podaj liczbę b: ") c = a - (-b) MsgBox "Suma podanych liczb: " & c P 37

Dialogowe okna komunikacyjne c.d. Okno wprowadzania danych Przykłady: Dim Dim Message, Title, Def, War War Message = "Wprowadź wartość między 1 a 3" 3" 'Komunikat. Title = "Wprowadzanie danych" 'Nazwa okna. Def Def = "1" "1" ' Wartość bieżąca. P War War = InputBox(Message, Title, Def) 'Zastosowanie pomocy. Pojawienie się się przycisku Pomoc. War War = InputBox(Message, Title, Def,,,"DEMO.HLP", 10) 10) Wyświetlenie okna w pozycji 100, 100. War War = InputBox(Message, Title, Def, 100, 100) 38

Funkcje i podprogramy (procedury) Typy procedur: 1. 1. Podprogram deklarowana za za pomocą słowa kluczowego Sub. Może być uruchamiana samodzielnie. Można z jej jej wnętrza uruchamiać inne procedury. 2. 2. Funkcja deklarowana za za pomocą słowa kluczowego Function. Zwraca wartość do do procedury przez którą została wywołana. 3. 3. Procedura zdarzenia deklarowana za za pomocą słowa kluczowego Event. Uruchamiana najczęściej poprzez inicjowanie zdarzenia pochodzącego z obiektu wizualnego formularza. 4. 4. Procedura właściwości deklarowana za za pomocą słowa kluczowego Property. Stosowana przy odczytywaniu lub modyfikowaniu wartości właściwości. 5. 5. Makro podprogram bez parametrów najczęściej uruchamiany bezpośrednio z aplikacji. Można go go wywołać z parametrami z poziomu innej procedury. 39

Deklaracja i i składnia funkcji: Deklaracja zasięgu działania funkcji Deklaracja funkcji [Public Private] [Static] Function Nazwa [(ListaArgumentów)] [As TypZwracany] [instrukcje] Miejsce wprowadzania danych do funkcji [Nazwa = wyrażenie] Przestrzeń [Exit Function] ładunkowa funkcji (wnętrze) [instrukcje] [Nazwa = wyrażenie] End Function 40

Składnia listy argumentów funkcji [Optional] [ByVal ByRef] [ParamArray] NazwaZmiennej [( )] [As Typ] [= WarDomyślna] Optional ByVal ByRef ParamArray NazwaZmiennej Typ WarDomyślna Element nieobowiązkowy. Wskazuje, że argument nie jest wymagany. Element nieobowiązkowy. Wskazuje, że argument przekazywany jest przez wartość podaną w trakcie wywołania funkcji. Element nieobowiązkowy. Wskazuje, że argument przekazywany jest przez odwołanie do ostatnio przypisanej wartości. W języku Visual Basic ByRef jest ustawieniem domyślnym. Element nieobowiązkowy. Stosowany tylko jako ostatni argument na liście argumentów. Wskazuje, że ostatnim argumentem jest opcjonalna tablica z elementami typu Variant. Element obowiązkowy. Nazwa różna od wbudowanych. Element nieobowiązkowy. Dowolny typ danych. Element nieobowiązkowy. Stała lub konkretna wartość. 41

Funkcje przykłady deklaracji Function Pierwiastek(Argument As As Double) _ As As Double If If Argument < 0 Then 'Sprawdzanie argumentu. MsgBox "Podaj dodatnią wartość." Exit Function 'Wyjście z funkcji. Else Pierwiastek = Sqr(Argument) 'Zwraca wartość. End If If End Function P 42

Funkcje przykłady deklaracji i wywołań Deklaracja funkcji Function Obliczenia(ByVal Arg1 As As Integer, _ ParamArray ArgN()) Dim Wartosc Wywołanie funkcji jak poniżej: Wartosc = Obliczenia(4, 3,2,2,1) Lokalne zmienne otrzymały wartości: Arg1 = 4, 4, ArgN(0) = 3, 3, ArgN(1) = 2, 2, ArgN(2) = 1 Wywołanie funkcji poprzez przypisanie 43

Funkcje przykłady deklaracji i wywołań c.d. Public Function Srednia(ByVal Arg1 As As _ Integer, ParamArray ArgN()) Dim i As As Integer Srednia = 0 For i = 0 To To Arg1-1 Srednia = Srednia + ArgN(i) Next i Srednia = Srednia / Arg1 End Function Sub Wykonaj() MsgBox Srednia(6, 2, 2, 4, 4, 3, 3, 6, 6, 7, 7, 8) 8) End Sub P 44

Funkcje przykłady deklaracji i wywołań c.d. Function Funkcja(MyStr As As String, Optional _ Arg1 As As Integer = 5, 5, Optional Arg2 _ = "Zofia") Deklaracja funkcji Dim RetVal Funkcja może być wywołana następująco: RetVal = Funkcja("Cześć", 2, 2, "Słowo") Wszystkie trzy argumenty dostarczone. RetVal = Funkcja("Test",, 5) 5) Ominięty drugi argument. RetVal = Funkcja(MyStr:="Cześć", Arg1:=7) Pierwszy i drugi argument wywołany według nazwy. Wywołanie funkcji poprzez przypisanie 45

Deklaracja zasięgu działania procedury Deklaracja procedury Deklaracja i i składnia procedury: [Public Private Friend] [Static] Sub Nazwa [(ListaArgumentów)] [instrukcje] Miejsce wprowadzania [Nazwa = wyrażenie] danych do procedury [Exit Sub] Przestrzeń ładunkowa procedury (wnętrze) [instrukcje] [Nazwa = wyrażenie] End Sub Friend deklaracja podobna do słowa kluczowego Public; stosowana wyłącznie w module klasy; procedura widoczna w całym projekcie, poza kontrolerem obiektów. 46

Składnia listy argumentów procedury [Optional] [ByVal ByRef] [ParamArray] NazwaZmiennej [( )] [As Typ] [= WarDomyślna] Optional ByVal ByRef ParamArray NazwaZmiennej Typ WarDomyślna Element nieobowiązkowy. Wskazuje, że argument nie jest wymagany. Element nieobowiązkowy. Wskazuje, że argument przekazywany jest przez wartość podaną w trakcie wywołania procedury. Element nieobowiązkowy. Wskazuje, że argument przekazywany jest przez odwołanie do ostatnio przypisanej wartości. W języku Visual Basic ByRef jest ustawieniem domyślnym. Element nieobowiązkowy. Stosowany tylko jako ostatni argument na liście argumentów. Wskazuje, że ostatnim argumentem jest opcjonalna tablica z elementami typu Variant. Element obowiązkowy. Nazwa różna od wbudowanych. Element nieobowiązkowy. Dowolny typ danych. Element nieobowiązkowy. Stała lub konkretna wartość. 47

Procedura przykład deklaracji Sub ObliczPole(Dlugosc, Szerokosc, Okno) 'Deklaracja zmiennej lokalnej Dim Pole As As Double. If If Dlugosc = 0 Or Or Szerokosc = 0 Then 'Jeżeli któryś z argumentów jest równy 0, 0, Exit Sub 'opuść natychmiast procedurę. End If If 'Oblicz pole prostokąta. Pole = Dlugosc * Szerokosc 'Wypisz wartość Pole w oknie MsgBox. If If Okno = True Then MsgBox Pole End Sub P 48

Procedura przykłady wywołań Private Sub PodajParametry() Dim x As As Single, y As As Single, z As As Boolean x = 10: y = 30: z = True Call ObliczPole(x, y, y, z) z) End Sub P Public Sub PodajParametry() Dim x As As Single, y As As Single, z As As Boolean x = 10: y = 60: z = True ObliczPole Dlugosc:=x, Szerokosc:= y, y, Okno:=z End Sub P1 49

Wbudowane instrukcje, funkcje i metody Zestawy instrukcji, funkcji i i metod można podzielić na: 1. 1. Formatujące dane (np. Format formatowanie danych według zadanego wzorca; możliwość tworzenia własnego wzorca). 2. 2. Konwertujące typy danych (możliwość kontrolowania typów danych i i tworzenia przejrzystego oraz czytelnego kodu). 3. 3. Manipulujące łańcuchami znaków (obcinanie, wydzielanie fragmentów, filtrowanie łańcuchów znaków). 4. 4. Manipulujące datami i i godzinami (wyodrębnianie składników, wykonywanie operacji matematycznych). 5. 5. Umożliwiające komunikację z użytkownikiem (Funkcje MsgBox oraz InputBox wizualny sposób wyświetlania komunikatów oraz pobierania danych od od użytkownika). 6. 6. Matematyczne, finansowe i i logiczne. 7. 7. Wykonujące operacje wejścia oraz wyjścia. 50

Składnia instrukcji warunkowej (If) Instrukcja warunkowa: If If...... Then...... Else...... End If If 1. 1. If Ifwarunek Then [instrukcje] Przykład: If If d > 200 Then c=d+2 2. 2. If Ifwarunek Then instrukcje Else instrukcje Przykład: If If d > 200 Then c=d+2 Else c=d-62 3. 3. If If warunek1 Then instrukcje [ElseIf warunek2 Then instrukcje] [Else instrukcje] End If If 51

Przykład: Składnia instrukcji warunkowej (If) c.d. Private Sub Warunek(Num As As Long, _ Optional Cyfry As As Long) If If Num < 10 10 Then Pierwszy warunek Cyfry = 1 ElseIf Num < 100 Then Drugi warunek Cyfry = 2 Else Pozostałe przypadki Cyfry = 3 End If If MsgBox "Jest to to wartość " &Cyfry& " cyfrowa." End Sub P 52

Instrukcja warunkowa (Select Case) Instrukcja:Select Case... End Select Składnia: Select Case WyrażenieTest [Case lista_wyrażeń_n [instrukcje_n]]... [Case Else [instrukcje_else]] End Select Przykład: Select Case Num Case 1 To 5 MsgBox "Przedział od 1 do 5" Case 6, 7, 8 MsgBox "Przedział od 6 do 8" Case 9 To 10 MsgBox "Przedział od 9 do 10" Case Is > 10 MsgBox "Wartość większa od 10." Case Else MsgBox "Poza przedziałem" & _ " liczb dodatnich." End Select P 53

Instrukcja warunkowa (While) Instrukcja warunkowa: While...Wend Wykonuje ciąg instrukcji, dopóki warunek posiada wartość True. Składnia: While warunek [instrukcje] Wend Przykład: Warunkowy początek pętli Punkt zapętlenia (While end) Private Sub Iter(n,Licz As As Long, Licz1 As As Long) Dim Licz2 As As Long While Licz < Licz1 Licz = Licz + n: n: Licz2 = Licz2 + 1 Wend MsgBox "Liczba iteracji wynosi: " & Licz2 End Sub P 54

Składnia: Iteracyjna instrukcja (For) For licznik = poczatek To Tokoniec [Step krok] [instrukcje] [Exit For] koniec poczatek [instrukcje] krok Next [licznik] Przykład: - liczba iteracji Dim Slowo, Znak, Ciag For Slowo = 10 10 To To 1 Step -1-1 'Wykonaj 10 10 powtórzeń. For Znak = 0 To To 9 'Wykonaj 10 10 powtórzeń. Ciag = Ciag & Znak 'Dołącz cyfrę do do ciągu. Next Znak 'Zwiększ licznik. Ciag = Ciag & " " 'Dołącz znak spacji. Next Slowo P 55 + 1

Iteracyjna instrukcja (For) c.d. Składnia: For Each element In Ingrupa [instrukcje] [Exit For] [instrukcje] Next [element] Przykład: Dynamiczne określenie liczby iteracji Dim Istnieje, MojObiekt, MojaKolekcja Istnieje = False For Each MojObiekt In In MojaKolekcja If If MojObiekt.Text = "Egzamin" Then Istnieje = True Exit For End If If Next 56

Instrukcja pętli logicznej (Do... Loop) Powtarza blok instrukcji tak długo, jak długo warunek posiada wartość False. Składnia: Do [{While Until} warunek] [instrukcje] [Exit Do] [instrukcje] Loop Składnia alternatywna: Do [instrukcje] [Exit Do] [instrukcje] Loop [{While Until} warunek] Powtarza blok instrukcji tak długo, jak długo warunek posiada wartość True. 57

Przykład: Instrukcja pętli logicznej (Do... Loop) c.d. Dim Flaga, Licznik Flaga = True: Licznik = 0 Do Do 'Zewnętrzna pętla. Do Do While Licznik < 20 20 'Wewnętrzna pętla. Licznik = Licznik + 1 'Zwiększaj licznik. If If Licznik = 10 10 Then Flaga = False Exit Do Do 'Wyjdź z wewnętrznej pętli. End If If Loop Loop Until (Flaga = False) Wyjdź z zewnętrznej pętli. P 58

Instrukcja pętli logicznej (Do... Loop) c.d. Przykład (bez (bez zastosowania słów słów kluczowych While Whilelub lub Until ): Until ): Public Sub Sub TestDanych() Dim Dim Odpowiedz As As String Odpowiedz = InputBox("Wpisz literę (A-E)") Do Do If If Odpowiedz = "" "" Then Then Odpowiedz = InputBox("Nic nie nie wpisałeś. " & _ "Wpisz literę A, A, B, B, C, C, D lub lub E.") E.") ElseIf Len(Odpowiedz) > 1 Then Then Odpowiedz = InputBox("Wpisz tylko tylko jedną jedną literę.") ElseIf Odpowiedz < "A" "A" Or Or Odpowiedz > "E" "E" Then Then Odpowiedz = InputBox("Nieprawidłowa litera. " & _ "Wpisz literę A, A, B, B, C, C, D lub lub E.") E.") Else Else MsgBox "Dziękuję. Dane Dane zostały przyjęte" Exit Exit Do Do End End If If Loop Loop End End Sub Sub P 59