Wprowadzenie do VBA Excel 2013

Slides:



Advertisements
Podobne prezentacje
Programowanie w języku Visual Basic
Advertisements

Podstawy programowania w VBA
Funkcje c.d. Strukturalność. Algorytmy. Ćwiczenia przed kolokwium.
Tworzenie wykresów. Aplikacja końcowa.
18/11/ Języki programowania 1 Piotr Górczyński Biblioteki.
typy całkowite (całkowitoliczbowe)
Programowanie w języku Visual Basic
Jan Aleksander Wierzbicki
Wspólne skoroszytów Wspólne użytkowanie skoroszytów Arkusze i skoroszyty Tworzenie nowego skoroszytu Obliczenia w skoroszytach Przeglądanie wzorów w skoroszytach.
27/09/ Języki programowania 1 Piotr Górczyński Zmienne.
27/09/ Języki programowania 1 Piotr Górczyński Obsługa błędów.
20/09/ Języki programowania 1 Piotr Górczyński Kreator form.
27/09/ Języki programowania 1 Piotr Górczyński Procedury i funkcje.
Jakub Jurkiewicz Mirosław Ochodek Sponsorzy: Debug Jak szukać błędów w Eclipsie?
Programowanie w języku Visual Basic
INFORMATYKA Wykładowca: mgr Tadeusz Ziębakowski p. 126 I piętro (naprzeciw dziekanatu)
INFORMATYKA Wykładowca: mgr Tadeusz Ziębakowski
Komunikacja z arkuszem. Iteracje. Funkcje.
Programowanie obiektowe. Obiekty. Metody. Właściwości.
1 Języki i techniki programowania prowadzący dr Grzegorz Filipczyk.
WINDOWS 95.
Programowanie w Visual Basic
Arkusz kalkulacyjny Excel
Metody Matematyczne w Inżynierii Chemicznej Wprowadzenie do laboratorium.
import danych; sumy pośrednie; tabela przestawna; konsolidacja danych
autor: Andrzej Seneczko
Visual Basic Mariusz Grad II TiB Rozpocznij prezentacje.
ARKUSZ KALKULACYJNY JUŻ PROŚCIEJ SIĘ NIE DA Wersja OFFICE 2010
VISUAL BASIC FOR APLICATION (VBA)
Na podstawie: A. Snarska, Makropolecenia w Excelu
AUTOMATYZACJA PRACY W EXCELU
Arkusze kalkulacyjne Wprowadzenie


Prezentacja i szkolenie
Instrukcja USOSweb Wersja: Opracował: Sebastian Sieńko Plany zajęć dodatkowych pracownika.
Programowanie obiektowe – zastosowanie języka Java SE
Excel – Visual Basic for Applications Zadania dodatkowe
MAKRA 1.
Wstęp do makr 2 XII 2013.
MICROSOFT Access TWORZENIE MAKR
Podstawy Visual Basic for Applications (cz. II)
Współpraca z innymi aplikacjami. Organizacja informacji 10 XII 2013.
Visual Basic w Excelu.
Visual Basic for Applications Poziom podstawowy Zajęcia 2
Zajęcia I Organizacja zajęć Rejestracja i uruchamianie makr
Excel dla zaawansowanych z elementami VBA
Ujarzmić Worda Agnieszka Terebus.
Podstawy Visual Basic for Applications (cz. III)
VBA w MS Word Źródła: Steven Roman, Word.Makrodefinicje, Helion 2000
Visual Basic w Excelu - podstawy
Wykładowca: mgr Tadeusz Ziębakowski p. 126 I piętro (naprzeciw dziekanatu)
Poznajemy arkusz kalkulacyjny
VISUAL BASIC FOR APLICATION (VBA)
Podsumowanie wiedzy MPDI2 sem.3 INFORMATYKA. tworzenie nowego pliku i katalogu, nawigacja po katalogach, listowanie zawartości katalogu, zmiana nazw,
Partnerstwo dla Przyszłości 1 Lekcja 27 Klasy i obiekty.
Partnerstwo dla Przyszłości 1 Lekcja 28 Dziedziczenie i rodzaje dziedziczenia.
Przewodnik Wprowadzenie do
Visual Basic Patryk Rosiak. Visual Basic for Applications Jest uproszczoną wersją języka Visual Basic służącym do obsługi dokumentów w pakiecie Microsoft.
Podstawowe zadania w programie Excel 2010 Klasa 2 TOR.
Visual Basic przygotował Michał Miłek Visual Basic – język programowania wysokiego poziomu i narzędzie programistyczne firmy Microsoft. Składnia jest oparta.
Dominik Benduski Michał Mandecki Podstawy Visual Basic w Excelu.
Obiekty - terminologia Obiekt - przedmiot kontrolowany przez Visual Basic, identyfikowany przez swoje właściwości i metody  Właściwość - cecha obiektu.
VBA w Excel.
Visual Basic for Applications
Visual Basic w programie Microsoft Excel
Automatyzacja pracy z aplikacją w Ms Access
Programowanie obiektowe – zastosowanie języka Java SE
Ms Access - formularze Marzena Nowakowska WZiMK, PŚk
Excel Informacje różne.
Zapis prezentacji:

