TOP

VBA-Lekcja 1. Co to jest VBA. Podstawowe koncepcje.

YouLibreCalc for Excel logo

W tej sekcji zastanowimy się, czym jest VBA, ponieważ zapisywane są na nim makra.

Co to jest VBA?

VBA to wbudowany język programowania (skrót od Visual Basic for Applications), który został opracowany przez firmę Microsoft. Język ten nie jest samodzielny, ale przeznaczony wyłącznie do automatyzacji procesów w pakiecie MS Office. VBA jest szeroko stosowany w Excel, a także w programach Access, Word i innych programach z pakietu.

VBA to prosty język programowania, którego każdy może się nauczyć. Kiedy już się tego nauczysz, będziesz mógł wydawać polecenia Excel, robić z kolumnami, wierszami, wartościami komórek, przenosić/dodawać/sortować arkusze, wyświetlać zaprogramowane komunikaty, pisać własne formuły i funkcje i nie tylko. Istotą języka jest operowanie na przedmiotach.

Do pracy z kodem VBA potrzebujemy edytora (Visual Basic Editor), który jest już domyślnie zainstalowany w Excel. Możesz je otworzyć wciskając kombinację klawiszy "Alt+F11".

Obiekty (Objects)

Rozumiemy, czym jest obiekt w VBA.

VBA Obiekt to element, cząstka strukturalna Excel, czyli: książka, arkusz, zakres, komórka.

Obiekty VBA mają hierarchię, to znaczy są sobie podporządkowane. Schematycznie strukturę hierarchii w Excel można przedstawić w następujący sposób:

Najważniejszym obiektem jest Application, który odpowiada samemu programowi Excel. Następny jest Workbook (książka), Worksheet (arkusz), Range (zakres lub pojedyncza komórka).

Na przykład, aby odwołać się do komórki „A1” w arkuszu, musielibyśmy napisać następującą ścieżkę, biorąc pod uwagę hierarchię:

Application.Workbooks("Archive").Worksheets("Sheet1").Range("A1")

W ten sposób nauczyliśmy się odnosić do najmniejszego obiektu w Excel - komórki.

Kolekcje (Collections)

Z kolei obiekty VBA należą do „kolekcji”.

VBA Kolekcja to grupa (tablica) obiektów tej samej klasy (zbiór książek, arkuszy itp.). Tak, wszystkie obiekty Worksheet są elementami kolekcji Worksheets. Z kolei kolekcja jest także przedmiotem.

Te same obiekty mogą należeć do kilku kolekcji. Na przykład obiekty Worksheet również należą do kolekcji Sheets. Kolekcja Sheets zawiera wszystkie arkusze znajdujące się w skoroszycie — zarówno wykresy, które są również uważane za arkusze (Chart), jak i arkusze danych (Worksheet).

W VBA Excel istnieją następujące kolekcje:

  • Workbooks (zawiera obiekty Workbook)
  • Worksheets (obiekty Worksheet)
  • Sheets (obiekty Worksheet i Chart)
  • Ranges (obiekty Ranges)
  • ChartObjects (obiekty ChartObject)
  • PivotTables (obiekty PivotTable)
  • i wiele innych...
  • Właściwości (Properties)

    Każdy obiekt w VBA ma właściwości. Na przykład obiekt Range ma właściwość Value lub Formula.

    Worksheets("Sheet1").Range("A1").Value lub Worksheets("Sheet1").Range("A1").Formula

    W tym przykładzie właściwość wyświetla wartość wpisaną do komórki lub wpisaną formułę.

    Ponadto za pomocą właściwości Formula możesz nie tylko uzyskać formułę, ale także ją zapisać:

    MsgBox Range("A1").Formula - otrzymamy komunikat z formułą w komórce "A1";

    Range("B12").Formula = "=2+6*100" - wpisz formułę "=2+6*100" w komórce "B12".

    Metody (Methods)

    Przyjrzyjmy się teraz, jak możemy manipulować zawartością zakresu lub komórki. W tym celu istnieją tak zwane metody (polecenia „co zrobić”) w VBA. Podczas pisania kodu metody oddziela się od obiektu kropką, np.:

    Range("A1").Select lub Cells(1,1).Select

    Ta metoda określa wybranie (Select) komórki „A1”.

    Następnie usuńmy wartość z tej komórki. W tym celu napiszemy następujący kod.

    Selection.ClearContents

    Tutaj program „bierze” to, co wybraliśmy (Selection) i czyści jego zawartość (ClearContents).