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

Podobne dokumenty
Aplikacje w środowisku VBA. Visual Basic for Aplications

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

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

Visual Basic w programie Excel

Visual Basic for Applications. Wstęp

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.

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

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

Makra VBA w Excelu dla początkujących

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

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

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

Makropolecenia w PowerPoint Spis treści

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

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

LibreOffice Calc VBA

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

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

VBA obiekty AutoCADa 1

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

PROGRAMOWANIE OBIEKTOWE: VISUAL BASIC VISUAL BASIC FOR APPLICATION (VBA) NA PRZYKŁADZIE EXCELA

Makropolecenia w Excelu

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

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

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

VISUAL BASIC W EXCELU

Trik 1 Edycja wykresu bezpośrednio w dokumencie Worda

Technologie informacyjne: Excel i VBA

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

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

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

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

VBA praca z makrami w Excelu

Ćwiczenie 1 Obsługa makr

INSTRUKCJA SKOKU GOTO

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

Wprowadzenie do programowania w VBA

Microsoft Office Język VBA i makra. Rozwiązania w biznesie.

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

Algorytmika i Programowanie VBA 1 - podstawy

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

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

Materiały do laboratorium MS ACCESS BASIC

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

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

Utworzenie interfejsu graficznego za pomocą formularza użytkownika w VBA

LABORATORIUM 6: ARKUSZ MS EXCEL JAKO BAZA DANYCH

Technologia informacyjna programowanie Janusz Uriasz

PODSTAWY VBA Rinat Szepe ( )

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

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

Arkusze kalkulacyjne i VBA

VBA praca z makrami w Excelu

Arkusze kalkulacyjne i VBA

PROGRAMOWANIE MAKR W PROGRAMIE EXCEL W JĘZYKU VISUAL BASIC

Automatyzowanie zadan przy uz yciu makr języka Visual Basic

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

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

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

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

Tablice. Jones Stygar na tropie zmiennych

Excel. Tworzenie zaawansowanych aplikacji.

Wprowadzenie do edycji makr w Excelu

Parę uwag, uzupełnień

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

Makra programu Microsoft Access.

Visual Basic w programie Excel dla Windows

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

M a k r a i d o d a t k o w e f o r m a n t y

TEMAT: SPOSOBY ADRESOWANIA W

Visual Basic for Application (VBA)

Maxima i Visual Basic w Excelu

Działki Przygotowanie organizacyjne

Trik 1 WyróŜnianie najlepszych wyników sprzedaŝowych

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

Arkusze kalkulacyjne i VBA

Programowanie w Visual Basic. Programowanie w Visual Basic 1

Makropolecenia podstawy

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

Programowanie w języku Python. Grażyna Koba

Część I: Excel - powtórka

Programowanie obiektowe

O autorze (15) Podziękowania autora (17) Wstęp (19)

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.

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

Temat: Organizacja skoroszytów i arkuszy

Ten odcinek Akademii PC Kuriera poświęcony zostanie tworzeniu i wykorzystaniu funkcji i procedur w języku Visual Basic.NET.

Excel 2016 PL w biurze i nie tylko / Sergiusz Flanczewski. Gliwice, cop Spis treści

Spis treści PODSTAWY JĘZYKA VBA. Wprowadzenie Tworzenie i uruchamianie zarejestrowanych makr Tworzenie własnych makr...

PRACA Z FORMULARZAMI UserForm

Skróty klawiaturowe w programie Microsoft Excel 2013

Tablice, DataGridView

Visual Basic Debugging and Error Handling

Przewodnik Szybki start

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

Visual Basic for Application (VBA)

Podstawy Programowania 2

Transkrypt:

