Visual Basic for Application (VBA)

Podobne dokumenty
Visual Basic for Application (VBA)

Visual Basic for Application (VBA)

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 w języku Visual Basic dla Aplikacji (VBA)

Algorytmika i Programowanie VBA 1 - podstawy

Wprowadzenie do programowania w VBA

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

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

LibreOffice Calc VBA

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

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

Odczyt danych z klawiatury Operatory w Javie

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

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

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

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Pętle instrukcje powtórzeo

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

PROGRAMOWANIE MAKR W PROGRAMIE EXCEL W JĘZYKU VISUAL BASIC

Technologia informacyjna programowanie Janusz Uriasz

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

PROGRAMOWANIE MAKR W PROGRAMIE EXCEL W JĘZYKU VISUAL BASIC

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

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

Visual Basic for Applications. Wstęp

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

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

Kiedy i czy konieczne?

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

Cw.12 JAVAScript w dokumentach HTML

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++

Automatyzacja pracy w AutoCAD

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

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

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

C++ wprowadzanie zmiennych

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

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

Podstawy programowania w języku C

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Pascal - wprowadzenie

PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy.

Podstawy programowania C. dr. Krystyna Łapin

Programowanie komputerowe. Zajęcia 1

Proste programy w C++ zadania

Maxima i Visual Basic w Excelu

Rozwiązywanie równań nieliniowych

Visual Basic dla AutoCAD

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ć

Podstawy programowania w języku C i C++

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

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

Utworzenie funkcji użytkownika w Visual Basic

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

Algorytmy i struktury danych

Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe

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

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

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

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

Pascal typy danych. Typy pascalowe. Zmienna i typ. Podział typów danych:

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

Wstęp do Informatyki i Programowania (kierunek matematyka stosowana)

Podstawy informatyki

Podstawy i języki programowania

dr inż. Jarosław Forenc

Struktura pliku projektu Console Application

Technologie informacyjne

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

Arkusze kalkulacyjne i VBA

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

Programowanie Delphi obliczenia, schematy blokowe

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

2 Przygotował: mgr inż. Maciej Lasota

a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] a[10]

typ zakres sposob zapamietania shortint integer bajty (z bitem znaku) longint byte word

Obsługa blędów i zewnętrznych plików

1 Powtórzenie wiadomości

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

Informatyka 1. Wyrażenia i instrukcje, złożoność obliczeniowa

Instrukcja standardowa Writeln

Podstawowe typy zmiennych

VISUAL BASIC W EXCELU

Schematy blokowe I. 1. Dostępne bloki: 2. Prosty program drukujący tekst.

Podstawy Informatyki. Kompilacja. Historia. Metalurgia, I rok. Kompilatory C++ Pierwszy program. Dyrektywy preprocesora. Darmowe:

Visual Basic dla Aplikacji

ForPascal Interpreter języka Pascal

Języki skryptowe w programie Plans

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

Technologie informacyjne: Excel i VBA

Podstawy Informatyki. Metalurgia, I rok. Wykład 6 Krótki kurs C++

MATERIAŁY DO ZAJĘĆ II

Podstawy Programowania C++

Powtórka algorytmów. Wprowadzenie do języka Java.

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

Powtórka algorytmów. Wprowadzenie do języka Java.

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

Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja cz. 1

Transkrypt:

Visual Basic for Application (VBA) http://dzono4.w.interia.pl Książka Visual Basic dla aplikacji w Office XP PL, autorzy: Edward C. Willett i Steve Cummings, Wyd. Helion http://www.mielk.pl/pl/kursy/kursy.php

Typy zmiennych Różne dane różnie zapisywane w pamięci. Rodzaj danej = typ danej. Typ określa: zakres wartości, np. zmienna typu Integer od -32,768 do 32,767, zmienna typu Boolean tylko wartości True lub False wielkośd pamięci zajmowanej przez zmienną, np. zmienna typu Integer 2 bajty, a zmienna typu Single 4 bajty

Typy zmiennych cd. strukturę zajętego przez zmienną obszaru pamięci, np. gdy zmienna typu Byte ma wartośd 137 1 0 0 0 1 0 0 1 a gdy zmienna A jest typu tablicowego Dim A (10) As Byte A 1 A 2 A 3 A 4 A 5 A 6 A 7 A 8 A 9 A 10 gdzie każde A i na 8 bitach zbiór możliwych operacji

Typy zmiennych cd. Przykład: Zmienna, przechowywana w pamięci jako sekwencja bitów 0 1 0 0 1 1 1 1, reprezentuje: - literę O (kod ASCII 79), gdy zmienna została zadeklarowana jako zmienna znakowa (String) - liczbę 79, gdy zmienna została zadeklarowana jako zmienna liczbowa (np. Integer lub Byte). Czyli: typ danej = sposób interpretacji przez program