Wprowadzenie do VBA Excel 2013 Źródło: Excel 2013PL. Programowanie w VBA dla bystrzaków J.Walkenbach, tł. R.Górnowicz, G.Kowalczyk

Ustawienia makr Plik / Opcje / Centrum zaufania / Ustawienia centrum zaufania Karta Ustawienia makr: Wyłącz wszystkie makra bez powiadamiania Wyłącz wszystkie makra i wyświetl powiadomienie Wyłącz wszystkie makra oprócz makr podpisanych cyfrowo Włącz wszystkie makra

O czym warto wiedzieć Można wskazać Zaufany folder (zaufane lokalizacje); przydaje się do przechowywania skoroszytów z zaufanych źródeł a Excel nie pyta o włączenie makr

Czym jest VBA Co to jest VBA ? Automatyzacja Jakie zadania VBA może wspomagać ? Przykłady szczegółowych czynności i funkcjonalności: - Wprowadzanie dużych ilości tekstu - Automatyzacja często wykonywanych zadań - Automatyzacja powtarzalnych operacji - Własne polecenia - Własne przyciski - Własne funkcje stosowane z poziomu arkusza - Własne dodatki aplikacji MS Office - Aplikacje oparte na makrach

Plusy i minusy VBA Powtarzalność Szybkość Postulowana bezbłędność Możliwość delegowania obsługi Większe „możliwości” Oszczędność czasu Konieczność zdobycia wiedzy Konieczność posiadania aplikacji Zwykle niezbędna jest obsługa techniczna Konieczność nadążania za zmianami w środowisku

O czym warto wiedzieć Rola VBE i modułu Procedury Sub i procedury Function (funkcje) VBA operuje na obiektach o strukturze hierarchicznej (pojęcie kontenera, model obiektowy) Kolekcje obiektów tego samego typu Odwołanie się do obiektu przez podanie położenia w hierarchii (rola znaku . czyli kropki) Pojęcie obiektu aktywnego Właściwości obiektów (rola znaku . czyli kropki) Zmienna i przypisywanie jej wartości Metody obiektów i jej wywołanie Inne elementy – odpowiedniki w innych językach programowania

Warto wiedzieć Wersje Excela z którymi możemy się spotkać Excel 97, 2000, 2002 (XP), 2003, 2007 (większe arkusze), 2010 (wersja 64-bitowa), 2013 (online i tablety).

Przygotowanie do pracy Konieczność dostępu do karty DEWELOPER Wstążka – Dostosuj wstążkę – Opcje programu Excel – Deweloper Rejestrowanie makra (Deweloper | Kod | Zarejestruj makro) Testowanie makra, modyfikacja, zapisywanie Podgląd kodu makra (ALT+F11) i struktura interfejsu VBE

Uwagi strukturalizujące wiedzę Makro działa wtedy gdy jest zawarte w otwartym skoroszycie Skoroszyt nie musi być aktywny Nagrywanie makr kasuje poprzedni tekst makra Jest wiele sposobów uruchamiania makr Makro można napisać ręcznie Makro można zapisać w skoroszycie makr osobistych (PERSONAL.XLSB) aby było automatycznie dostępne Makra można skonwertować do tzw. pliku dodatku

Visual Basic Editor Uruchamianie Komponenty: pasek narzędzi (View | Tools) okno Code pasek menu okno Properties okno Project (Ctrl+R), okno Immediate (Ctrl+G) okna Locals i Watches Pamiętajmy o Undo (Ctrl+Z)