VBA-podstawy cz. 1 1. Uwagi historyczne Nazwa BASIC pochodzi od słów "Beginner s All-purposes Symbolic Instruction", oznacza nazwę języka programowania, który powstał na początku lat 60-tych. Pierwotnie był to język interpretowany. Visual Basic for Windows powstał w 1991 r. Nazwa VBA jest skrótem od słów "Visual Basic for Applications" i oznacza język skryptowy do pisania aplikacji. Pierwsza wersja VBA pojawiła się wraz z Excel 5. VBA jest językiem obiektowym, nawiązującym do wymagań stawianym tego typu językom. Jego poprzednikiem jest XLM. VBA jest wersją języka Visual Basic wchodzącą min. w skład Microsoft Excel. Zarówno VBA jak i samodzielna wersja języka Visual Basic korzystają z identycznej składni, tych samych narzędzi pomocniczych i takiego samego edytora. We współpracy arkusza z VBA, arkusz udostępnia swoje możliwości za pomocą biblioteki obiektów. Do tworzenia aplikacji VBA, zwanych makrami, można użyć nie tylko VBA dla Excela, Worda czy Accessa, ale także samodzielnej wersji VB. Istnieje możliwość wsparcia aplikacji pisanych w VBA (makr) za pomocą innych języków, np. C++. Począwszy od wersji Office 2010 skoroszyty Excel wsparte makrami VB mają rozszerzenie.xlsm 2. Obiekty VBA Excel udostępnia ponad 100 klas obiektów. Ważniejsze z nich, to: obiekt Application obiekt Workbook Workbooks obiekt WorkSheet WorkSheets ActiveSheet obiekt Range Selection Cells ActiveCell obiekt CommandBar CommandBars obiekt Chart obiekt PivotTable... reprezentuje Excel reprezentuje skoroszyt reprezentuje kolekcję skoroszytów reprezentuje arkusz reprezentuje kolekcję arkuszy reprezentuje arkusz aktywny reprezentuje zakres komórek lub komórkę pojedynczą reprezentuje aktywny obszar arkusza reprezentuje komórkę (nie ma obiektu Cell) reprezentuje komórkę aktywną arkusza reprezentuje pasek narzędzi reprezentuje wszystkie obiekty CommandBar reprezentuje wykres reprezentuje tabelę przestawną Obiekty tworzą pewną hierarchię, tj. składowymi obiektów nadrzędnych są obiekty podrzędne. Poza obiektami składowymi obiekty mają swoje metody i właściwości. Niektóre obiekty (np. Range, Cells) występują w roli właściwości. I tak:

Właściwościami obiektu klasy Range są Value, Name Właściwość Offset obiektu klasy Range, zwraca przesunięty względem niego obiekt Range Metodą obiektu klasy Range jest ClearContents Właściwościami obiektu Chart są HasTitle i Type W odwołaniach do składowych obiektu używamy operatora "." Na przykład, wyrażenie Application.Workbooks ("Zeszyt1.xls") _.WorkSheets("Arkusz1").Range("A1") oznacza odwołanie do komórki A1 arkusza "Arkusz1" w skoroszycie "Zeszyt1.xls". Jeżeli "Arkusz1" jest arkuszem aktywnym, odwołanie to można skrócić do Range("A1") Podobnie odwołujemy się do metod i właściwości: Range("A1").Value odwołanie do właściwości Value komórki A1 Range("A1").ClearContents Range("A1").Select wywołanie metody ClearContents czyszczenia, tutaj komórki A1 Metoda Select czyni A1 komórką aktywną (ActiveCell) W Excelu każdy skoroszyt jest projektem! Projekt można traktować jako kolekcję obiektów składowych. Najważniejsze z nich, to: Microsoft Excel Objects - pojemnik wszystkich arkuszy i wykresów skoroszytu ThisWorkBook - reprezentuje obiekt ActiveWorkBook Modules - reprezentuje wszystkie istniejące moduły makr Forms - zawiera obiekty UserForm, tj. formularze użytkownika. Każdy element projektu ma okno kodu do przechowywania własnego modułu VBA. Nad modułami możesz wykonywać operacje wstawiania, usuwania, eksportowania i importowania: polecenie Insert Module polecenie File Remove xxx polecenie File Export File polecenie File Import File - dodaje w zaznaczonym projekcje nowy moduł, - usuwa zaznaczony moduł xxx - eksportuje zaznaczony obiekt - importuje do zaznaczonego projektu Kod modułu VBA (Procedury Sub, Function i Property oraz Deklaracje) możesz wprowadzić na trzy sposoby: - użyć edytora VBE i wpisać kod ręcznie, klucz <Alt + F11>, - zarejestrować ciąg czynności nad arkuszem, jako makro za pomocą rejestratora makr, (co zawsze daje procedurę Sub znacznie uproszczoną strukturalnie), - skopiować z innego modułu.