Przykład 1: program pyta o imię i nazwisko i wita Sub Powitanie() Imie = InputBox("Jak masz na imię?") 'f-cja Wejścia InputBox pozwala wczytywad dane w oknie dialogowym i zwraca domyślnie wartośd typu string nazwisko = InputBox("Jakie jest Twoje nazwisko?") MsgBox "Cześd, " & Imie & " " & nazwisko & "!!!" 'fcja Wyjścia MsgBox służy do wyprowadzenia komunikatów o wynikach End Sub

Przykład 2: program dodaje dwie liczby Sub Dodawanie() 'Dim c As Integer 'Dim a As Integer 'Dim b As Integer a = InputBox("Podaj liczbę całkowitą:") / 7 b = InputBox("Podaj liczbę całkowitą:") / 13 c = a + b MsgBox "Suma " & a & +" & b & "=" & c / 20? End Sub

Typ Danych Zawartość Wielkość pamięci Zakres Byte całkowita 1 bajt 0 do 255 Boolean całkowita 2 bajty True lub False Integer całkowita 2 bajty Long całkowita 4 bajty -32 768 do 32 767 2 147 483 648 do 2 147 483 647

Typ Danych Single Double Zawartość liczba zmiennopozycyjna liczba zmiennopozycyjna Wielkość pamięci 4 bajty 8 bajtów Zakres Ujemne: 3.402823E38 do -1.401298E-45 Dodatnie: 1.401298E-45 do 3.402823E38 Ujemne: 0.79769313486 232E308 do - 4.94065645841 247E-324 Dodatnie: 4.94065645841 247E-324 do 1.79769313486

Operatory Visual Basic Operatory arytmetyczne ^ Operator potęgowania 1 - Operator negacji 2 * Operator mnożenia 3 / Operator dzielenia 3 Operator dzielenia \ całkowitego 4 Mod Operator modulo 5 + Operator dodawania 6 - Operator odejmowania 6

Operatory porównania < Operator mniejszości <= Operator mniejszości lub równości > Operator większości >= Operator większości lub równości = Operator równości <> Operator różności

Operatory łaocuchowe + Operator dodawania & Operator konkatenacji Operatory logiczne Not And Or Operator negacji Operator iloczynu logicznego, koniunkcji Operator sumy logicznej, alternatywy

Instrukcja przypisania. ZMIENNA liczba napis coś innego Przypisywanie wartości zmiennej: L=P (L:=P, LET L=P) Uwaga! Po podstawieniu pod lewą stronę stara wartość zmiennej bezpowrotnie znika!

Przykład 1: Licznik wierszy Sub licznik() program wpisze w kolejne wiersze pierwszej kolumny arkusza kolejne liczby naturalne Cells.Clear instrukcja czyści wszystkie komórki w danym arkuszu Excela i = 1 Cells(1, 1) = "Kolejne wartości i:" instrukcja cells(w,k) oznacza zawartośd komórki w arkuszu Excela, na skrzyżowaniu w-tego wiersza i k-tej kolumny Do Until i = 11 Cells(i + 1, 1) = i i = i + 1 Loop End Sub

Przykład 2: Zamiana zmiennych miejscami x Zwykłe: x=y y=x y Spowoduje inny skutek. Jaki? Dlatego potrzebna jest zmienna pomocnicza, która przez chwilę przechowa wartośd jednej zmiennej

Sub zamieo() Instrukcja przypisania - przykłady x = InputBox("x=") y = InputBox("y=") zp = x x = y y = zp End Sub W tym miejscu zapamiętujemy wejściową wartośd zmiennej x w komórce pomocniczej W tym miejscu odzyskujemy starą wartośd x

Przykład 3: Zmienne boolowskie Sub zm_boolowskie() Dim x As Single Dim y As Single Dim por As Boolean deklarujemy por jako zmienną logiczną x = InputBox("x=") y = InputBox("y=") por = x > y MsgBox "por=" & por tu powinna się wyświetlid wartośd True lub False End Sub

Instrukcje warunkowe If Then - najprostsza instrukcja wyboru Składnia instrukcji If: If Warunek Then Blok instrukcji VB wykonywany gdy warunek jest prawdziwy End If Uproszczona składnia instrukcji If: If Warunek Then Instrukcja1 VB [: Instrukcja2 VB [:... [: InstrukcjaN VB]...]]

Instrukcja warunkowa - If Then TAK Warunek? NIE Instr_1 Instr_2

