Visual Basic for Applications. Wstęp



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

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

Aplikacje w środowisku VBA. Visual Basic for Aplications

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

LibreOffice Calc VBA

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

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

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

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

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

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

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

Algorytmika i Programowanie VBA 1 - podstawy

Visual Basic dla AutoCAD

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

Materiały do laboratorium MS ACCESS BASIC

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

Makropolecenia w Excelu

Języki skryptowe w programie Plans

Pętle instrukcje powtórzeo

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

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

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

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

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

Działki Przygotowanie organizacyjne

Technologia informacyjna programowanie Janusz Uriasz

INSTRUKCJA SKOKU GOTO

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

Maxima i Visual Basic w Excelu

PROGRAMOWANIE MAKR W PROGRAMIE EXCEL W JĘZYKU VISUAL BASIC

Automatyzacja pracy w AutoCAD

Zajęcia: VBA TEMAT: VBA PROCEDURY NUMERYCZNE Metoda bisekcji i metoda trapezów

Wprowadzenie do programowania w VBA

Visual Basic for Application (VBA)

Visual Basic w programie Excel

PROGRAMOWANIE MAKR W PROGRAMIE EXCEL W JĘZYKU VISUAL BASIC

Bloki anonimowe w PL/SQL

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Elektroenergetyki Technologie informatyczne

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

Technologie informacyjne: Excel i VBA

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

Visual Basic for Application (VBA)

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

Użycie Visual Basic for Applications ("VBA")

1 Podstawy c++ w pigułce.

Pętle. Dodał Administrator niedziela, 14 marzec :27

Zadanie. Menu Plik niech posiada dwie pozycje: Tekstowy i Excel, a każda z nich niech posiada dwie pozycje Otwórz i Zapisz, patrz rys. 2.

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

VBA praca z makrami w Excelu

Makropolecenia w PowerPoint Spis treści

przedmiot kilka razy, wystarczy kliknąć przycisk Wyczaruj ostatni,

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

Skrypty powłoki Skrypty Najcz ciej u ywane polecenia w skryptach:

Cw.12 JAVAScript w dokumentach HTML

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

Kiedy i czy konieczne?

JAVAScript w dokumentach HTML (2)

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Visual Basic w programie Excel dla Windows

1 Podstawy c++ w pigułce.

Programowanie w języku Python. Grażyna Koba

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

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

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

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

Podstawy Programowania C++

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

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

Języki programowania zasady ich tworzenia

VBA praca z makrami w Excelu

lekcja 8a Gry komputerowe MasterMind

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.

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

Tablice, DataGridView

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

SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD

Programowanie obiektowe

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

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ć

Programowanie w Turbo Pascal

JAVAScript w dokumentach HTML - przypomnienie

Zacznij Tu! Poznaj Microsoft Visual Basic. Michael Halvorson. Przekład: Joanna Zatorska

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

Excel. Tworzenie zaawansowanych aplikacji.

JAVA W SUPER EXPRESOWEJ PIGUŁCE

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

Przedmiot: Informatyka w inżynierii produkcji Forma: Laboratorium Temat: Zadanie 4. Instrukcja warunkowa.

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

VISUAL BASIC W EXCELU

INFORMATYKA TECHNICZNA Badanie możliwości wykorzystania interfejsu automatyzacji OLE w systemie CAx

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

BAZY DANYCH Panel sterujący

Wprowadzenie do języka Java

INFORMATOR TECHNICZNY WONDERWARE. Odczytywanie danych z arkusza Excel za pomocą zapytań SQL do aplikacji InTouch

VBA ZAJĘCIA NR 7! praca z plikami (kontynuacja zajęć 6)

2.1 Funkcje - na przykładzie wyceny europejskiej

Visual Basic for Application (VBA)

Transkrypt:

Visual Basic for Applications Materiały źródłowe: http://www.vbamania.estrefa.pl 2008-01-14 Wstęp Visual Basic for Applications to język programowania, dołączony do wielu aplikacji. Wspierają go między innymi: Cały pakiet MS Office (tzn. Word, Excel, Acces, PowerPoint, Outlook), AutoCAD, CorelDraw oraz Corel PhotoPaint, Intellicad i Visio. W tych różniących się aplikacjach identyczny jest interface języka, identyczna jest składnia, takie same słowa kluczowe i instrukcje. Różnica polega tylko na różnych obiektach i ich metodach oraz właściwościach związanych z aplikacją macierzystą. Obiekt to dowolny element składowy aplikacji (np. zakres komórek, arkusz, otwarty plik). Oprócz tego obiektem są takie elementy jak paski narzędzi, a także - co chyba najważniejsze dla elastyczności programowania w VBA - sama aplikacja macierzysta, a także inne aplikacje, wspierające VBA i zainstalowane w systemie. Właściwość to prostu cecha obiektu. Może ona określać np. jego wielkość kolor, położenie na ekranie, jego stan, tzn. czy jest on dostępny czy widoczny dla użytkownika. Metoda to funkcja zmieniająca właściwości obiektu. Edytor VBA. W większości aplikacji skrótem klawiaturowym, uruchamiającym edytor VBA jest ALT-F11. Inna metodą jest wybranie z menu (najczęściej Tools - Narzędzia) odpowiedniego polecenia. Po uruchomieniu edytora pojawi się jego okno, w zasadzie identyczne we wszystkich aplikacjach.

Na poprzednim rysunku przedstawione są elementy składowe okna edytora VBA: 1. Paski narzędzi 2. Eksplorator projektu W tym okienku widać otwarty projekt, czyli zbiór elementów składających się na nasza aplikacje. W przypadku Excela plik projektu to po prostu otwarty plik *.xls. Projekty składają się z modułów, czyli okienek z wpisanym kodem. Standardowo wszystkie aplikacje mają możliwość wstawania następujących rodzajów modułów: - moduł kodu źródłowego - moduł, w którym można umieścić tylko kod programu. - moduł formularza - czyli projekt formularza wraz z kodem obsługującym operacje, które użytkownik może dokonać z formularzem i jego elementami składowymi (np. wciśnięcie przycisku, zmiana zawartości pola tekstowego, zamkniecie formularza). - moduły klas - to takie moduły w których użytkownik może definiować własne obiekty z ich właściwościami, metodami i zdarzeniami. - inne moduły, widoczne w zależności od aplikacji macierzystej. W przypadku Excela widoczne są ThisWorkbook, reprezentujący otwarty skoroszyt Excela oraz Arkusze (może ich być kilka) - reprezentujące arkusze w otwartym skoroszycie. 3. Właściwości. W tym okienku pojawiają się właściwości zaznaczonych elementów. (np. nazwa projektowanego formularza, napis na zaznaczonym przycisku, a także nazwa projektu VBA). 4. Okno kodu/ formularza. W tym oknie wpisujemy kod programu, czy funkcje i procedury, będące elementarnymi cegiełkami programu. Jeżeli projektujemy formularz, to oprócz wpisywania kodu można także tworzyć formularz przy użyciu palety Toolbox. 5. Paleta Toolbox (Przybornik) - stąd pobiera się elementy składowe formularza (etykiety, przyciski, pola tekstowe itp.).