Do zrobienia Pierwsze makro Co zauważymy: Definiowanie procedury typu Sub Przypisywanie wartości zmiennym Łączenie łańcuchów znaków Użycie wbudowanej funkcji VBA Użycie predefiniowanych stałych Użycie konstrukcji warunkowej Zakończenie procedury typu Sub

Rejestrowanie makr Przebieg czynności (Wyłączamy odwołania względne) - dodajemy nowy arkusz - schowamy dwie kolumny (Ctrl+Shift+strzałka w prawo) - schowamy jeden wiersz - zaznaczymy komórkę A1

Ustawienia środowiska VBE, Tools | Options Karta Editor Karta Editor Format Karta General Karta Docking

Hierarchia obiektów Excela Application Addin, Window, Workbook, WorksheetFunction Hierachia Workbook: Chart, Name, VBProject, Window, Worksheet Hierarchia Worksheet: Comment, Hyperlink, Name, PageSetup, PivotTable, Range

Kolekcje Workbooks Worksheets Charts Sheets Po co kolekcje? Jak do nich się odwołać? Jak „wędrować” po hierarchii obiektów? Jak uprościć odwołania do obiektów?

Gdzie szukać informacji? Obiekty Właściwości obiektów: sprawdzenie i zmiana Metody obiektów: wywoływanie Zdarzenia obiektów: Activate Gdzie szukać informacji? System pomocy VBA Object Browser (F2) Auto List Members (automatyczna lista wł. i met.)

Procedury i ich rodzaje Procedura Sub Procedura Function (funkcja) Wymagania formalne względem nazw Sposoby wywołań (wiele!) oraz z poziomu arkusza (kilka!)

Rejestrator makr Przemyśleć jaką czynność makro ma wykonać Wybrać ustawienia nagrywania makr (adresowanie względne czy bezwzględne) Określić nazwę makra, klawisz skrótu, miejsce przechowywania, opis Nagrać makro Przetestować Uporządkować kod

Rejestrator makr Czego rejestrator nie jest w stanie wykonać? Co jest rejestrowane? Opcje rejestratora makr Przydatna konstrukcja With … End With Komentarze i ich znaczenie

Zasady korzystania ze zmiennych itp. Pojęcie zmiennej Wymagania względem nazw zmiennych Typy danych; Option Explicit, Dim, Variant i automatyka Static, Public, Private – zasięg zmiennych Ważne: jedna zmienna – jeden wiersz Czas życia zmiennych Stałe predefiniowane Przypisanie i operatory

Tablice Deklarowanie Instrukcja Option Base 1 Tablice dynamiczne (Redim)

Obiekty Range Odwołanie przez zakres (w tym komórkę) Odwołanie przez nazwę zakresu Właściwość Cells Właściwość Offset Właściwość Value Właściwość Text Właściwości Count, Column, Row, Address Właściwość HasFormula, Font Właściwości Interior, Formula, FormulaLocal („polskie” formuły Excela), NumberFormat

Obiekty Range; Metody Select (uwaga na konieczność aktywacji arkusza!) Goto Copy i Paste Clear i Delete

Korzystanie z funkcji VBA i arkusza Co to jest funkcja Trzy rodzaje funkcji Przykłady użycia funkcji VBA Określanie typu wybranego obiektu Odkrywanie funkcji VBA Przykłady użycia funkcji arkusza Przykłady użycia własnych funkcji

Programowanie strukturalne i podejmowanie decyzji Sterowanie przepływem Programowanie strukturalne (1 wejście i 1 wyjście kodu) Struktury If-Then; If-Then-Else, ElseIf Select-Case Pętle i ich prędkość For-Next For-Next-Step For-Next-Exit For Do-While Do-Until For Each-Next z kolekcjami

Procedury automatyczne i zdarzenia Dotyczą skoroszytów i arkuszy Przykłady: Zamknięcie, aktywacja i otwarcie skoroszytu Aktywacja okna i jego dezaktywacja Kliknięcie obiektu Wprowadzenie danych do komórki Wystąpienie błędu itd.

Kod VBA obsługi zdarzeń Gdzie znajduje się kod? Nie w standardowym module! Tworzenie procedury obsługi zdarzenia Korzystanie z edytora VBE Przykłady: zdarzenie Open dla skoroszytu zdarzenia BeforeClose / BeforeSave dla skoroszytu zdarzenia aktywacji i dezaktywacji arkusza i skoroszytu zdarzenia BeforeDoubleClick/BeforeRightClick zdarzenie Change zdarzenia niezwiązane z obiektami