Instrukcje warunkowe If... Then Else Składnia instrukcji If... Then Else: If Warunek Then Blok instrukcji VB wykonywany gdy warunek jest prawdziwy Else Blok instrukcji VB wykonywany gdy warunek nie jest prawdziwy End If

Instrukcja warunkowa - If Then Else TAK Warunek? NIE Instrukcja_1 Instrukcja_2 Instrukcja_3

Instrukcje warunkowe If... ElseIf zagnieżdżanie warunków Składnia instrukcji If...ElseIf: If Warunek1 Then Blok instrukcji VB wykonywany gdy Warunek1 jest prawdziwy ElseIf Warunek2 Then Blok instrukcji VB wykonywany gdy Warunek1 nie jest prawdziwy a Warunek2 jest prawdziwy [ElseIf Warunek3 Then Blok instrukcji VB wykonywany gdy Warunek1 i Warunek2 nie są prawdziwe a Warunek3 jest prawdziwy... [ElseIf WarunekN Then Blok instrukcji VB wykonywany gdy Warunki od 1 do (N-1) nie są prawdziwe a WarunekN jest prawdziwy ]...] [Else Blok instrukcji VB wykonywany gdy żaden z Warunków od 1 do N nie jest prawdziwy ] End If

Przykład użycia instrukcji If...ElseIf: If (intzysk>3200) Then intpodatek=20 intwiadomosc=msgbox("musisz zapłacid olbrzymi podatek") ElseIf (intzysk>2700) Then intpodatek=16 intwiadomosc=msgbox("musisz zapłacid 16% podatku") ElseIf (intzysk>1400) Then intpodatek=7 intwiadomosc=msgbox("musisz zapłacid 7% podatku") ElseIf (intzysk>600) Then intpodatek=4 intwiadomosc=msgbox("masz mało ale i tak pład!") ElseIf (blnpracuje=false) Then intwiadomosc=msgbox("chyba jesteś na czyimś utrzymaniu...") Else intpodatek=0 intwiadomosc=msgbox("z czego Ty żyjesz?") End If

Przykład 1: Program wczytuje dowolną liczbę rzeczywistą i podaje jej odwrotnośd lub podaje komunikat, że się nie da. Sub dziel() Dim x As Single Dim y As Single Dim war As Boolean zmienna war jest zmienną logiczną i może przyjmowad tylko wartośd True lub False x = InputBox("Podaj dowolną liczbę:") war = x <> 0 If war Then MsgBox "Odwrotnośd liczby " & x & " wynosi " & 1 / x Else MsgBox "Dielenie przez 0 niewykonalne" End If End Sub

Przykład 2: Proste funkcje opis funkcji Function mabs(x) As Single nagłówek fcji z jej nazwą i parametrem formalnym x If x >= 0 Then mabs = x podstawienie wartości pod nazwę fcji Else mabs = -x End If End Function Function msign(x) As Integer nagłówek fcji Dim y As Single If x >= 0 Then y = 1 Else y = -1 End If msign = y podstawienie wartości pod nazwę fcji End Function

Przykład 2: Proste funkcje wywołanie funkcji Sub Mabs_Msign() x = InputBox("x=") program wywołujący działanie funkcji MsgBox "Wartośd bezwzględna z " & x & "=" & mabs(x) tu skok do opisu fcji MsgBox "Znak " & x & "=" & msign(x) End Sub

Przykład 3: Program znajduje minimum z 3 liczb. W tym celu powstały dwie procedury z parametrami. Zostaną one wywołane w punkcie c). a) Bez użycia zmiennych logicznych typu Boolean Sub Min_Trzy_1(a, b, c, min) nagłówek procedury z parametrami formalnymi If a < b Then If a < c Then min = a Else min = c End If Else If b < c Then min = b Else min = c End If End If End Sub

b) z użyciem zmiennych logicznych typu Boolean Sub Min_Trzy_2(a, b, c, min) Dim w1 As Boolean Dim w2 As Boolean Dim w3 As Boolean deklarujemy 3 zmienne logiczne w1 = (a < b) And (a < c) w2 = (b < a) And (b < c) w3 = (c < a) And (c < b) If w1 Then min = a If w2 Then min = b If w3 Then min = c End Sub

c) Wywołanie procedur z parametrami przy użyciu instrukcji call Sub Min_Trzy_1_2() Dim a As Integer Dim b As Integer Dim c As Integer a = InputBox("a=") b = InputBox("b=") c = InputBox("c=") Call Min_Trzy_1(a, b, c, min) wywołanie procedury z parametrami aktualnymi MsgBox "Min wg Min_Trzy_1=" & min Call Min_Trzy_2(a, b, c, min) MsgBox "Min wg Min_Trzy_2=" & min End Sub

