VISUAL BASIC W EXCELU

Podobne dokumenty
Ćwiczenie 1 Obsługa makr

Automatyzowanie zadan przy uz yciu makr języka Visual Basic

VBA praca z makrami w Excelu

Makropolecenia w Excelu

VBA praca z makrami w Excelu

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

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

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

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

Część I: Excel - powtórka

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

LABORATORIUM 6: ARKUSZ MS EXCEL JAKO BAZA DANYCH

Visual Basic w programie Excel dla Windows

Skróty klawiaturowe w programie Microsoft Excel 2013

Aplikacje w środowisku VBA. Visual Basic for Aplications

Makropolecenia w PowerPoint Spis treści

LibreOffice Calc VBA

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.

Trik 1 Edycja wykresu bezpośrednio w dokumencie Worda

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

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

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

Podstawowe czynnos ci w programie Excel

Temat: Organizacja skoroszytów i arkuszy

Część I: Przypisanie makr do obiektu (przycisku).

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

Laboratorium 6. 1 Makropolecenia wprowadzenie. 2 Formatowanie komórek. 2.1 Rejestrowanie makra. Legenda: tekst do wpisania

Programowanie w języku Python. Grażyna Koba

Przewodnik Szybki start

PROGRAMOWANIE MAKR W PROGRAMIE EXCEL W JĘZYKU VISUAL BASIC

ARKUSZ KALKULACYJNY komórka

Wprowadzenie do formuł i funkcji

PODSTAWY VBA Rinat Szepe ( )

Algorytmika i Programowanie VBA 1 - podstawy

14. TWORZENIE MAKROPOLECEŃ

Rys. 1. Aktywne linki będą wstawiane za pomocą rozwijanej listy

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

TEMAT: SPOSOBY ADRESOWANIA W

Arkusz kalkulacyjny. Technologia Informacyjna Lekcja 38-39

1. Przypisy, indeks i spisy.

ABC 2002/XP PL EXCEL. Autor: Edward C. Willett, Steve Cummings. Rozdział 1. Podstawy pracy z programem (9) Uruchamianie programu (9)

Działki Przygotowanie organizacyjne

Dodawanie grafiki i obiektów

PROGRAMOWANIE MAKR W PROGRAMIE EXCEL W JĘZYKU VISUAL BASIC

Wstęp 7 Rozdział 1. OpenOffice.ux.pl Writer środowisko pracy 9

Visual Basic for Applications Wprowadzenie, makra

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

Rys. 1. DuŜa liczba nazw zakresów. Rys. 2. Procedura usuwająca wszystkie nazwy w skoroszycie

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

Ćwiczenia nr 4. Arkusz kalkulacyjny i programy do obliczeń statystycznych

Zadanie 8. Dołączanie obiektów

Visual Basic w programie Excel

Arkusz strona zawierająca informacje. Dokumenty Excela są jakby skoroszytami podzielonymi na pojedyncze arkusze.

str. 1 Excel ćwiczenia 1 Podstawy użytkowania komputerów

Arkusz kalkulacyjny EXCEL

Przewodnik Szybki start

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

Kontrola poprawności danych:

Makra w arkuszu kalkulacyjnym

Visual Basic for Applications. Wstęp

Makra VBA w Excelu dla początkujących

Zadanie 11. Przygotowanie publikacji do wydrukowania

WyŜsza Szkoła Zarządzania Ochroną Pracy MS EXCEL CZ.2

Makropolecenia. Makropolecenia zastosowanie w MS Excel

EXCEL TABELE PRZESTAWNE

Temat: Arkusze kalkulacyjne. Program Microsoft Office Excel. Podstawy

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

Formuły formułom funkcji adresowania odwoływania nazwy Funkcja SUMA argumentami SUMA

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

UONET+ moduł Dziennik. Rejestrowanie frekwencji uczniów na lekcjach w widoku Lekcja

Informatyka Arkusz kalkulacyjny Excel 2010 dla WINDOWS cz. 1

MS Excell 2007 Kurs podstawowy Filtrowanie raportu tabeli przestawnej

PODSTAWY OBSŁUGI ARKUSZA KALKULACYJNEGO

BIBLIOTEKA LOKALNE CENTRUM WIEDZY PRAKTYCZNEJ PRZEWODNIK PO NARZĘDZIACH WARSZTAT NR 1: ARKUSZE KALKULACYJNE - MINI SKRYPT

