Visual Basic for Application ( VBA ) to język programowania , który pozwala rozszerzyć funkcjonalność programu Excel i zautomatyzować powtarzalne zadania. Za pomocą języka VBA można tworzyć makra, formularze, funkcje niestandardowe i aplikacje interaktywne. W tym artykule poznasz podstawy VBA w Excelu i jak go wykorzystać do wykonywania prostych lub skomplikowanych operacji.
Jak uzyskać dostęp do VBA w Excelu?

Aby uzyskać dostęp do VBA w Excelu, musisz włączyć zakładkę Deweloper na wstążce. Aby to zrobić, wykonaj następujące kroki:
- Kliknij przycisk Plik, a następnie Opcje.
- W oknie Opcje programu Excel kliknij opcję Dostosuj wstążkę.
- Na liście głównych zakładek zaznacz pole Deweloper, a następnie kliknij OK.
Następnie na wstążce pojawi się karta Deweloper. Ta karta zawiera kilka narzędzi związanych z VBA, takich jak przycisk Visual Basic, przycisk Rejestruj makro lub przycisk Wstaw formant.


Przycisk Visual Basic otwiera Edytor Visual Basic (VBE), w którym tworzysz i edytujesz kod VBA. Przycisk Rejestruj makro automatycznie generuje kod VBA odtwarzający czynności, które wykonujesz w aplikacji. Przycisk Wstaw formant umożliwia dodanie do arkusza elementów interaktywnych, takich jak przyciski, pola wyboru lub listy rozwijane.
Jak napisać kod VBA w Excelu?
Aby napisać kod VBA w Excelu, musisz użyć Edytora Visual Basic (VBE). Aby go otworzyć, kliknij przycisk Visual Basic na karcie Deweloper na wstążce.
VBE składa się z kilku okien:

- W oknie Projekt prezentowana jest hierarchiczna struktura obiektów zawierających kod VBA. Na przykład, jeśli masz skoroszyt o nazwie Mój zeszyt.xlsm zawierający dwa arkusze o nazwach Arkusz1 i Arkusz2, w obszarze Mój zeszyt.xlsm pojawią się obiekty Arkusz1 i Arkusz2 oraz obiekt o nazwie Ten zeszyt.
- Okno Właściwości wyświetla właściwości obiektu wybranego w oknie Projekt. Na przykład, jeśli wybierzesz obiekt Sheet1, zobaczysz jego właściwości, takie jak jego nazwa (Name), jego kolor (Tab.Color), jego kod (CodeName) itp.
- Okno Kod wyświetla kod VBA powiązany z obiektem wybranym w oknie Projekt. Na przykład, jeśli wybierzesz obiekt Arkusz1, zobaczysz kod VBA uruchamiany podczas interakcji z arkuszem Arkusz1.
- Okno Natychmiastowe wyświetla wyniki kodu VBA lub komunikaty o błędach. Na przykład, jeśli użyjesz funkcji MsgBox do wyświetlenia użytkownikowi wiadomości, wiadomość pojawi się w oknie Natychmiastowym.
Aby napisać kod VBA, musisz przestrzegać pewnych zasad składni:
- Każda instrukcja musi kończyć się znakiem nowej linii lub dwukropkiem (:).
- Słowa kluczowe języka VBA muszą być pisane wielkimi lub małymi literami, ale nie nazwy obiektów, właściwości i metod, w których rozróżniana jest wielkość liter.
- Komentarze muszą być poprzedzone apostrofem (') lub znakiem Rem i muszą być zapisane w osobnej linii lub po stwierdzeniu.
- Struny postaci muszą być otoczone podwójnymi cytatami (”).
- Operatory arytmetyczne to +, -, *, / i ^ (potęga).
- Operatory logiczne to And, Or, Not, Xor i Eqv.
- Operatory porównania to =, <>, <, <=, > i >=.
- Wstępnie zdefiniowane stałe to True, False, Null, Puste, Nothing i vbNullString.
Oto przykład kodu VBA, który wyświetla komunikat użytkownikowi:
Sub Hello() ' To jest komentarz MsgBox "Witam, jestem Bing!" ' Wyświetla komunikat o zakończeniu sub
Jak korzystać z funkcji arkusza kalkulacyjnego Excel w VBA?
W instrukcjach VBA możesz używać większości funkcji arkusza kalkulacyjnego Excel. Aby to zrobić, musisz użyć następującej składni:
Aplikacja.ArkuszFunkcja.NazwaFunkcji(argument1, argument2, ...)
Na przykład, jeśli chcesz użyć funkcji SUMA do obliczenia sumy wartości z zakresu A1:A10, możesz napisać:
Sub Sum() Dim wynik As Double ' Deklaruje zmienną typu Double wynik = Application.WorksheetFunction.Sum(Range("A1:A10")) ' Przypisuje wynik funkcji SUM do zmiennej MsgBox wynik ' Wyświetla wynik End Pod
Możesz także skorzystać z niestandardowych funkcji, które sam utworzysz w VBA. Aby to zrobić, musisz użyć następującej składni:
Funkcja NazwaFunkcji(argument1 Jako Typ1, argument2 Jako Typ2, ...) As ReturnType ' Deklaracje i instrukcje FunctionName = wyrażenie ' Przypisuje do funkcji zwracany wynik End Function
Na przykład, jeśli chcesz utworzyć funkcję obliczającą kwadrat liczby, możesz napisać:
Funkcja Square(liczba jako Double) As Double ' Deklaruje funkcję, która przyjmuje liczbę jako argument i zwraca liczbę Square = liczba * liczba ' Przypisuje funkcję kwadratu liczby End Function
Możesz następnie użyć tej funkcji w instrukcjach VBA lub w formułach Excela. Na przykład :
Sub Test() Dim x As Double ' Deklaruje zmienną typu Double x = 5 ' Przypisuje wartość 5 do zmiennej MsgBox Square(x) ' Wyświetla kwadrat x End Sub
Jak tworzyć makra w Excelu?
Makro to zestaw instrukcji VBA, które są wykonywane jednocześnie. Możesz tworzyć makra, aby zautomatyzować powtarzające się lub złożone zadania w programie Excel. Istnieją dwa sposoby tworzenia makr: poprzez ich nagranie lub zapisanie.
Nagraj makro
Rejestrowanie makra polega na użyciu przycisku Zarejestruj makro na karcie Deweloper na wstążce w celu przechwycenia działań wykonywanych w programie Excel i przekonwertowania ich na kod VBA. Jest to najprostszy i najszybszy sposób na utworzenie makra, ale może spowodować utworzenie słabo zoptymalizowanego lub zbędnego kodu.
Aby nagrać makro, wykonaj następujące kroki:
- Kliknij przycisk Nagraj makro na karcie Deweloper na wstążce.
- W oknie dialogowym Zarejestruj makro nadaj makrze nazwę, wybierz skrót klawiaturowy, jeśli chcesz, wybierz lokalizację przechowywania makra (aktywny skoroszyt, nowy skoroszyt lub osobisty skoroszyt) i w razie potrzeby napisz opis.
- Kliknij OK, aby rozpocząć nagrywanie.
- Wykonaj w Excelu czynności, które chcesz zautomatyzować. Na przykład, jeśli chcesz utworzyć makro formatujące tabelę, wybierz tabelę, nadaj jej styl, posortuj alfabetycznie itp.
- Kliknij przycisk Zatrzymaj nagrywanie na karcie Deweloper na Wstążce, aby zakończyć nagrywanie.
Następnie możesz uruchomić makro, korzystając z wybranego skrótu klawiaturowego, klikając przycisk Makra na karcie Deweloper na Wstążce lub używając przycisku Uruchom w VBE.
Napisz makro
Pisanie makra polega na użyciu VBE do bezpośredniego wpisania kodu VBA odpowiadającego działaniom, które chcesz zautomatyzować. Jest to najbardziej elastyczna i wydajna metoda tworzenia makra, wymaga jednak wiedzy programistycznej.
Aby napisać makro, wykonaj następujące kroki:
- Otwórz VBE, klikając przycisk Visual Basic na karcie Deweloper na wstążce.
- W oknie Projekt wybierz obiekt, w którym chcesz przechowywać makro (aktywny skoroszyt, nowy skoroszyt lub osobisty skoroszyt).
- W oknie Kod wpisz kod VBA odpowiadający akcjom, które chcesz zautomatyzować. Na przykład, jeśli chcesz utworzyć makro formatujące tabelę, wpisz następujący kod:
Sub FormatTable() ' Wybiera zakres tabeli("A1:D10").Select ' Stosuje styl do tabeli Selection.Style = "Tabela 1" ' Sortuje tabelę alfabetycznie według kolumny A ActiveWorkbook.Worksheets("Arkusz1" ). Sort.SortFields.Clear ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("A2:A10") _ , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook .Worksheets („Arkusz1”).Sort .SetRange Range(„A1:D10”) .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With End Sub
Następnie możesz uruchomić makro, używając przycisku Uruchom w VBE lub przypisując mu skrót klawiaturowy lub element sterujący.

Często zadawane pytania
Oto kilka często zadawanych pytań dotyczących używania języka VBA w programie Excel:
Co to jest VBA i po co go używać?
VBA to wersja języka Visual Basic dostarczana z pakietem Microsoft Office. Jest to obiektowy język programowania wykorzystujący składnię zbliżoną do języka naturalnego. VBA umożliwia dostęp do obiektów, właściwości i metod programu Excel oraz manipulowanie nimi za pomocą kodu. Dzięki temu możesz sterować programem Excel w lepszy i wydajniejszy sposób niż poprzez interfejs graficzny.
Korzystanie z VBA ma kilka zalet:
- Możesz zautomatyzować powtarzalne lub żmudne zadania, takie jak czyszczenie danych, formatowanie tabel, tworzenie wykresów i inne.
- Możesz dostosować Excel do swoich konkretnych potrzeb, dodając funkcje, których nie ma w programie lub zmieniając jego zachowanie.
- Możesz wchodzić w interakcję z użytkownikiem za pomocą okien dialogowych, formularzy lub niestandardowych wiadomości.
- Możesz zintegrować Excel z innymi aplikacjami Office lub zewnętrznymi źródłami danych, takimi jak Outlook, Word, Access, SQL Server itp.
Jak debugować kod VBA w Excelu?
Aby debugować kod VBA w Excelu, możesz użyć narzędzi VBE, takich jak punkty przerwania, krokowanie, okno czujki lub okno ustawień regionalnych. Narzędzia te umożliwiają kontrolowanie wykonywania kodu, sprawdzanie wartości zmiennych i wykrywanie błędów.
Jak chronić kod VBA w Excelu?
Aby chronić kod VBA w programie Excel, możesz zablokować projekt VBA hasłem. Aby to zrobić, wykonaj następujące kroki:
- Otwórz VBE, klikając przycisk Visual Basic na karcie Deweloper na wstążce.
- W oknie Projekt kliknij prawym przyciskiem myszy nazwę projektu VBA i wybierz Właściwości projektu VBA.
- W oknie dialogowym Właściwości projektu VBA kliknij kartę Ochrona.
- Zaznacz pole Zablokuj projekt do przeglądania, wpisz hasło i potwierdź je.
- Kliknij OK, aby zamknąć okno dialogowe.
- Zapisz i zamknij skoroszyt.
Jak uruchomić makro podczas otwierania lub zamykania skoroszytu?
Aby uruchomić makro podczas otwierania lub zamykania skoroszytu, należy użyć zdarzeń Workbook_Open lub Workbook_BeforeClose. Aby to zrobić, wykonaj następujące kroki:
- Otwórz VBE, klikając przycisk Visual Basic na karcie Deweloper na wstążce.
- W oknie Projekt wybierz obiekt ThisWorkbook pod nazwą skoroszytu.
- W oknie Kod wybierz Skoroszyt z listy rozwijanej Obiekt w lewym górnym rogu.
- Wybierz opcję Otwórz lub Przed zamknięciem z listy rozwijanej Procedura w prawym górnym rogu.
- Wpisz kod VBA wywołujący makro, które chcesz uruchomić. Na przykład :
Private Sub Workbook_Open() ' Uruchamia makro Hello podczas otwierania skoroszytu Hello End Sub Private Sub Workbook_BeforeClose(Anuluj jako wartość logiczna) ' Uruchamia makro AuRevoir podczas zamykania skoroszytu AuRevoir End Sub
Jak utworzyć formularz w Excelu za pomocą VBA?
Aby utworzyć formularz w programie Excel z VBA, należy skorzystać z kreatora formularzy VBE. Aby to zrobić, wykonaj następujące kroki:
- Otwórz VBE, klikając przycisk Visual Basic na karcie Deweloper na wstążce.
- W oknie Projekt kliknij prawym przyciskiem myszy nazwę projektu VBA i wybierz Wstaw, a następnie Formularz użytkownika.
- Otworzy się nowe okno UserForm. Możesz dodać do niego elementy sterujące, takie jak etykiety, pola tekstowe, przyciski itp. przeciągając je z przybornika.
- Możesz modyfikować właściwości kontrolek w oknie Właściwości lub napisać kod VBA do obsługi ich zdarzeń w oknie Kod.
- Aby wyświetlić formularz można skorzystać z metody Show. Na przykład :
Sub ShowForm() ' Pokazuje formularz UserForm1 UserForm1.Show End Sub
Jak utworzyć niestandardową funkcję w programie Excel za pomocą VBA?
Aby utworzyć funkcję niestandardową w programie Excel za pomocą VBA, należy zastosować następującą składnię:
Funkcja NazwaFunkcji(argument1 Jako Typ1, argument2 Jako Typ2, ...) As ReturnType ' Deklaracje i instrukcje FunctionName = wyrażenie ' Przypisuje do funkcji zwracany wynik End Function
Na przykład, jeśli chcesz utworzyć funkcję obliczającą kwadrat liczby, możesz napisać:
Funkcja Square(liczba jako Double) As Double ' Deklaruje funkcję, która przyjmuje liczbę jako argument i zwraca liczbę Square = liczba * liczba ' Przypisuje funkcję kwadratu liczby End Function
Możesz następnie użyć tej funkcji w instrukcjach VBA lub w formułach Excela. Na przykład :
Sub Test() Dim x As Double ' Deklaruje zmienną typu Double x = 5 ' Przypisuje wartość 5 do zmiennej MsgBox Square(x) ' Wyświetla kwadrat x End Sub
Możesz także skorzystać z niestandardowych funkcji, które sam utworzysz w VBA. Aby to zrobić, musisz użyć następującej składni:
Funkcja NazwaFunkcji(argument1 Jako Typ1, argument2 Jako Typ2, ...) As ReturnType ' Deklaracje i instrukcje FunctionName = wyrażenie ' Przypisuje do funkcji zwracany wynik End Function
Na przykład, jeśli chcesz utworzyć funkcję obliczającą kwadrat liczby, możesz napisać:
Funkcja Square(liczba jako Double) As Double ' Deklaruje funkcję, która przyjmuje liczbę jako argument i zwraca liczbę Square = liczba * liczba ' Przypisuje funkcję kwadratu liczby End Function
Możesz następnie użyć tej funkcji w instrukcjach VBA lub w formułach Excela. Na przykład :
Sub Test() Dim x As Double ' Deklaruje zmienną typu Double x = 5 ' Przypisuje wartość 5 do zmiennej MsgBox Square(x) ' Wyświetla kwadrat x End Sub
Lub
=Kwadrat(A1) ' Oblicza kwadrat wartości komórki A1
Wniosek
W tym artykule dowiedziałeś się, jak używać języka Visual Basic for Application (VBA) w programie Excel. Widziałeś czym jest VBA i po co go używać, jak uzyskać dostęp do VBA w Excelu, jak pisać kod VBA w Excelu, jak korzystać z funkcji arkusza Excela w VBA, jak tworzyć makra w Excelu za pomocą VBA, jak tworzyć formularze w Excel z VBA i jak tworzyć niestandardowe funkcje w Excelu z VBA. Wśród niestandardowych funkcji, które można utworzyć za pomocą języka VBA, znajduje się odejmowanie w programie Excel . Możesz teraz wykorzystać możliwości programistyczne VBA, aby w razie potrzeby dostosować i zautomatyzować program Excel.