Przykład 4: Program nalicza podatek, w zależności od dochodów, używając rozbudowanej postaci instrukcji warunkowej If...Then ElseIf. End Sub Zyski() intzysk = InputBox("Ile zarabiasz?") If (intzysk > 1200) Then intpodatek = 20 intwiadomosc = MsgBox("Musisz zapłacid olbrzymi podatek") ElseIf (intzysk > 700) Then intpodatek = 16 intwiadomosc = MsgBox("Musisz zapłacid 16% podatku") ElseIf (intzysk > 400) Then intpodatek = 7 intwiadomosc = MsgBox("Musisz zapłacid 7% podatku") ElseIf (intzysk > 200) Then intpodatek = 4 intwiadomosc = MsgBox("Masz mało ale i tak pład!") 'ElseIf (blnpracuje = False) Then 'intwiadomosc = MsgBox("Chyba jesteś na czyimś utrzymaniu...") Else intpodatek = 0 intwiadomosc = MsgBox("Z czego Ty żyjesz?") End If End Sub

Przykład 5: Obliczenia wartości funkcji rzeczywistych (w postaci klamrowej) Opis funkcji: Function f(x) As Single If x < -1 Then f = x ^ 4 + 1 ElseIf x = -1 Then f = Sin(x ^ 3 + 2) Else f = x ^ 7 - x ^ 4 End If End Function

Wywołanie funkcji dla jednego argumentu Sub WYW_FUn() x = InputBox("x=") MsgBox "Wartośd f-kcji f dla x=" & x & " wynosi " & f(x) tu następuje wywołanie funkcji przez podanie nazwy funkcji i parametru aktualnego oraz skoku do opisu fcji End Sub

Tablica wartości funkcji dla wielu argumentów: Sub tablica_fun1() Cells.Clear i = 1 Cells(1, 1) = "x" Cells(1, 3) = "f(x)" For x = -2 To 2 Step 0.1 argument fcji zmienia się od -2 do 2, z krokiem 0,1 i = i + 1 zmienna i zawiera numer kolejnego wiersza w arkuszu Excela Cells(i, 1) = x Cells(i, 3) = f(x) Next x End Sub

Sied działao START Utwórz wzór hasła Ustal adres Wprowadź hasło TAK Wyprowadź adres Czy hasło OK? NIE Wyprowadź komunikat Złe hasło! STOP

Przykład 6: Program podaje adres po wprowadzeniu prawidłowego hasła Sub Hasla1() Dim wzor_hasla As String Dim haslo As String Dim adres As String deklarujemy wszystkie zmienne jako typu String wzor_hasla = XYXY tworzenie wzoru hasła adres = Wydz. M-E, Wyb. Wyspiaoskiego 27 ustalanie adresu haslo = InputBox("Podaj haslo:") If haslo = wzor_hasla Then MsgBox "Adres:" & adres Else MsgBox "Złe hasło!" End If End Sub

Przykład 7: Program rozwiązuje równanie liniowe dla dowolnych współczynników a, b. Sub RL() Dim a As Single Dim b As Single Dim x As Single zmienne na współczynniki i rozwiązanie deklarujemy jako liczby rzeczywiste a = InputBox("a=") b = InputBox("b=") If a = 0 Then If b = 0 Then MsgBox "Nieskooczenie Wiele Rozwiązao" Else MsgBox "Równanie Sprzeczne" End If Else x = -b / a MsgBox "x=" & x End If End Sub

Przykład 8: program rozwiązuje równanie kwadratowe ax 2 +bx+c=0, dla dowolnych współczynników a, b, c oraz podaje odpowiedni komunikat, gdy równanie nie ma rozwiązania w zbiorze liczb rzeczywistych. Sub RK() Dim a As Single Dim b As Single Dim c As Single Dim x1 As Single Dim x2 As Single a = InputBox("a=") b = InputBox("b=") c = InputBox("c=") delta = b ^ 2-4 * a * c

Ciąg dalszy programu - algorytm rozwiązania If delta < 0 Then MsgBox "Brak Rozw. w R" ElseIf delta = 0 Then x1 = -b / 2 / a x2 = x1 MsgBox "Podwójny pierwiastek x1=x2=" & x1 Else x1 = (-b - Sqr(delta)) / 2 / a Sqr() funkcja zwracająca x2 = (-b + Sqr(delta)) / 2 / a wartośd pierwiastka kwadratowego MsgBox "x1=" & x1 & " x2=" & x2 End If End Sub