UONET+ - moduł Sekretariat. Jak wykorzystać wydruki list w formacie XLS do analizy danych uczniów?

Tworzenie i modyfikowanie wykresów

Wstęp Arkusz kalkulacyjny Za co lubimy arkusze kalkulacyjne Excel

Oprogramowanie Użytkowe ćwiczenia Semestr I mgr inż. Daniel Riabcew SWSPiZ

Arkusz kalkulacyjny. R. Robert Gajewski omklnx.il.pw.edu.pl/~rgajewski

Formatowanie tekstu przy uz yciu stylo w

Szkolenie dla nauczycieli SP10 w DG Operacje na plikach i folderach, obsługa edytora tekstu ABC. komputera dla nauczyciela. Materiały pomocnicze

Wprowadzenie do MS Excel

BAZY DANYCH MAKRA I PRZYCISKI. Microsoft Access. Adrian Horzyk. Akademia Górniczo-Hutnicza

MS Word Długi dokument. Praca z długim dokumentem. Kinga Sorkowska

Trik 1 Odchylenie procentowe w stosunku do minionego okresu

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

7.9. Ochrona danych Ochrona i zabezpieczenie arkusza. Pole wyboru

Przewodnik dla każdego po: Dla każdego coś miłego Microsoft Excel 2010

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

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

Rozwiązanie ćwiczenia 8a

etrader Pekao Podręcznik użytkownika Strumieniowanie Excel

5.2. Pierwsze kroki z bazami danych

PRZYKŁADOWY TEST EGZAMINACYJNY

ARKUSZ KALKULACYJNY MICROSOFT EXCEL cz.2 Formuły i funkcje macierzowe, obliczenia na liczbach zespolonych, wykonywanie i formatowanie wykresów.

2 Arkusz kalkulacyjny

Informatyka Arkusz kalkulacyjny Excel 2010 dla WINDOWS cz. 1

Transkrypt:

1. CEL ĆWICZENIA Celem ćwiczenia jest zapoznanie się z podstawami używania makr w MS Excel oraz składni języka skryptowego VBA (Visal Basic for Application). 2. MATERIAŁ NAUCZANIA Makro w najszerszym znaczeniu jest sekwencją instrukcji automatyzujących niektóre aspekty programu Excel, dzięki czemu można korzystać z niego w bardziej wydajny sposób i ograniczyć liczbę błędów. [1] Podczas rejestrowania makra Rejestrator makr zapisuje wszystkie kroki w postaci kodu języka VBA. Język VBA jest częścią zaawansowanego języka programowania Visual Basic i jest dostępny w większości aplikacji pakietu Office. Umożliwia automatyzowanie procesów zarówno w jednej aplikacji pakietu Office, jak i w kilku różnych aplikacjach. [6] 2.1. Dodawanie karty Deweloper do Wstążki Przed przystąpieniem do pracy z makrami VBA należy dodać do Wstążki kartę o nazwie Deweloper, która zawiera przydatne narzędzia i polecenia dla użytkowników języka VBA. W celu jej wyświetlenia należy wykonać następujące kroki: 1. Kliknąć prawym przyciskiem myszy dowolną kontrolkę na Wstążce i wybrać polecenie Dostosuj Wstążkę z menu podręcznego. Na ekranie pojawi się okno dialogowe Opcje programu Excel z otwartą zakładką Dostosowywanie Wstążki. 2. Na liście z prawej strony okna należy zaznaczyć opcję obok karty Deweloper. 3. Kliknąć przycisk OK, aby powrócić do okna Excela. 2.2. Zapisywanie skoroszytów programu Excel z obsługą makr Jeśli w pliku skoroszytu umieści się co najmniej jedno makro, trzeba temu plikowi nadać rozszerzenie XLSM. Przy pierwszej próbie zapisania skoroszytu z makrami program zaproponuje domyślny format pliku XLSX, który nie obsługuje makr. Jeżeli nie zmieni się formatu pliku na XLSM, Excel wyświetli okno z ostrzeżeniem: W skoroszytach bez obsługi makr nie można zapisywać funkcji Projekt VBA. Należy wówczas kliknąć przycisk Nie, a następnie z listy Zapisz jako typ wybrać opcję Skoroszyt programu Excel z obsługą makr (*.xlsm). 2.3. Typy makr w VBA Makra VBA (zwane też procedurami) można podzielić na dwa rodzaje Sub i Function. Procedura to w uproszczeniu jednostka kodu programu realizująca określone zadanie. Procedurę Sub można traktować jak nowe polecenie, wykonywane przez użytkownika lub inne makro. W skoroszycie programu Excel może znajdować się dowolna liczba procedur Sub. Przykład procedury Sub o nazwie Test, która oblicza prostą sumę, a następnie wyświetla wynik w oknie komunikatu widoczny jest na listingu 2.1. Listing 2.1 Sub Test() Sum = 1 + 1 MsgBox "Wynik działania to: " & Sum Procedury Sub zawsze zaczynają się od słowa kluczowego Sub, nazwy makra (każde makro musi posiadać unikalną nazwę) i pary nawiasów okrągłych. Jeśli procedura nie przyjmuje żadnych argumentów, pozostają one puste. Instrukcja oznacza koniec procedury. Procedura Sub może zostać wykonana na jeden z podanych sposobów: 1