3. Praca z makrami Kilka przydatnych kluczy: <Alt + F8> - otwieranie makr VBA <Alt + F11> - otwieranie edytora VBA <F5> - wykonywanie makra <F8> - wykonywanie makra krok po kroku Zestaw dwóch znaków: spacji i znaku podkreślenia ( _) to znak kontynuacji wiersza Makra występują pod postacią procedur lub funkcji VBA: Procedura VBA: Sub nazwa() Funkcja VBA: Function nazwafunkcji(var As Integer) As Integer nazwafunkcji = 5 End Function Wiersz otwarcia procedury/funkcji może mieć wiele argumentów, np.: Sub nazwaprocedury(arg1 As Typ1,, argn As TypN) Podanie zmiennej, jako argumentu w linii otwarcia procedury jest równoznaczne z jej zadeklarowaniem, jako zmiennej lokalnej w danej procedurze Jeżeli jakaś zmienna zostaje przekazana w formie argumentu do wywoływanej procedury i tam zostanie zmieniona, to po powrocie do bazowej procedury/funkcji też będzie zmieniona! Do wywoływania procedury/funkcji możemy użyć słowa kluczowego Call. Gdy procedura nie posiada żadnych argumentów wejściowych piszemy: Call wywolywanaprocedura wywolywanaprocedura ' OK! ' OK! Gdy procedura posiada argumenty i stosujesz Call to używaj nawiasów: Call odliczaniepodatku(pensja, stawka) ' OK! odliczaniepodatku pensja, stawka ' OK! Aby sprawdzić aktualną wartość zmiennych w procedurze możesz ustawiać tzw. punkty zatrzymania (toogle breakpoints). Procedura zawsze zawiesza swoje działanie w miejscu, w którym ustawiony jest taki punkt. Punktów zatrzymania nie można ustawiać w pustych wierszach oraz w wierszach, w których znajduje się tylko deklaracja zmiennych.

Słowo kluczowe Optional Zdarzają się sytuacje, kiedy funkcja lub procedura wymaga podania argumentu tylko w niektórych sytuacjach, podczas gdy w innych argument ten nie jest konieczny. Przykład funkcji z argumentem wymaganym i argumentem opcjonalnym: Function pensjanetto(podstawa As Long, _ Optional kwotawolnaodpodatku As Single = 0) As Long Dim kwotadoopodatkowania As Single kwotadoopodatkowania = podstawa - kwotawolnaodpodatku pensjanetto = podstawa - (kwotadoopodatkowania * 0.18) End Function Argumenty opcjonalne mogą mieć wskazaną wartość domyślną (tutaj 0). Argument domyślny nie może poprzedzać argumentu wymaganego. W odwołaniach do procedur/funkcji z argumentami domyślnymi argumenty te mogą być pomijane. Publiczne funkcje użytkownika można wybierać i uruchamiać tak, jak funkcje arkuszowe! W nagłówkach modułów zawierających makra spotyka się opcje Option Explicite - deklaruj wszystkie zmienne Option Base 1 - indeksuj tablice od 1 (od jedynki, nie od 0) 4. Komunikacja z użytkownikiem Procedury i funkcje mogą zwracać się do użytkownika po potrzebne dane za pomocą funkcji InputBox i przekazywać mu komunikaty za pomocą funkcji MsgBox InputBox Funkcja InputBox służy do wprowadzania danych. Przykładowa procedura wprowadzania daty może wyglądać następująco: Sub WprowadzanieDaty() Gdy napisane makro uruchomimy najpierw pojawi się zaproszenie do podania daty. Możesz wtedy wpisać np. "sty-2005" i potwierdzić przyciskiem OK. Zaraz pojawi się kolejny komunikat: "OK., kontynuacja" i to niezależnie od tego, czy datę wprowadzono poprawnie czy też nie. Stosunkowo łatwo zabezpieczyć się przed wprowadzaniem daty pustej, co zrobimy w sposób następujący: Sub WprowadzanieDaty() If Data <> "" Then Dokładniejsze sprawdzenie daty umożliwia funkcja IsDate. Kolejna modyfikacja naszej procedury z wykorzystaniem tej funkcji może wyglądać następująco:

Sub WprowadzanieDaty() If IsDate(Data) Then Else MsgBox "Niepoprawna data" Przetestuj tak zdefiniowane makro. Gdybyś chciał w jakiejś aktywnej komórce wyświetlać (poprawną bądź niepoprawną) datę dodaj za If lub Else instrukcję ActiveCell.Formula = Data Dojdziesz do wniosku, że VB potrafi rozpoznać kilka formatów dat i że nie ma tu pełnej zgodności z polskimi nazwami funkcji arkuszowych (VB posługuje się tylko językiem angielskim!) MsgBox Funkcję MsgBox można tak skonfigurować, że można będzie zadawać pytania i odpowiadać na nie słowami "Tak" lub "Nie" korzystając z jej argumentów. Pierwszy argument Prompt jest argumentem wymaganym i zawiera tekst komunikatu, który ma być wyświetlany. Drugi argument Buttons - pozwala poprzez wybór stałych dobrać tak ilość, jak i znaczenie przycisków sterujących. Trzeci argument Title może zawierać tytuł okna komunikatów MsgBox(). Do wykorzystania są jeszcze dwa inne argumenty tej funkcji. Kolejna wersja procedury WprowadzanieDaty()wykorzysta dwa pierwsze argumenty i pomocniczą zmienną Odp typu VbMsgBoxResult: Sub WprowadzanieDaty() Dim Odp As VbMsgBoxResult If IsDate(Data) Then Else Odp=MsgBox("Niepoprawna data, kontynuować?", _ vbyesno) If Odp = vbno Then Exit Sub Uwaga. W przypadku, gdy zmiennej przypisuje się wartość zwracaną przez funkcję, wszystkie argumenty funkcji winny znaleźć się w nawiasach. Jeżeli nie wykorzystujemy zwracanych wartości, nawiasów nie należy używać.

5. Przykłady Przykład 1 kod modułu, który wyświetla nazwę użytkownika Sub Witaj() ' wyświetla nazwę uŝytkownika Msg = "czy nazywasz się " & _ Application.UserName & "?" Odp = MsgBox(Msg, vbyesno) If Odp = vbno Then MsgBox " szkoda, Ŝe się nie zgadza " Else MsgBox " cieszę się, Ŝe się zgadza " Przykład 2 kod modułu, który wyświetla nazwy dwóch kolejnych plików znajdujących się w folderze aktywnym Sub DwaPierwszeNaLiscie() Dim Wiersz As Integer Dim Plik As String Wiersz = 1 Plik = Dir("*.xls") ' pierwsze uŝycie funkcji Dir Cells(Wiersz, 1) = Plik Wiersz = 2 Plik = Dir ' drugie uŝycie Dir! Cells(Wiersz, 1) = Plik 6. Załączniki Strona internetowa http://www.mielk.pl/pl/kursy/kursy.php W załączeniu jest też skoroszyt pod nazwą VBA_wybraneMakra_.xlsm gdzie zestawiono i pokrótce skomentowano wybrane makra ze wskazanej strony internetowej. H.P.