Algorytmika i Programowanie VBA 1 - podstawy



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

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

Visual Basic for Application (VBA)

PROGRAMOWANIE MAKR W PROGRAMIE EXCEL W JĘZYKU VISUAL BASIC

Wprowadzenie do programowania w VBA

Visual Basic for Application (VBA)

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

1 Podstawy c++ w pigułce.

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

LibreOffice Calc VBA

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

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

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Visual Basic for Application (VBA)

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

Automatyzacja pracy w AutoCAD

Wstęp do programowania

ForPascal Interpreter języka Pascal

Programowanie komputerowe. Zajęcia 1

MATERIAŁY DO ZAJĘĆ II

1 Podstawy c++ w pigułce.

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

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

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

Pascal - wprowadzenie

Zmienne, stałe i operatory

Programowanie Delphi obliczenia, schematy blokowe

Języki programowania zasady ich tworzenia

Temat 1: Podstawowe pojęcia: program, kompilacja, kod

Visual Basic for Applications. Wstęp

PROGRAMOWANIE MAKR W PROGRAMIE EXCEL W JĘZYKU VISUAL BASIC

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

JAVAScript w dokumentach HTML (1)

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

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

ZMIENNE. Podstawy PHP

Technologia informacyjna programowanie Janusz Uriasz

Cw.12 JAVAScript w dokumentach HTML

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

Kiedy i czy konieczne?

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

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

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

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

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

Wprowadzenie do Scilab: podstawy języka Scilab

Wprowadzenie do języka Pascal

operator zmiany znaku operatory mnożenia, dzielenia, dzielenia modulo operatory dodawania, odejmowania

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

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

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

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

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

Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 7 WSTĘP DO INFORMATYKI

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};

Wstęp do informatyki- wykład 5 Instrukcja selekcji if-else Operatory arytmetyczne i logiczne

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 2. Karol Tarnowski A-1 p.

Instrukcja standardowa Writeln

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

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Język ludzki kod maszynowy

Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy. Wykład 2. Karol Tarnowski A-1 p.

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

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

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

Bloki anonimowe w PL/SQL

Języki skryptowe w programie Plans

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

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Programowanie C++ Wykład 2 - podstawy języka C++ dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

Elementy języków programowania

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

VBA praca z makrami w Excelu

Odczyt danych z klawiatury Operatory w Javie

Programowanie w języku C++ Grażyna Koba

Podstawy i języki programowania

Programowanie strukturalne i obiektowe

Warunki logiczne instrukcja if

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

Aplikacje w środowisku VBA. Visual Basic for Aplications

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

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

Podstawy programowania C. dr. Krystyna Łapin

Podstawy informatyki

Programowanie w języku Python. Grażyna Koba

Visual Basic dla Aplikacji

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

Struktura pliku projektu Console Application

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

Podstawy programowania w języku C i C++

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

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

2 Przygotował: mgr inż. Maciej Lasota

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

Język programowania DELPHI / Andrzej Marciniak. Poznań, Spis treści

JAVA?? to proste!! Autor: wojtekb111111

Mikrokontroler ATmega32. Język symboliczny

Programowanie obiektowe

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

Transkrypt:

Algorytmika i Programowanie VBA 1 - podstawy Tomasz Sokół ZZI, IL, PW Czas START uruchamianie środowiska VBA w Excelu Alt-F11 lub Narzędzia / Makra / Edytor Visual Basic konfiguracja środowiska VBA przy pierwszym uruchomieniu należy wymusić jawne deklaracje zmiennych menu Tools / Options... Option Explicit wstawianie modułów menu Insert / Module kody swoich programów piszemy tylko w modułach!!! 1

Program program to ciąg instrukcji podany w odpowiedniej kolejności (algorytm), instrukcje mogą być grupowane w jednym lub kilku podprogramach instrukcje dzielimy na: instrukcje wykonywalne deklaracje / definicje oprócz instrukcji program może też zawierać komentarze i specjalne dyrektywy kompilatora w VBA komentarz zaczyna się znakiem apostrofu ' i wszystkie znaki po nim do końca danej linii są ignorowane przez kompilator (służą tylko programiście) Program w VBA w VBA programem może być dowolna bezparametrowa procedura Sub Nazwa() 'kod programu End Sub uruchamianie programu może odbywać się: z poziomu Excela (Alt-F8) lub z poziomu edytora VBA (F5) uwaga: w VBA można też uruchamiać programy w trybie debugowania (krokowo), posługując się klawiszem F8 2

Deklaracje zmiennych Dim Nazwa_Zmiennej As Typ Dim i As to słowa kluczowe deklaracji deklaracje mogą być w dowolnym miejscu programu, ale przed użyciem zmiennej!!! deklaracje można grupować w jednej linii, ale typ każdej zmiennej należy w VBA definiować niezależnie!!! Dim x1, x2, x3 As Double (tu x1 i x2 przyjmą domyślny typ Variant) Dim x1 as Double, x2 as Double,... (tak jest OK) Typ określa rodzaj możliwych do przechowywania danych liczbowe, logiczne, łańcuchy znakowe, itp Nazwa_Zmiennej to unikalny identyfikator określany przez programistę Nazwy zmiennych Nazwa zmiennej to unikalny identyfikator nie może kolidować z innymi nazwami używanymi w programie (a ściślej w zakresie widzialności) zmienne, procedury, funkcje, obiekty, predefiniowane typy danych (Double, Integer,...) słowa kluczowe (zarezerwowane identyfikatory składniowe języka), m.in. Sub, Dim, End, If, Then, Else,... składa się z ciągu liter, cyfr i znaku podkreślenia _, a pierwszy znak musi być literą, nie może zawierać znaków specjalnych, interpunkcyjnych, spacji, itp., nie powinno się też używać znaków narodowych (ąćęłńóśżź) w VBA duże i małe litery nie są rozróżniane MojaZmienna == MOJAzmienna == mojazmienna ==... 3

