PROGRAMOWANIE MAKR W PROGRAMIE EXCEL W JĘZYKU VISUAL BASIC



Podobne dokumenty
PROGRAMOWANIE MAKR W PROGRAMIE EXCEL W JĘZYKU VISUAL BASIC

Algorytmika i Programowanie VBA 1 - podstawy

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

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

LibreOffice Calc VBA

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

Visual Basic for Application (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

Visual Basic for Applications. Wstęp

Makropolecenia w Excelu

Visual Basic for Application (VBA)

VISUAL BASIC W EXCELU

Wprowadzenie do programowania w VBA

Kiedy i czy konieczne?

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

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

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

Maxima i Visual Basic w Excelu

Visual Basic w programie Excel dla Windows

Visual Basic for Application (VBA)

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

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

Programowanie komputerowe. Zajęcia 1

1 Podstawy c++ w pigułce.

Podstawy Programowania C++

PROGRAMOWANIE W EXCELU W JĘZYKU VISUAL BASIC FOR APPLICATIONS

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

Utworzenie funkcji użytkownika w Visual Basic

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

VBA praca z makrami w Excelu

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

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

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

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ć

Nagrywanie Makr. Na karcie Dostosowywanie Wstążki zaznaczamy kartę Deweloper.

VBA praca z makrami w Excelu

Programowanie w języku Python. Grażyna Koba

1 Podstawy c++ w pigułce.

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

Cw.12 JAVAScript w dokumentach HTML

4. Funkcje. Przykłady

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

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

Pascal - wprowadzenie

Technologia informacyjna programowanie Janusz Uriasz

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

Odczyt danych z klawiatury Operatory w Javie

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

Języki skryptowe w programie Plans

Działki Przygotowanie organizacyjne

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

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

Metody numeryczne Laboratorium 2

Pętla for. Matematyka dla ciekawych świata -19- Scilab. for i=1:10... end. for k=4:-1:1... end. k=3 k=4. k=1. k=2

1. JEŻELI - funkcja służąca do testowania warunków logicznych. JEŻELI(warunek_logiczny; wartośd_dla_prawdy; wartośd_dla_fałszu)

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

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

Aplikacje w środowisku VBA. Visual Basic for Aplications

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

Struktura pliku projektu Console Application

Makra w arkuszu kalkulacyjnym

Makra VBA w Excelu dla początkujących

MS Excel. 1. JEŻELI - funkcja służąca do testowania warunków logicznych. Składnia: JEŻELI(warunek_logiczny; wartość_dla_prawdy; wartość_dla_fałszu)

TEMAT: SPOSOBY ADRESOWANIA W

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

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p.

Podstawy programowania w C++

Visual Basic dla AutoCAD

Naukę zaczynamy od poznania interpretera. Interpreter uruchamiamy z konsoli poleceniem

Automatyzowanie zadan przy uz yciu makr języka Visual Basic

Podstawy języka C++ Maciej Trzebiński. Praktyki studenckie na LHC IFJ PAN. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. M. Trzebiński C++ 1/16

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

Pętle instrukcje powtórzeo

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

Matematyka grupa Uruchom arkusz kalkulacyjny. 2. Wprowadź do arkusza kalkulacyjnego wartości znajdujące się w kolumnach A i B.

Programowanie w Turbo Pascal

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

4.1. Analiza AWN jest dokonywana na poziomie VBA

Technologie informacyjne: Excel i VBA

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

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

SKRYPTY. Zadanie: Wyznaczyć wartość wyrażenia arytmetycznego

Wstęp do programowania

Makropolecenia w PowerPoint Spis treści

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

ForPascal Interpreter języka Pascal

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

Automatyzacja pracy w AutoCAD

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

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

Obliczenia inżynierskie arkusz kalkulacyjny. Technologie informacyjne

Podstawy i języki programowania

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.

Instrukcja warunkowa i wyboru

Zmienne powłoki. Wywołanie wartości następuje poprzez umieszczenie przed nazwą zmiennej znaku dolara ($ZMIENNA), np. ZMIENNA=wartosc.

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA

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

Transkrypt:

T.Z iębakows ki: PROGRAMOWAN I E MAK R... strona 1 PROGRAMOWANIE MAKR W PROGRAMIE EXCEL W JĘZYKU VISUAL BASIC W programie Microsoft Excel można często powtarzane czynności zautomatyzować przy użyciu tzw. makr. Makro jest serią poleceń i funkcji, które są zapisywane za pomocą języka programowania i może być uruchomione zawsze, gdy zachodzi potrzeba ich wykonania. Firma Microsoft dostarcza z pakietem Office język programowania Visual Basic. Makra można rejestrować, jak rejestruje się muzykę przy użyciu magnetofonu lub można napisać za pomocą języka Visual Basic, i dalej można uruchomić, aby wykonać zarejestrowane bądź zapisane polecenia. Przykład 1. Rejestrowanie makra. W nowym arkuszu wykonaj następujące czynności: 1. Z menu narzędzia wybierz polecenia makro zarejestruj nowe makro. 2. Zmień nazwę makra na. Jan i wybierz klawisz skrótu na Ctrl-j i potwierdź OK rozpoczął się tryb nagrywania makra. 3. W wybranej komórce wpisz napis Jaś, potwierdź wpisany napis myszką na pasku formuły. 4. Zakończ nagrywanie makra ikoną na pasku zadań. 5. Wybierz nową komórkę i naciśnij Ctrl-j. Przykład 2. Edycja Makra. 1. Z menu narzędzia wybierz polecenia makro makra... 2. Wybierz makro Jan i kliknij Edycja. 3. W oknie edytora Visual Basic powinieneś zobaczyć tekst podobny do wypisanego piniżej: Sub Jan() ' ' Jan Makro ' Makro zarejestrowane 00-02-25, autor Tadeusz Ziębakowski ' ' Klawisz skrótu: Ctrl+j ' ActiveCell.FormulaR1C1 = "Ja ś" 4. Dopisz następujący tekst: Sub Ma łgorzata() ActiveCell.FormulaR1C1 = "Ma łgosia" 5. Przejdź do arkusza kalkulacyjnego i wybierz polecenia makro makra...

strona 2 T.Zi ębakowski: P ROGR AM OWA N IE MAKR... 6. Wybierz makro Małgorzata i kliknij Opcje i wpisz klawisz skrótu Ctrl-m. 7. Wybierz nową komórkę i naciśnij Ctrl-m. Uruchamianie makra niekoniecznie musi odbywać się poprzez klawisz skrótu. Można to robić z menu Narzędzia bądź poprzez umieszczenie w arkuszu specjalnego przycisku. Przejdziemy teraz do omówienia podstawowych elementów składni języka Visual Basic. Na potrzeby niniejszego zbioru zadań ograniczymy się do jego skrótowego omówienia bez wchodzenia w istotę bardziej złożonych zapisów. 1. Zmienne Każde makro jest zapisem czynności, które wykonywane są na pewnym określonym zbiorze informacji, który będziemy nazywać danymi. Dane mogą być zapisane bądź w komórkach arkusza kalkulacyjnego bądź w pewnym zarezerwowanym obszarze pamięci i są reprezentowane wewnątrz makra poprzez zmienne. Każda zmienna określona jest poprzez podanie nazwy, którą ustala piszący makro tworząc ją z liter i cyfr (pierwszym znakiem w nazwie powinna być litera). Są jednak pewne specjalne zmienne, które są zdefiniowane w Excelu i służą do identyfikowania arkuszy, komórek czy zakresów komórek. Wypiszemy niektóre takie zmienne. ActiveCell.FormulaR1C1 przechowuje wartość wybranej komórki Selection.FormulaR1C1 pozwala wpisać wartości do wybranego zakresu komórek Range("A1:C5").FormulaR1C1 pozwala wpisać wartości do zakresu A1:C5 Selection.Cells(1,2).FormulaR1C1 pozwala wpisać wartości do komórki w pierwszym wierszu i drugiej kolumnie w wybranym obszarze. Range("A1:C5").Cells(5).FormulaR1C1 pozwala wpisać wartości do 5 komórki w zakresie A1:C5 tj. komórki B2. Range("A1:C5").Cells.Count podaje liczbę komórek w zakresie, w tym przypadku 15. Range("A1:C5").Columns.Count podaje liczbę kolumn w zakresie, w tym przypadku 3. Range("A1:C5").Rows.Count podaje liczbę wierszy w zakresie, w tym przypadku 5. Czynnik.FormulaR1C1 można pominąć, gdy wartościami komórek nie są formuły. Podobnie jak komórki w programie Excel zmienne mogą przechowywać dane różnych typów, przy czym w Visual Basic różnorodność typów jest znacznie większa (co więcej można tworzyć własne typy danych, czego nie będziemy omawiać). Typy danych mają swoje nazwy. Wymienimy tylko kilka podstawowych typów:

T.Z iębakows ki: PROGRAMOWAN I E MAK R... strona 3 typ opis operacje symbol Byte liczby całkowite: Od 0 do 255 Integer Single Double Boolean liczby całkowite: Od -32 768 do 32 767 liczby rzeczywiste: Od ok.-3,4 10 38 do ok. 3,4 10 38 liczby rzeczywiste: Od ok.-1,8 10 308 do ok. 1,8 10 308 wartości logiczne: True (prawda), False (fałsz) dodawanie odejmowanie mnożenie dzielenie całkowite reszta z dzielenia dodawanie odejmowanie mnożenie dzielenie potęgowanie koniunkcja alternatywa alternatywa wykluczna negacja równoważność implikacja + - * Div Mod + - * / ^ And Or Xor Not Eqv Imp String łańcuchy znaków łączenie łańcuchów &, + Variant Połączenie Double i String jak dla Double i String operatory relacji (wynik jest typu Boolean): =,<,<=,>,> =,<> W języku Visual Basic nadanie wartość zmiennej określa typ zmiennej, jednak w bardziej złożonych makrach w celu uniknięcia błędów powinno się określić typ zmiennej za pomocą specjalnej instrukcji deklaracji Dim. 2. Wyrażenia Wyrażenia tworzymy podobnie jak formuły w arkuszu, z tym, że zamiast adresów komórek wstawiamy zmienne. W wyrażeniach możemy wykorzystywać funkcje wewnętrzne Visual Basic podobne do funkcji Excela 1, a także istnieje możliwość definiowania własnych funkcji. Przy tworzeniu wyrażeń należy zwrócić szczególną uwagę na zgodność typów zmiennych, funkcji i używanych operatorów. 3. Instrukcje Czynności, które ma realizować makro zapisujemy w postaci tzw. instrukcji. Instrukcje zapisujemy w kolejnych liniach. Jeśli chcemy kilka instrukcji zapisać w jednej linii oddzielamy je dwukropkami. Uwaga: napisy zaczynające się od apostrofu nie są instrukcjami lecz komentarzami. Omówimy kilka najważniejszych instrukcji: Instrukcja przypisania Instrukcja ta ma postać: 1 W Visual Basic-u należy bardziej niż w Excel-u uważać na zgodność typów argumentów funkcji z używanymi zmiennymi. Wykaz funkcji i ich opis można znaleźć w pomocy Visual Basic.

strona 4 T.Zi ębakowski: P ROGR AM OWA N IE MAKR... zmienna = wyrażenie W wyniku wykonania instrukcji zmienna otrzymuje wartość wyrażenia. Przykłady: d = b^2 4*a*c i = i + 1 ActiveCell.FormulaR1C1 = "Ja ś" Pierwsza instrukcja nadaje zmiennej d wartość wyrażenia b^2 4*a*c, gdzie a,b,c są zmiennymi. Druga powiększa wartość zmiennej i o jeden. Trzecia wstawia do aktywnej komórki napis "Ja ś ". Instrukcja wywołania procedury Instrukcja ta ma postać: Przykład: <nazwa procedury> parametr1, parametr2,... MsgBox "Czas na nauk ę pisania makr!" wykorzyst- Instrukcja ta wyświetla komunikat "Czas na nauk ę pisania makr!" ując procedurę Visual Basica MsgBox. Instrukcja warunkowa Instrukcja ta ma postać: If warunek Then Else _else lub w wersji krótszej: If warunek Then Inną możliwością jest zastosowanie składni blokowej: If warunek Then Else _else End If lub w wersji krótszej: If warunek Then End If warunek powinien być wyrażeniem logicznym. W przypadku gdy jest on prawdziwy wykonywane są w przeciwnym przypadku _else. W wersji krótszej gdy warunek nie jest spełniony następuje przejście do instrukcji następnej po If. W składni jednowierszowej oddziela się dwukropkami.

T.Z iębakows ki: PROGRAMOWAN I E MAK R... strona 5 Instrukcja pętli For For licznik = począ tek To koniec Next licznik licznik jest zmienną numeryczną, począ tek i koniec są wartościami początkowymi i końcowymi licznika. Wykonywane są, po każdym wykonaniu licznik zwiększany jest o 1. Wykonywanie zostanie przerwane gdy licznik przekroczy wartość koniec. Instrukcja pętli Do Instrukcja ta maże mieć następujące warianty składni: Do While warunek Loop albo Do Until warunek Loop albo Do Loop While warunek albo Do Loop Until warunek Jedna lub kilka instrukcji oznaczonych przez powtarzanych jest tak długo, jak długo warunek jest spełniony wariant ze słowem While - albo dopóki nie stanie się prawdziwy - wariant ze słowem Until, przy czym warunek można sprawdzać na początku lub na końcu. Instrukcja deklaracji Instrukcja ta przydziela pamięć zmiennej i określa jej typ i w uproszczeniu jest następującej postaci: Dim zmienna1 As typ1, zmienna2 As typ2,... Przykłady: Poniżej zadeklarowano3 zmienne: pierwszą typu Variant (typ domyślny), drugą typu Double, trzecią typu String. Dim liczba, numer As Double, napis As String W poniższym wierszu zadeklarowano tablicę o stałym rozmiarze jako tablicę o elementach typu Integer zawierającą 11 wierszy i 11 kolumn: Dim MojaTab(10, 10) As Integer Pierwszy argument reprezentuje wiersze; drugi argument reprezentuje kolumny, oba standardowo numerowane od 0 - inaczej niż ma to miejsce w przypadku wyrażenia Cells(i,j).

strona 6 T.Zi ębakowski: P ROGR AM OWA N IE MAKR... 4. Procedury i Funkcje Każde makro w Excelu jest zapisywane jako procedura Visual Basic. Podczas pisania bardziej rozbudowanych makr często zdarza się, że taki sam lub podobny fragment makra występuję w kilku miejscach. Można wówczas taki powtarzający się fragment zapisać w postaci dodatkowej procedury lub funkcji. Procedura lub funkcja - wyodrębniona sekwencja instrukcji, stanowiąca pewną całość, posiadająca jednoznaczną nazwę i ustalony sposób wymiany informacji z pozostałymi częściami programu lub makra. Stosowanie procedur i funkcji na ogół skraca zapis, a także ułatwia pisanie dużych rozbudowanych makr dzięki podzieleniu go na odrębne logicznie spójne części. Różnica pomiędzy procedurą a funkcją polega na przekazywaniu wartości końcowych. Procedury i funkcje definiuje się przy pomocy instrukcji Sub i Function: Sub nazwa (lista_argumentów) Function nazwa (lista_argumentów) As typ nazwa = wyrażenie End Function lista_argumentów jest listą zmiennych oddzielonych przecinkami i jest nieobowiązkowa podobnie jak typ, który określa typ zwracanego wyniku przez funkcję. W definicji funkcji typ wyrażenia (wyraż enie) powinien być zgodny z typem funkcji. Ponadto w definicji procedury i funkcji mogą się pojawić Exit Sub i odpowiednio Exit Function przerywające działanie procedury lub funkcji. Przykład 3. Makro Main wywołuje dwie procedury: Sygna ł, która wysyła krótkie sygnały dźwiękowe (procedura Beep) w ilości określonej przez parametr i procedurę Komunikat, która wypisuje napis "Czas na kolejny przyk ład!". Sub Main() ' źród ło: plik pomocy Visual Basic Sygna ł 100 Komunikat Sub Sygna ł(ile_dźw) For licznik = 1 To ile_dźw Beep Next licznik Sub Komunikat() MsgBox "Czas na kolejny przyk ład!"

T.Z iębakows ki: PROGRAMOWAN I E MAK R... strona 7 Przykład 4 2 Makro rozwiązuje równanie kwadratowe ax + bx + c = 0 w liczbach rzeczywistych. Współczynniki a,b,c należy wpisać do komórek A1,B1,C1. Pierwiastki, jeśli są, wypisane będą w komórkach A3 i A4. Makro zawiera jawną deklarację zmiennych instrukcją Dim, bez której makro będzie działać, lecz zmienne a,b,c i delta będą typu Variant. Przykład 5 Sub równanie_kwadratowe() Dim a As Single, b As Single, c As Single, delta As Single a = Range("A1") b = Range("B1") c = Range("C1") delta = b ^ 2-4 * a * c If a = 0 Then MsgBox "To nie jest równanie kwadratowe" Exit Sub End If If delta < 0 Then MsgBox "Nie ma rozwiąza ń": Exit Sub If delta = 0 Then Range("A3") = -b / (2 * a) Else Range("A3") = (-b + Sqr(delta)) / (2 * a) Range("A4") = (-b - Sqr(delta)) / (2 * a) End If Makro w kolumnie A mnoży po kolei przez 2 każdą liczbę, aż do napotkania komórki pustej. Przykład 6 Sub Podwajaj() i = 1 Do While Range("A1").Cells(i, 1) <> "" Range("A1").Cells(i, 1) = 2 * Cells(i, 1) i = i + 1 Loop Funkcja wyznacza normę euklidesową wektora o współrzędnych x,y,x. Funkcja ta jest dostępna w arkuszu jako funkcja użytkownika. Należy pamiętać aby w formule Excela parametry funkcji oddzielać średnikami. Function Norma(x As Single,y As Single,z As Single) _ As Single Norma = Sqr(x ^ 2 + y ^ 2 + z ^ 2) End Function Uwaga: Podkreślenie poprzedzone spacją oznacza kontynuację instrukcji w następnym wierszu

strona 8 T.Zi ębakowski: P ROGR AM OWA N IE MAKR... Zadania 1. Napisz makro, które przepisuje wartości co drugiej komórki kolumny A do kolumny B po kolei, aż do napotkania komórki pustej. 2. Napisz makro, które przepisuje wartość komórki A1 do A2, A2 do A3,...,A19 do A20 i A20 do A1. 3. Napisz makro, które w zaznaczonym zakresie komórek odwraca kolejność danych tzn. zamienia wartości pierwszej i ostatniej komórki, drugiej i przedostatniej itd. 4. Zaprojektuj makro, które rozwiązuje układ dwóch równań liniowych z dwoma niewiadomymi: a1x + b1 y = c1 a2x + b2 y = c2 Wskazówki: Przyjmijmy D = a 1 b 2 b1 a 2, D x = b2c1 b1c 2, D y = a2c1 + a1c2. Z algebry wiadomo, że jeśli D 0 to mamy jedno rozwiązanie x = D / x D i y = D / y D. Jeśli D = 0, Dx = 0 i Dy = 0 to mamy nieskończenie wiele rozwiązań: dla dowolnego x, y = ( c1 a1x) / b1 spełnia układ równań. Jeśli D = 0, D x 0 lub Dy 0 to układ nie ma rozwiązań. Współczynniki a i, bi, ci można wpisać do zakresu A1:C2. Makro powinno zbadać również złośliwe przypadki, gdy współczynniki a i, bi, ci nie wyznaczają układu równań z dwoma niewiadomymi. 5. Należy zaprojektować arkusz i makra, tworzące grę 15+1. Plansza tej gry jest pokazana poniżej: Zadaniem grającego jest ustawienie liczb od 1 do 15 po kolei przez przesuwanie liczb. Można przesuwać liczby pionowo lub poziomo na puste miejsce (w obrębie prostokąta). Po wskazaniu komórki, przycisk Przesuń powinien uruchomić makro, które wykona przesunięcie np. w powyższej sytuacji liczba 6 powinna się przesunąć w prawo. Zadaniem przycisku Nowa gra jest ponowne, losowe rozmieszczenie liczb wewnątrz prostokąta. Liczby losowe można otrzymać za pomocą funkcji Rnd, - jej omówienie można znaleźć w pomocy Visual Basic.