Procedury i funkcje Kod programu VBA składa się z instrukcji pogrupowanych w procedury i funkcje. Procedura to ciąg instrukcji, zawarty pomiędzy słowami kluczowymi Sub a End Sub. Przykładowa procedura, obliczającą sumę dwu liczb, przedstawiona jest poniżej: Sub Oblicz() Dim liczba1 As Double Dim liczba2 As Double Dim wynik As Double liczba1 = 10 liczba2 = 2.56 wynik = liczba1 + liczba2 MsgBox "Wynik:" & wynik End Sub Po słowie kluczowym Sub występuje nazwa procedury i dwa nawiasy. W nawiasach mogą występować argumenty, czyli dane, przekazywane do procedury przez inna procedurę. Następny blok instrukcji (trzy wiersze, zaczynające się od słowa kluczowego Dim) to deklaracja zmiennych - czyli zarezerwowanie w pamięci komputera miejsca na dane. W Visual Basicu deklaracja zmiennych nie jest niezbędna, gdyż kompilator sam niezadeklarowane zmienne określa jako typ Variant. Jest to jednak bardzo rozbudowany typ danych i zajmuje dużo miejsca w pamięci. Dlatego też deklarowanie zmiennych jest dobrym sposobem na optymalizowanie zużycia zasobów komputera. Następne wiersze to już instrukcje podstawienia, do zmiennych liczba1 i liczba2 są przypisane odpowiednie wartości, a do zmiennej wynik - ich suma. Ostatni wiersz służy do wypisania na ekranie wyniku dodawania. Jest to standardowe okienko komunikatu systemu Windows.

Funkcja jest ciąg instrukcji, występujący pomiędzy słowami kluczowymi Function a End Function. Od procedury różni się tym, że funkcja zwraca wynik swoich działań. Function Dodaj(a As Double, b As Double) As Double Dodaj = a + b End Function Funkcja Suma posiada 2 argumenty, a i b określone jako typ Double (liczba rzeczywista), wynik działania, czyli wartość zwracana przez ta funkcję, również jest określony jako Double. Wynik tej funkcji to suma argumentów a i b. Funkcje zdefiniowane w VBA można wywoływać w komórkach arkusza tak jak standardowe funkcje programu Excel. Powyższą funkcję można wywołać wpisując w komórkę A1 ciąg znaków: =Dodaj(B1;B2). Wynikiem będzie suma komórek B1 i B2. Tworzenie własnych funkcji można wykorzystać do wpisywania złożonych równań często wykorzystywanych w arkuszu. W poniższym przykładzie pokazano funkcję obliczającą współczynnik liniowych strat ciśnienia. W procedurze lub w funkcji można wywoływać inne procedury i funkcje. W poniższym przykładzie pokazano funkcję obliczającą liniowe straty ciśnienia, wykorzystującą poprzednią funkcję obliczającą współczynnik liniowych strat ciśnienia.

Podstawowe instrukcje programu VBA Instrukcja warunkowa If Jeżeli chcemy by procedura/funkcja wykonała różne zadania w zależności od np. wartości jakiej zmienne używamy instrukcji If. Poniżej przedstawiono kilka podstawowych składni tej instrukcji w VBA: If wyrazenie_logiczne Then {ciag instrukcji} If wyrazenie_logiczne Then {ciag instrukcji} Else {inny_ciag_instrukcji} If wyrazenie_logiczne Then {ciag instrukcji} Else {inny_ciag_instrukcji} End If Wyrazenie_logiczne to takie wyrażenie które może przyjąć tylko jedna w dwu wartości: True (Prawda) albo False (Fałsz). Wyrażeniem logicznym może być np. wynik porównania dwu liczb (np. A<B). Wyrażenie {ciag_instrukcji) występujące po słowie kluczowym Then reprezentuje instrukcje wykonywane w przypadku, gdy wyrażenie logiczne posiada wartość True. Jeżeli wartość wyrażenia wynosi False, realizowane są instrukcje po słowie kluczowym Else.

Instrukcja wyboru Select Case W przypadku instrukcji If...Then...Else mamy do wybory tylko dwie sytuacje. Jeżeli chcemy sterować przebiegiem programu w zależności od większej ilości warunków, stosujemy Instrukcje Select Case. Jej składnia wygląda następująco: Select Case wartosc_badana Case wartosc_1 {ciag_instrukcji_1} Case wartosc_2 {ciag_instrukcji_2}... Case wartosc_n {ciag_instrukcji _n} Case Else {ciag_instrukcji} End Select W zależności od wartości wyrażenia wartosc_badana wykonywane będą odpowiednie instrukcje. W przypadku, gdy wartosc_badana będzie równa wartosc_1 to wykonywany będzie ciag_instrukcji_1, analogiczne dla pozostałych przypadków. W przypadku, gdy wartosc_badana nie będzie równa żadnej z wymienionych wartości, wykonywany będzie ciąg instrukcji po wierszy Case Else.