Wybranie polecenia Deweloper/Kod/Makra w celu otwarcia okna dialogowego Makro. Następnie z listy należy wybrać nazwę makra i kliknąć przycisk Uruchom. Okno dialogowe Makro można też wyświetlić za pomocą skrótu Alt+F8. Zastosowanie skrótu klawiaturowego przypisanego procedurze (jeśli taki istnieje). Kliknięcie przycisku albo kształtu, do którego przypisane zostało makro. Otwarcie okna Microsoft Visual Basic, umieszczenie kursora w dowolnym miejscu kodu źródłowego i naciśnięcie klawisza F5. Wykonanie procedury przez wywołanie jej z poziomu innej procedury języka VBA. [2] Drugim typem procedury VBA jest Function. Funkcja zawsze zwraca konkretną wartość (podobnie jest w przypadku funkcji arkusza). Funkcja języka VBA może zostać wykonana przez inne procedury lub zastosowana w formułach zdefiniowanych w arkuszach, podobnie jak w przypadku wbudowanych funkcji programu Excel. Przykład prostej funkcji o nazwie AddTwo widoczny jest na listingu 2.2. Listing 2.2 Function AddTwo(arg1, arg2) AddTwo = arg1 + arg2 End Function Funkcja o nazwie AddTwo wymaga podania dwóch argumentów i oblicza ich sumę. Procedura Function jest bardzo podobna do procedury Sub. Należy jednak zauważyć, że procedura Function zaczyna się od słowa kluczowego Function, natomiast kończy instrukcją End Function. [2] 2.4. Rejestrowanie makra Przykład 2.1. Tworzenie przykładowego makra Otwórz program MS Excel, zapisz plik w swoim katalogu pod nazwą lab7.xlsx Na karcie Deweloper w grupie Kod wybierz opcję Zarejestruj marko Zmień nazwę makra na Miasto i wybierz klawisz skrótu na Ctrl+a i zatwierdź OK rozpoczął się tryb nagrywania makra. W komórce A1 wpisz napis Miasto, potwierdź wpisany napis myszką na pasku formuły (Rys.2.2). Następnie wybierz opcję Zatrzymaj rejestrowanie Rys. 2.1. Rejestrowanie makra Ustaw kursor w komórce A2 i użyj skrótu Ctrl+a Operacje, które zostały dokonane w trakcie nagrywania makra zostały spisane w postać pewnego kodu, opisującego dane procedury. Ten kod jest elementem Visual Basic for Applications. Spójrz teraz na nagrane makro od wewnątrz, czyli na kod źródłowy. W tym celu należy przejść do konsoli VBA Rys. 2.2. Rejestrowanie makra cd. Przejdź do konsoli VBA za pomocą kombinacji klawiszy Alt+F11 i kliknij na znak + przy Modules i dwukrotnie na Module1 Zmień napis Miasto na Miasto Lublin (Rys.2.3) i ponownie uruchom makro w nowej wybranej komórce arkusza. 2