Podstawowe typy danych Boolean Byte Integer Long Single Double String Variant logiczny mała liczba całkowita liczba całkowita 16-bit liczba całkowita 32-bit liczba rzeczywista liczba rzeczywista łańcuchy znakowe uniwersalny True, False 0..255-32768..32767-2 31..2 31-1 ok. 7 cyfr znacz. 15 cyfr znaczących "napis" Wyrażenia i operatory Formalnie wyrażenie to: Zmienna, Stała lub Funkcja() Oper1 Wyrażenie (operator jednoargumentowy) Wyr_AOper2 Wyr_B (operator dwuargumentowy) (Wyrażenie) grupowanie wyrażeń w nawiasach () Wyrażenia/operatory dzielimy na: arytmetyczne działania na liczbach +-*/... konkatenacji łączenie (sklejanie) łańcuchów znakowych porównania sprawdzanie: mniejsze, równe, logiczne zdania logiczne: negacja, alternatywa,... Istotną rolę odgrywają priorytet operatorów i automatyczne konwersje typów danych 4

Operatory arytmetyczne Wg priorytetu ^ potęgowanie negacja (jednoargumentowy) */ mnożenie i dzielenie \ dzielenie całkowitoliczbowe Mod reszta z dzielenia (całkowitego) + dodawanie i odejmowanie Przykłady: a + b * c ^ d == a + (b * (c ^ d)) uwaga: 1 / a*b == (1/a) * b == b / a (gdyż * ma taki sam priorytet jak /) w wątpliwych sytuacjach używaj nawiasów 1 / (a*b) lub 1 / a / b Pozostałe operatory (również wg priorytetu cd.) & konkatenacja: "abc" & "xyz" = "abcxyz" operatory porównania: =, <>, <, >, <=, >= operatory logiczne: Not negacja (jednoargumentowy) And koniunkcja Or alternatywa Xor, Eqv, Imp Uwagi: domyślną kolejność operacji możemy zmienić stosując nawiasy () należy unikać budowania zbyt złożonych wyrażeń, czytelniejsze i efektywniejsze może być składanie podwyrażeń w kolejnych instrukcjach przypisania!!! 5

Funkcje matematyczne standardowy zestaw funkcji wbudowanych w VBA jest bardzo skromny!!! wykaz dostępnych funkcji można znaleźć w helpie lub poprzez kwalifikator Math (obiekt), np. Math.Sin(x) można go poszerzyć pisząc własne funkcje, np. Log2(x) = Ln(x) / Ln(2) lepiej jednak skorzystać z funkcji wbudowanych w Excela, za pośrednictwem obiektu WorksheetFunction, np. WorksheetFunction.Asinh(x) Area Sinus Hiperboliczny WorksheetFunction.Pi() liczba π WorksheetFunction.Log(x,2) logarytm o podstawie 2 Instrukcje - podział instrukcja przypisania: Zmienna = Wyrażenie instrukcje sterujące warunkowe (If..Then..Else..) pętli (For..Next, Do...Loop) skoku (GoTo, Exit For/Do/Sub/...) instrukcja wywołania procedury [Call] Nazwa_Proc Par1, Par2,... uwaga: w VBA parametry procedury podajemy bez nawiasów, natomiast przy wywoływaniu funkcji parametry podajemy w nawiasach, np. Sin(x), ale MsgBox "Komunikat" 6

Instrukcja If...Then...Else If...Then...Else to podstawowa instrukcja sterująca, umożliwia rozwidlanie algorytmu w zależności od spełnienia (bądź nie) badanego warunku logicznego składnia If ma dwie postaci: jednowierszową blokową w danym If'ie wykonywana jest tylko jedna gałąź instrukcji gdy kolejne warunki logiczne się zawierają sprawdzany jest tylko pierwszy!!! If "jednowierszowy" If WarLog Then Instrukcja1 [Else Instrukcja2] Instrukcja1 jest wykonywana gdy spełniony jest warunek logiczny WarLog, w przeciwnym wypadku wykonywana jest Instrukcja2 (jeśli ją podano) tą postać If'a należy stosować tylko w wyjątkowych przypadkach (jedna instrukcja) i z dużą rozwagą pomimo, że VBA dopuszcza grupowanie instrukcji w jednym wierszu (poprzez operator dwukropka :) to należy tego bezwzględnie unikać, np. If x > 0 Then a = 1 : b = 2 Else a = 2 : b = 1 formalnie poprawnie, ale lepszy jest tu If blokowy 7

If blokowy If WarLog Then ciąg instrukcji 1 [ElseIf WarLog2 Then ciąg instrukcji 2]... [Else ciąg instrukcji "else"] End If blok główny (wymagany) blok opcjonalny ElseIf może ich być więcej niż 1 opcjonalny blok Else wykonywany tylko wtedy gdy żaden z podanych wyżej warunków nie był spełniony obejmuje wszystkie "pozostałe przypadki" 8