Slides:



Advertisements
Podobne prezentacje
Funkcje c.d. Strukturalność. Algorytmy. Ćwiczenia przed kolokwium.
Advertisements

Testowanie oprogramowania metodą badania pokrycia kodu
REKURENCJA.
Czyli jak zrobić prezentację komputerową?
Zadania i łamigówki matematyczne.
Małgorzata Pietroczuk
Tajemnice klawiatury.
Ułamki dziesiętne.
funkcja przyjmuje wartości dodatnie, a dla jakich ujemne?
FUNKCJA L I N I O W A Autorzy: Jolanta Kaczka Magdalena Wierdak
Informatyka Edytor tekstów Word.
Portal Systemu Jakości Kształcenia Jak się zalogować? Instrukcja dla pracowników UMCS Przygotowanie: Urszula Wojtczak, Zespół Obsługi Systemu Jakości Kształcenia.
Elektronika cyfrowa Prezentacja Remka Kondrackiego.
Prąd Elektryczny.
Podstawowe jednostki informacji, co to jest bit i bajt?
To jest bardzo proste  Lekcja nr 3
Tablice.
Powiedzmy, że jest i wracasz do domu samochodem (oczywiście sam) po niezwykle ciężkim dniu pracy. Jesteś naprawdę zmęczony i sfrustrowany.
Podstawy programowania
Formatowanie i modyfikacja dokumentu tekstowego
Co każdy użytkownik komputera wiedzieć powinien
BUDOWA ARKUSZA KALKULACYJNEGO
KLAWIATURA Co to jest?.
TYPY STRUKTURALNE Tablice Tablicą nazywamy złożoną strukturę danych, która zawiera zbiór elementów tego samego typu.
ALGORYTMY.
ALGORYTM.
Analiza stanu naprężenia
Chwila zadumy ! Moi drodzy, Wysyłam te słowa do wielu osób nie bacząc, czy ktoś jest wierzący czy nie... Dla mnie jest to przesłanie do Wszystkich......
Wykonała Sylwia Kozber
Antonie de Saint-Exupery
Powrót do sukcesu Analiza przypadku Princessy (rola badań marketingowych podczas rozwoju produktu: ) Powrót do sukcesu Analiza przypadku Princessy.
Komputerowe prezentacje
xHTML jako rozszerzenie HTML
Instalacja serwera WWW na komputerze lokalnym
PHP Operacje na datach Damian Urbańczyk. Operacje na datach? Dzięki odpowiednim funkcjom PHP, możemy dokonywać operacji na datach. Funkcje date() i time()
HTML Podstawy języka hipertekstowego Damian Urbańczyk.
XHTML Odsyłacze tekstowe i graficzne Damian Urbańczyk.
Tworzenie tabel w edytorze Word
Elementy programowania
Elementy programowania97 Użycie zmiennych w procedurze Sub ObliczWiek() 'deklaracja zmiennych Dim ImieNazwisko As String Dim DataUrodzenia As Date Dim.
RÓWNANIA Wprowadzenie.
Warsztaty C# Część 2 Grzegorz Piotrowski Grupa.NET PO
Warsztaty C# Część 3 Grzegorz Piotrowski Grupa.NET PO
BEZPIECZNY INTERNET. PRZEGLĄDANIE STRON INTERNETOWYCH.
TWORZENIE SPISU TREŚCI Opracowała: Iwona Kowalik.
SKALA MAPY Skala – stosunek odległości na mapie do odpowiadającej jej odległości w terenie. Skala najczęściej wyrażona jest w postaci ułamka 1:S, np. 1:10.
To śmieszne...
Wskaźniki.
1 Strategia dziel i zwyciężaj Wiele ważnych algorytmów ma strukturą rekurencyjną. W celu rozwiązania rozwiązania problemu algorytm wywołuje sam siebie.
A. Jędryczkowski – 2006 ©. Tablica to struktura danych zawierająca zbiór obiektów tego samego typu i odpowiada matematycznemu pojęciu wektora (tablica.
Turbo Pascal umożliwia wykorzystanie w programach zbiorów teoriomnogościowych, których elementy muszą należeć do pewnego określonego typu. Typ zbiorowy.
Pliki elementowe – A. Jędryczkowski © 2007 Turbo Pascal umożliwia wykorzystanie w programach plików elementowych. Pliki takie zawierają informację zakodowaną
Budowa programu #include /*instrukcje preprocesora */ #include int main(void) { /*podstawowa funkcja programu */ int a=1; /*deklaracja i inicjalizacja.
W.K. (c) Bazy danych Access. 2W.K. (c) 2007 Baza danych - definicje Baza danych to zbiór informacji dotyczących określonego tematu (stanowiących.
Temat 5: Elementy meta.
Temat 1: Składnia języka HTML
Temat 1: Umieszczanie skryptów w dokumencie
Temat 6: Elementy podstawowe
Temat 4: Znaki diakrytyczne i definiowanie języka dokumentu
Warsztaty użytkowników programu PLANS – Karwia06 Język makropoleceń JMP programu PLANS Część I mgr inż. Tomasz Zdun.
Instrukcja switch switch (wyrażenie) { case wart_1 : { instr_1; break; } case wart_2 : { instr_2; break; } … case wart_n : { instr_n; break; } default.
Instrukcja switch switch (wyrażenie) { case wart_1 : { instr_1; break; } case wart_2 : { instr_2; break; } … case wart_n : { instr_n; break; } default.
Obsługa strumienia wejścia/wyjścia /zajęcia nr 2/ printf – wyświetlanie scanf – ??? dla printf: \n - nowa linia \t - tabulator poziomy \b - znak cofania.
Instrukcje sterujące: W instrukcjach sterujących podejmowane są decyzje o wykonaniu tych czy innych instrukcji programu. Decyzje te podejmowane są w zależności.
Magic Janusz ROŻEJ Komtech Sp. z o.o.
Komtech Sp. z o.o. Magic Janusz ROŻEJ.
Magic Janusz ROŻEJ Komtech Sp. z o.o.
w/g Grzegorz Gadomskiego
Największym bólem w życiu nie jest śmierć, lecz bycie ignorowanym.
VBA w MS Word Źródła: Steven Roman, Word.Makrodefinicje, Helion 2000
Zapis prezentacji:

Elementy programowania Pętla While… Wend While warunek blok instrukcji Wend instrukcje Elementy programowania

Elementy programowania While… Wend pętla ta wymaga zastosowania wyrażenia porównania, w pętli może znajdować się jedna instrukcja lub cały blok instrukcji VB. Blok ten jest wykonywany tak długo jak długo podany warunek jest prawdziwy. Ważne jest więc, aby w ciele pętli umieścić instrukcje, które doprowadzą do tego, że podany warunek kiedyś stanie się fałszywy. W przeciwnym razie pętla się nie zakończy, jeżeli warunek jest fałszywy już na samym początku przed wykonaniem pętli, to blok instrukcji w ciele pętli nie zostanie wykonany ani razu, Elementy programowania

Pętle z warunkiem Do While… Loop sprawdza warunek na początku wykonuje pętlę jeżeli warunek jest prawdziwy (powtarzanie dopóki prawda) Do Until… Loop wykonuje pętlę jeżeli warunek jest nieprawdziwy (powtarzanie dopóki fałsz) Do… Loop While sprawdza warunek na końcu Do… Loop Until While… Wend wykonuje pętlę jeżeli warunek jest prawdziwy

Elementy programowania Procedury i funkcje Procedura to wydzielony fragment programu, który zostaje wykonany po wywołaniu nazwy procedury. Dzielenie programu na procedury ułatwia nawigację po programie i kontrolę błędów. Głównym zadaniem procedur jest jednak umożliwienie wielokrotnego wykonywania tego samego fragmentu kodu w różnych częściach programu. Zamiast w każdym z tych miejsc wpisywać ten sam fragment kodu, można umieścić go w procedurze i wywoływać procedurę w żądanych miejscach. Skraca to zapis programu i w przypadku błędu pozwala na dokonanie zmian tylko w jednym miejscu. Elementy programowania

Elementy programowania Procedury i funkcje procedury zdarzeniowe - są uruchamiane, kiedy pojawi się określone zdarzenie (np. wciśnięcie klawisza lub przesunięcie myszki), procedury ogólne - są uruchamiane, kiedy zostaną wywołane przez inne procedury, procedury Sub - wykonują określone zadania, ale nie zwracają wartości, kod takiej procedury może rezydować w module formularza, ogólnym lub klasy, procedury funkcyjne (funkcje) - podobnie jak w procedurze typu Sub, kod procedury funkcyjnej może rezydować w formularzu standardowym lub module klasy, w przeciwieństwie do procedur Sub, zwracają wartość do procedury, która ją wywołała, Elementy programowania

Tworzenie funkcji Function nazwa_funkcji ([lista_parametrów]) instrukcje nazwa_funkcji = wartość End Function lista parametrów – opcjonalna; lista zmiennych reprezentujących argumenty, które są przekazywane do funkcji podczas wywołania; nazwy zmiennych powinny być oddzielone przecinkami; nazwa_funkcji = wartość – wartość zwracana przez funkcję

Elementy programowania Funkcje są dostępne dla wszystkich procedur modułu, mogą być rekurencyjne (mogą wywoływać siebie, jednak rekurencja może powodować błędy (stack overflow)), cały wykonywalny kod musi być umieszczony wewnątrz procedur (nie można stworzyć funkcji wewnątrz innej funkcji), funkcję wywołuje się przez podanie jej nazwy z listą argumentów do przekazania (można wywoływać również przez użycie rozkazu Call), aby zwrócić wartość z funkcji, należy podstawić tę wartość pod nazwę funkcji, dowolna liczba takich podstawień może się znajdować w dowolnych miejscach funkcji; jeżeli żadna wartość nie zostanie podstawiona pod nazwa_funkcji, funkcja zwróci wartość domyślną: funkcje numeryczne zwracają 0, funkcje łańcuchowe zwracają łańcuch zerowej długości ("") funkcje Variant zwracają Empty, Elementy programowania

Elementy programowania Przykład funkcji funkcja dodająca dwie liczby: Function sumaliczb(n,m) sumaliczb = n + m End Function Elementy programowania

Odtwarzanie funkcji funkcji napisanej w VBA nie można odtworzyć z okna makr i edytora VBA, funkcję można umieścić w dowolnej formule w arkuszu: lub wykorzystać w innej procedurze VBA: Sub Uzycie_funkcji () a = 23 b = 14 MsgBox ("Suma liczb wynosi: " & sumaliczb(a, b)) End Sub

Odtwarzanie funkcji z arkusza funkcja utworzona w VBA zachowuje się jak funkcja wbudowana Excela stąd odtwarzamy ją następująco: wywołujemy polecenie Funkcja… z menu Wstaw, szukamy naszej funkcji, i… używamy  Elementy programowania

Dostęp do utworzonych funkcji funkcja dostępna jest tylko dopóki otwarty jest skoroszyt, w którym jest ona przechowywana, aby dostępna była zawsze można: zachować funkcję w skoroszycie makr osobistych, zachować skoroszyt zawierający funkcję w folderze XLStart, Elementy programowania

Przekazywanie argumentów przez zmienne argumentami nazywamy jedną lub więcej wartości koniecznych do zadziałania funkcji, rezultat funkcji zależy od argumentów, poniższy przykład pokaże jak można przekazać funkcji sumaliczb pewne wartości z innej procedury (zadanie: oblicz ilość liter w imieniu i nazwisku dowolnej osoby): Elementy programowania

Elementy programowania Przykład 1 Sub liczbaliter() Dim i As Integer, n As Integer i = Len(InputBox("Podaj imię")) n = Len(InputBox("Podaj nazwisko")) MsgBox ("Imię i nazwisko mają liter: " & sumaliczb(i, n)) End Sub Uwaga! procedurę liczbaliter umieszczamy w tym samym module co funkcję sumaliczb Elementy programowania

Elementy programowania Przykład 2 Function lacz_tekst(k, o) lacz_tekst = k + " " + o End Function Sub podaj_tekst() Dim i As String, n As String, r As String i = InputBox("Podaj imię:") n = InputBox("Podaj nazwisko:") r = lacz_tekst(i, n) MsgBox r End Sub Elementy programowania

Czego funkcje nie potrafią? nie mogą wykonywać poleceń menu, np.: zawierać instrukcji formatowania danych, wymazywać, wstawiać danych, zawierać instrukcji otwierania pliku, zmieniać wyglądu ekranu itp. Elementy programowania

Elementy programowania Typy argumentów funkcje wykonują obliczenia i operacje w oparciu o dane otrzymane w postaci argumentów, nazwy argumentów podawanych w nawiasach pełnią rolę podobną do zmiennych, podobnie jak zmienne funkcje mogą być różnego typu (np. rezultatem funkcji może być ciąg znaków): Function nazwa_funkcji (argumenty) As typ_funkcji (jeśli nie podamy typu danych VBA przypisze typ Variant) Elementy programowania

Elementy programowania Przykład Function iloczyn1(licz1, licz2) As Integer iloczyn1 = licz1 * licz2 End Function Sub mnozenie() Dim licz1 As Single Dim licz2 As Single Dim wynik As Single licz1 = 45.33 licz2 = 19.24 wynik = iloczyn1(licz1, licz2) MsgBox wynik End Sub Ponieważ funkcja iloczyn1 ma typ Integer wynik będzie podany jako liczba całkowita Elementy programowania

Przekazywanie argumentów przy wywołaniu procedury (lub funkcji) można przekazać do niej argumenty na dwa sposoby: przez referencję (domyślny) – do procedury przekazana jest sama zmienna jako argument procedury. Jeżeli wywołana procedura zmienia wartość argumentu, ta zmiana pozostanie, kiedy sterowanie powróci do procedury wywołującej. Aby określić, że argument będzie przekazywany przez referencję w nagłówku Sub wywoływanej procedury należy zadeklarować zmienną ze słowem ByRef. Ponieważ jest to domyślny sposób przekazywania parametrów, można słowo ByRef pominąć. przez wartość - przekazana zostaje „kopia” zmiennej jako argument procedury. Jeżeli wywołana procedura zmienia argument, ta zmiana nie pozostanie, kiedy sterowanie powróci do procedury wywołującej. Aby określić, że argument ma być przekazany przez wartość w nagłówku Sub wywoływanej procedury należy użyć słowa kluczowego ByVal, aby zadeklarować zmienną.

Przykład przekazania argumentu przez wartość Function srednia1(ByVal licz1, ByVal licz2, ByVal licz3) licz1 = licz1 + 1 srednia1 = (licz1 + licz2 + licz3) / 3 End Function Sub trzyliczby1() Dim licz1 As Integer, licz2 As Integer, licz3 As Integer licz1 = 10 licz2 = 20 licz3 = 30 MsgBox srednia1(licz1, licz2, licz3) MsgBox licz1 MsgBox licz2 MsgBox licz3 End Sub Elementy programowania

Elementy programowania Argumenty opcjonalne umieszcza się je na końcu listy argumentów, które są obowiązkowe, poprzedza słowem kluczowym Optional, można tych argumentów nie użyć w procedurze, nie można określić typu danych za pomocą słowa kluczowego As w sposób jawny (w VBA mają domyślny typ Variant), Elementy programowania

Przykład Function srednia3(licz1, licz2, Optional licz3) Dim ileliczb As Integer ileliczb = 3 If IsMissing(licz3) Then licz3 = 0 ileliczb = ileliczb - 1 End If srednia3 = (licz1 + licz2 + licz3) / ileliczb End Function Sub argumentopcjonalny() licz1 = CSng(InputBox("Podaj pierwszą liczbę")) licz2 = CSng(InputBox("Podaj drugą liczbę")) licz3 = CSng(InputBox("Podaj trzecią liczbę")) MsgBox ("Średnia z dwóch pierwszych liczb: " & srednia3(licz1, licz2)) MsgBox ("Średnia z trzech liczb: " & srednia3(licz1, licz2, licz3)) End Sub IsMissing – funkcja sprawdzająca czy przekazano opcjonalny argument procedury; CSng – konwersja wartości na Single

Elementy programowania Funkcje wbudowane listę funkcji VBA można obejrzeć w Pomocy lub przeglądarce obiektów VBA: Elementy programowania

Elementy programowania Funkcje matematyczne Abs (X) wartość bezwzględna Sgn (X) znak liczby Int (X) część całkowita Sqr (X) pierwiastek kwadratowy Log (X) logarytm naturalny LogN(X) = Log(X) / Log (N) logarytm o podstawie N Elementy programowania

Elementy programowania Funkcje daty i czasu Date zwraca aktualną datę DateDiff liczy czas między dwoma datami DateValue zwraca datę z wyrażenia Day zwraca dzień z daty Hour zwraca godzinę z czasu Now zwraca bieżąca data i czas Time zwraca bieżący czas Weekday zwraca dzień tygodnia z daty Elementy programowania

Funkcje tekstowe Chr(kodznaku) kod ASCII na znak np. Chr(10) - zwróci znak przejścia do nowej linii Val(łańcuch) zwraca wartość zawartą w łańcuchu String jako wartość numeryczną np. Val(„1615 198numer”) zwróci wartość 1615198 Str(wartość) zwraca wartość typu String reprezentującą wartość numeryczną np. Str(459)  zwróci wartość tekstową „459” LCase(łańcuch) konwertuje łańcuch (tekst) na małe litery np. LCase(„Jasio IDZIE do kina na 18”) – zwróci tekst „jasio idzie do kina na 18”

Elementy programowania Funkcje tekstowe cd. UCase(łańcuch) konwertuje łańcuch (tekst) na duże litery Len(łańcuch) zwraca długość łańcucha LTrim(łańcuch) usuwa początkowe spacje RTrim(łańcuch) usuwa końcowe spacje Trim(łańcuch) usuwa początkowe i końcowe spacje np. RTrim("    - tekst -    ") zwróci wartość "    - tekst -" Elementy programowania

Funkcje wejścia-wyjścia MsgBox wyświetla okno komunikatu InputBox wyświetla okno wprowadzania danych Dir[(ŚcieżkaDostępu [, Atrybuty])] zwraca nazwę szukanego pliku lub folderu FileLen(ŚcieżkaDoPliku) zwraca rozmiar pliku Elementy programowania

Funkcje konwersji danych CBool(wyrażenie) konwertuje wyrażenie do typu Boolean CByte(wyrażenie) konwertuje wyrażenie do typu Byte CCur(wyrażenie) konwertuje wyrażenie do typu Currency CInt(wyrażenie) konwertuje wyrażenie do typu Integer CLng(wyrażenie) konwertuje wyrażenie do typu Long CSng(wyrażenie) konwertuje wyrażenie do typu Single CStr(wyrażenie) konwertuje wyrażenie do typu String

Funkcje testujące dane IIf(wyrażenie, GdyTrue, GdyFalse) zwraca jedną z dwóch wartości w zależności od wartości podanego wyrażenia IsDate(wyrażenie) zwraca wartość typu Boolean, określającą czy badane wyrażenie może być konwertowane do typu Data IsNumeric(wyrażenie) zwraca wartość typu Boolean, określającą czy badane wyrażenie może być konwertowane na liczbę IsEmpty(wyrażenie) zwraca wartość typu Boolean, określającą czy badana zmienna została zainicjowana

Funkcje testujące dane IsNull(wyrażenie) zwraca wartość typu Boolean, określającą czy wyrażenie zawiera poprawne dane czy wartość Null IsMissing(NazwaArgumentu) zwraca wartość typu Boolean, określającą czy opcjonalny argument typu Variant został przekazany do procedury VarType(NazwaZmiennej) zwraca wartość typu Integer określającą typ zmiennej (dla zmiennej Integer liczbę 2, dla Single 4 itd.) TypeName(NazwaZmiennej) zwraca wartość typu String zawierającą informacje na temat zmiennej o podanej nazwie Elementy programowania

Funkcja MsgBox MsgBox(Komunikat [, Przyciski] [, Tytuł] [, PlikHelp, HelpContext]) Argument Opis Komunikat (Wymagany) Wyrażenie łańcuchowe wyświetlane jako wiadomość w oknie dialogowym. Maksymalna długość łańcucha może wynosić 1024 znaki, w zależności od szerokości używanych znaków. Jeżeli łańcuch ten zawiera więcej niż jedną linię, można oddzielać je używając znaków powrotu karetki (Chr(13)) i podziału linii (Chr(10)), lub połączenia (Chr(10) & Chr(13)), pomiędzy poszczególnymi liniami. Przyciski (Opcjonalny) Wyrażenie numeryczne , które jest sumą wartości (lub stałych VB) określających numer i typ przycisków, które mają być wyświetlane, styl wyświetlanej ikony i modalność okna wiadomości. Jeżeli zostanie ominięty przyjmowana jest domyślna wartość 0.

Elementy programowania Funkcja MsgBox Argument Opis Tytuł (Opcjonalny) Wyrażenie łańcuchowe wyświetlane na pasku tytułowym okna dialogowego. Jeżeli zostanie pominięty, na pasku tytułowym zostanie wyświetlona nazwa aplikacji. PlikHelp (Opcjonalny) Wyrażenie łańcuchowe określające plik pomocy (Help), który ma być użyty do przeszukiwania pomocy kontekstowej dla okna dialogowego. Jeżeli zostanie wprowadzona nazwa pliku pomocy, musi zostać wprowadzony argument HelpContext. HelpContext (Opcjonalny). Wyrażenie numeryczne określające numer kontekstowy skojarzony z tematem pomocy przez autora pomocy. Jeżeli argument ten zostanie określony, musi zostać określony argument PlikPomocy. Elementy programowania

Argument Przyciski funkcji MsgBox Stała Wartość Opis vbOKOnly Wyświetla tylko przycisk OK. vbOKCancel 1 Wyświetla przyciski OK i Anuluj vbAbortRetryIgnore 2 Wyświetla przyciski Przerwij, Ponów próbę i Zignoruj vbYesNoCancel 3 Wyświetla przyciski Tak, Nie i Anuluj vbYesNo 4 Wyświetla przyciski Tak i Nie vbRetryCancel 5 Wyświetla przyciski Ponów próbę i Anuluj

Argument Przyciski funkcji MsgBox Stała Wartość Opis ikon vbCritical 16 Wyświetla ikonę wiadomości krytycznej vbQuestion 32 Wyświetla ikonę pytania vbExclamation 48 Wyświetla ikonę wiadomości ostrzegawczej (wykrzyknik) vbInformation 64 Wyświetla ikonę Komunikat informacyjny Elementy programowania

Argument Przyciski funkcji MsgBox Stała Wartość Opis vbDefaultButton1 Pierwszy przycisk jest domyślny vbDefaultButton2 256 Drugi przycisk jest domyślny vbDefaultButton3 512 Trzeci przycisk jest domyślny vbDefaultButton4 768 Czwarty przycisk jest domyślny

Argument Przyciski funkcji MsgBox Stała Wartość Opis vbApplicationModal Okno modalne dla aplikacji, użytkownik musi zareagować na wiadomość vbSystemModal 4096 Okno modalne dla systemu, wszystkie aplikacje są zawieszone dopóki użytkownik nie zareaguje na wiadomość vbMsgBoxHelpButton 16384 Wyświetla przycisk Pomoc VbMsgBoxSetForeground 65536 Okno wiadomości będzie oknem na wierzchu vbMsgBoxRight 524288 Tekst jest wyrównany do prawej Elementy programowania

Wartości i stałe zwracane przez funkcję MsgBox Stała Wartość Opis vbOK 1 OK vbCancel 2 Anuluj vbAbort 3 Przerwij vbRetry 4 Ponów próbę vbIgnore 5 Zignoruj vbYes 6 Tak vbNo 7 Nie Elementy programowania

Przykład funkcji MsgBox Dim Wcisniety As Variant Wcisniety = MsgBox("Czy chcesz kontynuowac?", vbYesNo+vbCritical+vbDefaultButton2, "Pytanie", "DEMO.HLP", 10) Elementy programowania

Funkcja InputBox InputBox(Pytanie [, Tytuł] [, DomyślnyTekst] [, XPos] [, YPos] [,PlikPomocy, HelpContext]) Argument Opis Pytanie (Wymagany) Wyrażenie łańcuchowe wyświetlane jako wiadomość w oknie dialogowym. Maksymalna długość łańcucha może wynosić 1024 znaki, w zależności od szerokości używanych znaków. Jeżeli łańcuch ten zawiera więcej niż jedną linię, można oddzielać je używając znaków powrotu karetki Chr(13) i podziału linii Chr(10) Tytuł (Opcjonalny) Wyrażenie łańcuchowe wyświetlane na pasku tytułowym okna dialogowego. Jeżeli zostanie pominięty, na pasku tytułowym zostanie wyświetlona nazwa aplikacji

Argumenty funkcji InputBox Opis DomyślnyTekst (Opcjonalny) Wyrażenie łańcuchowe wyświetlane w oknie wprowadzania danych jako domyślna odpowiedź, jeżeli nie zostanie wprowadzony inny tekst. Jeżeli zostanie ominięty, okno wprowadzania danych zostanie wyświetlone puste. XPos (Opcjonalny) Wyrażenie numeryczne określające, w jednostach zwanych „twips”, poziomą odległość między lewym brzegiem okna dialogowego, a lewym brzegiem ekranu. Jeżeli zostanie pominięty, okno dialogowe zostaje wycentrowane poziomo. YPos (Opcjonalny) Wyrażenie numeryczne określające, w jednostkach zwanych „twips”, pionową odległość między górnym brzegiem okna dialogowego, a górą ekranu. Jeżeli zostanie pominięty, okno dialogowe zostaje umieszczone na 1/3 wysokości.

Argumenty funkcji InputBox Opis PlikPomocy (Opcjonalny) Wyrażenie łańcuchowe określające plik pomocy (Help), który ma być użyty do przeszukiwania pomocy kontekstowej dla okna dialogowego. Jeżeli zostanie wprowadzona nazwa pliku pomocy, musi zostać wprowadzony argument HelpContext. HelpContext (Opcjonalny). Wyrażenie numeryczne określające numer kontekstowy skojarzony z tematem pomocy przez autora pomocy. Jeżeli argument ten zostanie określony, musi zostać określony argument PlikPomocy. Elementy programowania

Przykład użycia funkcji InputBox Dim Liczba, Tekst As Variant Liczba = InputBox("Wprowadz liczbe", "Okno wprowadzania", "1") Tekst = InputBox("Wpisz tekst", , , 100, 100, "DEMO.HLP", 10)

Elementy programowania Listy i tablice w VBA definicja przykłady: jednowymiarowa: Miasto(3) 2-wymiarowa: Wymiana(4,3) Miasto(1) Warszawa Miasto(2) Poznań Miasto(3) Kraków Kanada 1CAD 2.5269 Szwajcaria 1CHF 2.4357 USA 1USD 2.9758 W. Brytania 1GBP 5.7363 Elementy programowania

Deklarowanie tablicy Dim NazwaTablicy (wymiar) As TypDanych np. Dim DniTyg(7) As String Dim Miasto(3) As String Dim Wymiana(4,3) As Variant deklaracje tablic jednowymiarowych deklaracja tablicy dwuwymiarowej

Tablice - indeksowanie UWAGA! VBA ustawia indeks tablicy od 0, stąd tablica zadeklarowana: Dim Miasto(3) As String ma 4 elementy a nie 3! aby uniknąć indeksowania od 0 można: podać górną i dolną granicę wymiaru: Dim Miasto(1 To 3) As String Dim Tabela (5 To 15) w polu deklaracji General (lub w Module) wpisać instrukcję Option Base 1 Elementy programowania

Elementy programowania Tablice Przykład, jak można odnieść się do elementu tablicy w kodzie: Miasto (1) = „Warszawa” ‘ Ta instrukcja ustawia 1-szy (lub 2-gi) element tablicy Miasto na wartość Warszawa Tabela (3) = 28759 ‘ Ta instrukcja ustawia 3-ci (lub 4-ty) element tablicy Tabela na wartość 28759 Elementy programowania

Tablice statyczne i dynamiczne statyczne – tablice o z góry zadeklarowanym wymiarze, dynamiczne – wymiar może ulegać wielokrotnym zmianom w trakcie wykonywania programu (wymiar takiej tablicy nie jest określany), Elementy programowania

Deklaracja tablicy dynamicznej Dim NazwaTablicy () As TypDanych po czym po określeniu, która zmienna przechowuje wymiar, ponownie w kodzie definiujemy tablicę następująco: ReDim NazwaTablicy (zmienna) As TypDanych lub ReDim NazwaTablicy (Wymiary) [As Typ] [, NazwaTablicy (Wymiary) [As Typ]]... Elementy programowania

Przykłady deklaracji tablic dynamicznych Dim TablicaDynamiczna ()    'deklaracja tablicy dynamicznej ReDim TablicaDynamiczna (10)    'ustalenie rozmiarów tablicy ... ReDim TablicaDynamiczna (15)    'zmiana rozmiarów tablicy Elementy programowania

Przykład tablicy dynamicznej Sub tablice_dynamiczne() Dim licznik As Integer Dim zbior() As Integer ‘ deklaracja tablicy k = CSng(InputBox("Podaj rozmiar")) ReDim zbior(k) ‘ ustalenie rozmiaru tablicy For licznik = 1 To k zbior(licznik) = licznik + 1 MsgBox (licznik & " element tablicy wynosi: " & zbior(licznik)) Next licznik End Sub procedura wpisuje do tablicy o rozmiarze k elementy o wartości k +1 Elementy programowania

Elementy programowania Funkcje dla tablic tablicami można manipulować za pomocą następujących funkcji: Array, IsArray, Erase, LBound, UBound. Elementy programowania

Elementy programowania Funkcja Array umożliwia utworzenie tablicy w trakcie wykonywania kodu procedury bez konieczności deklarowania tablicy, funkcja zwraca zawsze tablicę dynamiczną typu Variant, składnia funkcji: Array(ListaArgumentów), argument ListaArgumentów jest wymagany, jest to lista wartości, oddzielonych od siebie przecinkami, które mają wypełnić tablicę; jeżeli nie zostanie podana lista argumentów zostanie stworzona tablica o zerowej długości. Elementy programowania

Przykład użycia funkcji Array Sub tablice_array() Dim auto As Variant auto = Array("Ford", "Czarny", "1999") MsgBox auto(2) & " " & auto(1) & " " & auto(3) auto(2) = "4-drzwiowy" End Sub Elementy programowania

Elementy programowania Funkcja IsArray sprawdza, czy dana zmienna jest tablicą, zwraca wartość logiczną True, jeśli zmienna jest tablicą (False, gdy nie jest), składania funkcji: IsArray(NazwaZmiennej) Elementy programowania

Przykład użycia funkcji IsArray Sub tablice_isarray() Dim KolejneLiczby() ‘ deklaracja tablicy dynamicznej Dim IloscLiczb As Integer Dim licznik As Integer IloscLiczb = InputBox("Podaj ile elementów ma mieć tablica liczb") ReDim KolejneLiczby(1 To IloscLiczb) ‘ ustalenie rozmiaru tablicy For licznik = 1 To IloscLiczb KolejneLiczby(licznik) = licznik MsgBox ("Element tablicy to: " & KolejneLiczby(licznik)) Next licznik If IsArray(KolejneLiczby) Then MsgBox "Zmienna KolejneLiczby jest tablicą" MsgBox ("Tablica ma " & IloscLiczb & " elementy(-ów).") End If End Sub

Elementy programowania Funkcja Erase służy do usuwania danych z tablicy, dla tablic dynamicznych po usunięciu danych zwalnia pamięć przeznaczoną do przechowywania elementów tablicy, dla tablic statycznych: gdy elementami były wartości liczbowe – ustawia wartość każdego elementu na zero, gdy elementy były łańcuchowe - ustawia każdy element na łańcuch o zerowej długości (""), gdy elementy były łańcuchowe ale o stałej długości – ustawia każdy element na zero, składania funkcji: Erase (ListaTablic) Elementy programowania

Przykład użycia funkcji Erase Sub funkcja_erase() Dim TablicaLiczb(10) As Integer Dim TablicaLancuchow(10) As String Dim TablicaLancuchow10Znakowych(10) As String * 10 Dim TablicaDynamiczna() As Integer ReDim TablicaDynamiczna(10) 'ustalenie rozmiaru tablicy dynamicznej Erase TablicaLiczb 'Każdy element ustawia na 0 Erase TablicaLancuchow 'Każdy element ustawia na 'zerowej długości łańcuch ("") Erase TablicaLancuchow10Znakowych 'Każdy element ustawia na 0 Erase TablicaDynamiczna 'zwalnia pamięć używaną przez tablicę End Sub

Funkcje LBound i Ubound funkcje zwracają liczby całkowite typu Long odpowiadające dolnemu i górnemu zakresowi wymiaru tablicy, składnie funkcji: LBound(NazwaTablicy [,NumerWymiaru]) UBound(NazwaTablicy [,NumerWymiaru]) argument NumerWymiaru jest opcjonalną wartością typu Long, wartość ta określa numer wymiaru tablicy, którego górny zakres ma być zwrócony; wymiary numerowane są od 1; jeżeli argument ten nie wystąpi w wywołaniu funkcji zostanie przyjęta domyślna wartość 1,

Przykład funkcji LBound i UBound Sub funkcje_tabl() Dim TablicaTo(1 To 10, -3 To 8, 30 To 105) As Variant Dim Tablica(20) As Variant Dim DolnyZakres As Variant Dim GornyZakres As Variant DolnyZakres = LBound(TablicaTo, 1) 'DolnyZakres=1 DolnyZakres = LBound(TablicaTo, 2) 'DolnyZakres=-3 DolnyZakres = LBound(TablicaTo, 3) 'DolnyZakres=30 DolnyZakres = LBound(Tablica) 'DolnyZakres=0 lub 1 w zależności od 'ustawień OptionBase GornyZakres = UBound(TablicaTo, 1) 'GornyZakres=10 GornyZakres = UBound(TablicaTo, 2) 'GornyZakres=8 GornyZakres = UBound(TablicaTo, 3) 'GornyZakres=105 GornyZakres = UBound(Tablica) 'GornyZakres=20 End Sub