Rys. 2.3. Edycja makra w konsoli VBA Jak widać na przykładowym listingu (Rys.2.3), po Sub Miasto() znajduje się szereg zielonych komend, poprzedzonych apostrofem ( ). Znak ten stwarza komentarze w VBA. Każda komenda/zdanie poprzedzone znakiem apostrofu nie zostanie wzięte pod uwagę przy uruchamianiu makra. Komentarze można dodawać w każdej wolnej linii, ale również w tej samej linii, w której jest polecenie, ale bezpośrednio po tym poleceniu. Przykład 2.2. Napisz makro które zmienia format liczb tak, aby były wyświetlane bez miejsc dziesiętnych i używały separatora (spacji) co trzy cyfry. Dodaj nowy arkusz do skoroszytu i przepisz dane zgodnie z Rys.2.4 Jako aktywną komórkę ustaw jedną z komórek zawierających liczby wymagające sformatowania, a następnie zarejestruj makro pod nazwą Format i ustaw klawisz skrótu na Ctrl+z Sformatuj liczbę w komórce B4 - bez Rys. 2.4. Dane do Przykładu 2.2 miejsc dziesiętnych, z użyciem separatora 1000 Bezpośrednio po kliknięciu OK w oknie Formatowanie komórek, zatrzymaj rejestrowanie makra Korzystając z gotowego makra (używając skrótu klawiaturowego) zmień format w całym arkuszu w pozostałych komórkach z wartościami liczbowymi Przykład 2.3. Zarejestruj makro, które wstawia wykres kolumnowy dla danych za rok 2015 z Przykładu 2.2 (zakres komórek A3:B7), a następnie zmodyfikuj makro tak aby było uniwersalne i dawało możliwość wstawiania wykresu dla dowolnego zakresu komórek. Zarejestruj makro pod nazwą Wykres i ustaw klawisz skrótu na Ctrl+x To makro, w przeciwieństwie do poprzedniego nie jest uniwersalne korzysta z adresowania bezwzględnego zaznaczonego zakresu komórek, o czym możemy się przekonać edytując kod makra lub próbując wykorzystać makro do innego zakresu komórek niż to, dla którego makro było rejestrowane (makro wstawia wykres zawsze dla komórek z pierwotnego zakresu) Aby to zmienić należy edytować kod makra. W tym celu wybierz na karcie Deweloper polecenie Makra, a następnie wybierz nagrane przed chwilą makro i kliknij przycisk Edycja Uruchomiony został edytor VBA, w którym znajdują się kody zarejestrowanych dotychczas makr i mamy możliwość poprawienia wadliwego makra. 3

Należy wprowadzić poprawki polegające na usunięciu sztywno osadzonego zakresu komórek adresowanych bezwzględnie (zaznaczone na Rys. 2.5) Rys. 2.4. Widok kodu źródłowego makra z Przykładu 2.3. Należy zmienić parametr Source metody SetSourceData tworzonego wykresu (czyli w języku VBA obiektu ActiveChart). W to miejsce należy wstawić obiekt typu zakres, który też będzie przechowywał adresy zakresu komórek. Z tym, że zakres ten będzie ustalany dynamicznie i będzie go reprezentował obiekt Selection, który w języku VBA reprezentuje bieżące zaznaczenie. Kos źródłowy po uwzględnieniu zmian przyjmie postać: Użyj poprawionego makra do wstawienia wykresu dla komórek z zakresu A3:D7 z Przykładu 2.3. 2.5. Model obiektowy MS Excel Rys. 2.5. Widok kodu źródłowego makra z Przykładu 2.3 po uwzględnieniu zmian Excel bazuje w luźny sposób na idei programowania obiektowego. Obiekt jest pewnego rodzaju pojemnikiem odzwierciedlającym jakiś element Excela. Jest on identyfikowany przez nazwę i zawiera: atrybuty (property), metody (methods) oraz zdarzenia (events). Do obiektów odwołujemy się przez ich atrybuty i metody: Obiekt.identyfikator[.identyfikator] Identyfikator może być metodą, która wykonuje jakieś działanie (dokładnie tak jak procedura lub funkcja). Może też być atrybutem, który jest jakąś zwykłą wartością lub kolejnym obiektem. W ten sposób możemy tworzyć cały łańcuszek, na którego końcu musi być jakiś atrybut lub metoda. [7] Przykładem obiektu Excela jest obiekt Range, który służy do odwołania się w kodzie makra do komórki, zakresu komórek, kolumn i wierszy. 4