Obsługa błędów Rozpoznawanie błędów Obsługiwanie występujących błędów Wznawianie działania programu po błędzie Wywoływanie błędów Unikanie błędów Ignorowanie błędów Instrukcja On Error GoTo etykieta; Resume; Resume Next; Resume etykieta

Debugowanie Przyczyny błędów w programach Metody i techniki walki z „pluskwami” Rola funkcji MsgBox Polecenie Debug.Print Debugger; punkty przerwań Okna Immediate, Watch, Locals Zalecenia redukcji liczby błędów

Techniki programowania warte uwagi Przetwarzanie zakresów komórek – kopiowanie Sub KopiowanieZakresu1() Range("A1:A5").Select Selection.Copy Range("B1").Select ActiveSheet.Paste Application.CutCopyMode = False End Sub Sub KopiowanieZakresu2() Range("A1:A5").Copy Range(”B1”) End Sub Kopiowanie zakresu o zmiennej wielkości Sub KopiowanieBiezacegoRegionu1() Range("A1").CurrentRegion.Copy Sheets("Arkusz2").Select Range("A1").Select Sheets("Arkusz1").Select Sub KopiowanieBiezacegoRegionu2() Range("A1").CurrentRegion.Copy Sheets("Arkusz2").Range("A1") Sub KopiowanieBiezacegoRegionu3() ' tylko dla specjalnie wstawionej tabeli Range("Tabela1").Copy Sheets("Arkusz2").Range("A1")

Techniki programowania warte uwagi Zaznaczenie komórek do końca wiersza lub kolumny Range(ActiveCell,ActiveCell.End(xlDown)).Select Range(ActiveCell,ActiveCell.End(xlDown)).Font.Bold = True Zaznaczenie całego wiersza lub całej kolumny ActiveCell.EntireColumn.Select ActiveCell.EntireRow.Select Przenoszenie zakresów Sub PrzeniesZakres1() Range("A1:C6").Select Selection.Cut Range("A10").Select ActiveSheet.Paste End Sub Sub PrzeniesZakres2() Range("A1:C6").Cut Range("A10")

Techniki programowania warte uwagi Wprowadzenie wartości do komórki Range("A1").Value = InputBox(”Wprowadź wartość dla komórki A1: ”) Dim x As Variant x = InputBox(”Wprowadź wartość dla komórki A1: ”) If x <> ”” Then Range("A1").Value = x Uzależnienie operacji od typu zaznaczonego zakresu Sub SprawdzenieSelection() If TypeName(Selection) <> ”Range” Then MsgBox ”Zaznacz zakres komórek.” Exit Sub End If … tutaj dalsza część kodu, wykonywana gdy wszystko w porządku End Sub Automatyczne dodawanie wykresów Sub DodawanieWykresow() ActiveSheet.Shapes.AddChart.Select ActiveChart.ChartType = xlColumnClustered ActiveChart.SetSourceData Source:=Range("Arkusz1!$A$1:$A$3") ActiveChart.Axes(xlValue).MajorGridlines.Select Selection.Delete ActiveChart.SetElement (msoElementChartTitleAboveChart) ActiveChart.ChartTitle.Text = "To jest mój wykres"

Techniki programowania warte uwagi Pętla w kolekcji ChartObjects Sub PetlaWWykresach() Dim cht As ChartObject For Each cht In ActiveSheet.ChartObjects cht.Chart.Type = xlArea Next cht End Sub Sposoby przyspieszania działania programów w VBA Application.ScreenUpdating = False Application.ScreenUpdating = True Application.Calculation = xlCalculationManual Application.Calculation = xlCalculationAutomatic Application.DisplayAlerts = False Korzystanie ze zmiennych obiektowych (także przyspiesza): Set Rate=Workbooks(”MójSkoroszyt.xlsx”).WorkSheets(”Arkusz1”).Range(”StawkaProwizji”) Rate.Value = 0.085

Techniki programowania warte uwagi Praca z formularzami UserForm Sub PokazDialog() UserForm1.Show End Sub Private Sub OKButton_Click() Range("A1").Value = CheckBox1.Value Unload UserForm1