Instrukcje pętli Pętle to bardzo użyteczne struktury programistyczne, umożliwiające wykonywanie powtarzających się operacji. Mogą zostać wykorzystane na przykład do obliczeń iteracyjnych. Pętla For Next Działa ona w następujący sposób: wszelkie instrukcje występujące pomiędzy słowami kluczowymi For... i Next zostaną powtórzone tyle razy aż zmienna indeksująca (w poniższym przykładzie i) osiągnie wartość występującą po słowie kluczowym To. Procedura wypisująca na ekranie znaki o kodach ASCII od 65 do 75. Sub WypiszKody () Dim strmsg As String For i = 65 To 75 strmsg = strmsg & Chr(i) & vbcrlf Next i MsgBox strmsg End Sub Innym przykładem może być pętla liczącą z krokiem 2: For i = 2 To 10 Step 2... Next i albo wstecz: For intlicznik = 10 To 1 Step -1... Next intlicznik

Słowo kluczowe Step nie jest konieczne i jeżeli je pominiemy pętla liczy w górę z krokiem 1. W każdej chwili, niezależnie od od stanu licznika możemy opuścić pętle poprzez użycie instrukcji Exit For. Pętla For... Next jest wygodna w zastosowaniu w przypadku gdy mamy ściśle określoną liczbę kroków do wykonania. Pętla Do Loop Jeżeli liczba powtórzeń nie jest znana to wygodniej jest zastosować pętlę Do...Loop. Składnia tej instrukcji jest następująca: Do... Loop [Until {wyrażenie_logiczne} While {wyrażenie_logiczne}] albo: Do [Until {wyrażenie_logiczne} While {wyrażenie_logiczne}]... Loop Wykonanie pętli Do...Loop jest zależne od warunków logicznych występujących po słowach kluczowych Until i While (w kodzie może pojawić się tylko jedno z nich). Angielskiemu słowu until odpowiada polskie wyrażenie "aż do". Pętla z tym słowem jest wykonywana aż wyrażenie logiczne osiągnie wartość logicznej jedynki (True - prawda). Natomiast słowo while oznacza "dopóki" i taka pętla wykonywana jest dopóki wyrażenie logiczne posiada wartość logiczną True; gdy osiąga ono wartość False wykonywanie instrukcji w pętli jest przerywane. Jeżeli sprawdzenie warunku logicznego występuje w linii ze słowem Loop (pierwszy przykład), pętla wykona się co najmniej raz, niezależnie od wartości wyrażenia logicznego. Wykonywanie pętli Do...Loop może zostać przerwane w dowolnym momencie poprzez użycie instrukcji Exit Do.

Pętla For Each Szczególnym rodzajem pętli jest pętla For Each..., "przebiegająca" po wszystkich elementach kolekcji. Oto przykład użycia tej pętli, w którym wszystkie otwarte w Excelu skoroszyty zostaną zamknięte, a ewentualne zmiany w nich - zapisane. Dim owbk As Workbook For Each owbk in Workbooks owbk.close SaveChanges: = True Next owbk Jak widać pojedynczy element kolekcji jest tutaj reprezentowany przez zmienną obiektową (owbk i olayer). Jest to bardzo wygodny sposób umożliwiający dostęp do właściwości i metod grupy obiektów. Istotne jest to, że usuwanie elementów z kolekcji może odbywać się tylko w pętli For Each..., użycie do tego pętli np. For...Next spowoduje wygenerowanie komunikatu o błędzie.