Przykład 2.2. Zastosowanie obiektu Range W konsoli VBA utwórz w Module 1 nowe makro o nazwie Dodaj: Sub Dodaj() Range("C3")= Range("A3")+ Range("B3") W arkuszu wpisz do komórek A3 i B3 dowolne wartości liczbowe i wykonaj makro Istnieje również prostsza forma zapisu zmiennej związanej z komórką arkusza kalkulacyjnego. Zamiast np. Range("C3") można też używać zapisu [C3], zatem wcześniejsze makro można zapisać w następujący sposób: Sub Dodaj() [C3] = [A3] + [B3] 2.6. Zmienne w VBA Zmienna odpowiada miejscu w pamięci operacyjnej komputera i przechowuje pewną wartość lub zestaw wartości. Każda zmienna jest identyfikowana przez swoją unikalną nazwę. Zmienna powinna być zadeklarowana. Poprzed deklarację rezerujemy w pamięci komputera miejsce i od teraz do tej części pamięci będziemy się odwoływać poprzez wskazaną przez nas nazwę. Deklaracje zmiennych rozpoczynają się od słowa kluczowego Dim: Dim NazwaZmiennej As Double Deklarując zmienną podajemy jeden z wbudowanych typów Excela. Każdy z typów zajmuje odpowiednią ilość pamięci i jest przeznaczony do przechowywania odpowiedniego typu informacji. VBA udostępnia nam typy zestawion w Tabeli 2.1. [7] Tabela 3.1. Tyby zmiennych wbudowanych w VBA. [7] Typ Rozmiar Opis Zakres wartości Byte 1 bajt Wartości dodatnie 0 do 255 Boolean zależnie Dwie wartości True lub False od systemu Integer 2 bajty wartości całkowite -32,768 do +32,767 Long 4 bajty wartości -2,147,483,648 do +2,147,483,647 całkowite Single 4 bajty Liczby rzeczywiste -3.4e38 do +3.4e38 Double 8 bajtów Liczby rzeczywiste -1.8e308 do +1.8e308 Currency 8 bajtów Liczby rzeczywiste o stałej ilości miejsc po przecinku -922,337,203,685,477.5808 do +922,337,203,685,477.5807 Date 8 bajtów Typ przeznaczony dla dat 1 styczeń 100 to 31 grudzień 9999 Object 4 bajty Wskaźnik na obiekt wskaźnik na dowolny obiekt String zależnie od Zestaw znaków o zmiennej długości Zmienny Do 2 bilionów znaków zawartości Variant 16 bajtów Może przechowywać dowolną z powyższych wartości 5

Przykład 2.3. Napisz makro o nazwie Wynik obliczające wartość wyrażenia 1 a2 ab+b 2 dla wartości a i b 1+ a 2 +ab+b2 znajdujących się odpowiednio w komórkach D1 i F1. Potęgowanie w VBA realizowane jest za pomocą operatora ^. Visual Basic zawsze przeprowadza potęgowania w typie danych Double. Funkcja VBA SQR(Liczba) to odpowiednik funkcji Excela PIERWIASTEK. Wynikiem działania fukncji SQR jest pierwiastek kwadratowy. Argumentem funkcji może być oczywiście tylko liczba nieujemna. Sub Wynik() Dim a As Double, b As Double, c As Double a = [D1] b = [E1] c = (1 - Sqr(a ^ 2 - a * b + b ^ 2)) / (1 + Sqr(a ^ 2 + a * b + b ^ 2)) [F1] = c 3. ĆWICZENIA DO SAMODZIELNEGO WYKONANIA Zadanie 1. Wypełnij komórki z zakresu A1:C10 dowolnymi liczbami. A następnie zarejestruj makro, które ustawi formatowanie liczbowe z 2 miejscami po przecinku w kolumnie A, formatowanie tekstowe w kolumnie B, a formatowanie procentowe w kolumnie C. 4. LITERATURA 1. Walkenbach J., Microsoft Excel 2013 PL, Programowanie w VBA. Vademecum Walkenbacha. Helion 2013 2. Walkenbach J., Excel 2013 PL. Biblia, Helion 2013 3. Wrotek W., VBA dla Excela 2016 PL, Helion 2016 4. Wrotek W., VBA dla Excela 2016 PL 200 praktycznych przykładów, Helion 2013 5. Ziębakowski T., Programowanie w Excelu w języku VBA, Szczecin 2013 6. https://support.office.com/ 7. http://www.123office.pl/p/kurs-vba.html 6