Visual Basic for Applications ( VBA ) to język programowania , który pozwala rozszerzyć funkcjonalność programu Excel i zautomatyzować powtarzalne zadania. Za pomocą VBA można tworzyć makra, formularze, funkcje niestandardowe i aplikacje interaktywne. W tym artykule poznasz podstawy VBA w programie Excel i dowiesz się, jak używać go do wykonywania prostych i złożonych operacji.
Jak uzyskać dostęp do języka VBA w programie Excel?

Aby uzyskać dostęp do VBA w programie Excel, należy aktywować kartę Deweloper na wstążce. W tym celu wykonaj następujące kroki:
- Kliknij przycisk Plik, a następnie kliknij pozycję Opcje.

- W oknie Opcje programu Excel kliknij opcję Dostosuj wstążkę.

- Na liście głównych kart zaznacz pole wyboru Deweloper, a następnie kliknij przycisk OK.
Następnie na wstążce pojawi się karta Deweloper. Zawiera ona kilka narzędzi związanych z VBA, takich jak przycisk Visual Basic, przycisk Rejestruj makro i przycisk Wstaw kontrolkę.


Przycisk Visual Basic otwiera Edytor Visual Basic (VBE), w którym można tworzyć i modyfikować kod VBA. Przycisk Rejestruj makro automatycznie generuje kod VBA, który replikuje czynności wykonywane w aplikacji. Przycisk Wstaw kontrolkę umożliwia dodawanie interaktywnych elementów do arkusza kalkulacyjnego, takich jak przyciski, pola wyboru czy listy rozwijane.
Jak napisać kod VBA w programie Excel?
Aby napisać kod VBA w programie Excel, należy 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:

- Okno projektu wyświetla hierarchiczną strukturę obiektów zawierających kod VBA. Na przykład, jeśli masz skoroszyt o nazwie MyWorkbook.xlsm z dwoma arkuszami o nazwach Sheet1 i Sheet2, zobaczysz obiekty Sheet1 i Sheet2 w pliku MyWorkbook.xlsm, a także obiekt o nazwie ThisWorkbook.

- Okno Właściwości wyświetla właściwości obiektu wybranego w oknie Projekt. Na przykład, jeśli wybierzesz obiekt Arkusz1, zobaczysz jego właściwości, takie jak nazwa (Nazwa), kolor (Kolor Tabeli), kod (NazwaKodowa) itd.

- Okno kodu wyświetla kod VBA powiązany z obiektem wybranym w oknie projektu. Na przykład, jeśli zaznaczysz obiekt Arkusz1, zobaczysz kod VBA uruchamiany podczas interakcji z arkuszem Arkusz1.

- Okno bezpośrednie wyświetla wyniki kodu VBA lub komunikaty o błędach. Na przykład, jeśli użyjesz funkcji MsgBox do wyświetlenia komunikatu użytkownikowi, zobaczysz go w oknie bezpośrednim.

Aby napisać kod VBA, należy przestrzegać pewnych reguł składni:
- Każda instrukcja musi kończyć się podziałem wiersza lub znakiem dwukropka (:).
- Słowa kluczowe języka VBA muszą być pisane wielkimi lub małymi literami, nie dotyczy to jednak nazw obiektów, właściwości i metod, w których rozróżniana jest wielkość liter.
- Komentarze muszą być poprzedzone znakiem apostrofu (') lub Rem i muszą być napisane w osobnym wierszu lub po instrukcji.
- Ciągi znaków muszą być ujęte w podwójne cudzysłowy (").
- Operatory arytmetyczne to +, -, *, / i ^ (potęga).
- Operatorami logicznymi są And, Or, Not, Xor i Eqv.
- Operatorami porównania są =, <>, <, <=, > i >=.
- Wstępnie zdefiniowane stałe to True, False, Null, Empty, Nothing i vbNullString.
Oto przykład kodu VBA wyświetlającego użytkownikowi wiadomość:
Sub Hello() ' To jest komentarz MsgBox "Witaj, jestem Bing!" ' Wyświetla komunikat End Sub
Jak używać funkcji arkusza kalkulacyjnego Excel w języku VBA?
W instrukcjach VBA możesz używać większości funkcji arkusza kalkulacyjnego Excela. Aby to zrobić, musisz użyć następującej składni:
Aplikacja.FunkcjaArkusza.NazwaFunkcji(argument1, argument2, ...)
Na przykład, jeśli chcesz użyć funkcji SUMA do obliczenia sumy wartości w zakresie A1:A10, możesz napisać:
Sub Sum() Dim result As Double ' Deklaruje zmienną typu Double result = Application.WorksheetFunction.Sum(Range("A1:A10")) ' Przypisuje wynik funkcji SUMA do zmiennej MsgBox result ' Wyświetla wynik End Sub
Możesz również użyć funkcji niestandardowych, które sam utworzysz w VBA. Aby to zrobić, musisz użyć następującej składni:
Funkcja NazwaFunkcji(argument1 As Type1, argument2 As Type2, ...) As ReturnType ' Deklaracje i instrukcje NazwaFunkcji = wyrażenie ' Przypisuje wynik, który ma zostać zwrócony do funkcji Koniec funkcji
Na przykład, jeśli chcesz utworzyć funkcję obliczającą kwadrat liczby, możesz napisać:
Funkcja Square(liczba As Double) As Double ' Deklaruje funkcję przyjmującą liczbę jako argument i zwracającą liczbę Square = liczba * liczba ' Przypisuje kwadrat liczby do funkcji End Function
Następnie możesz użyć tej funkcji w instrukcjach VBA lub formułach Excela. Na przykład:
Sub Test() Dim x As Double ' Deklaruje zmienną typu Double x = 5 ' Przypisuje zmiennej wartość 5 MsgBox Square(x) ' Wyświetla kwadrat x Koniec sub
Jak tworzyć makra w programie Excel?
Makro to zestaw instrukcji VBA, który wykonuje się jednorazowo. Można tworzyć makra w celu automatyzacji powtarzających się lub złożonych zadań w programie Excel. Istnieją dwa sposoby tworzenia makr: poprzez ich zarejestrowanie lub napisanie.
Nagraj makro
Nagranie makra polega na użyciu przycisku „Rejestruj makro” na karcie „Deweloper” na wstążce, aby przechwycić czynności wykonywane w programie Excel i przekonwertować je na kod VBA. Jest to najprostszy i najszybszy sposób tworzenia makra, ale może on generować słabo zoptymalizowany lub powtarzający się kod.
Aby nagrać makro, wykonaj następujące kroki:
- Kliknij przycisk Zarejestruj makro na karcie Deweloper na wstążce.

- W oknie dialogowym Rejestrowanie makra wpisz nazwę makra, wybierz skrót klawiaturowy (jeśli chcesz), wybierz lokalizację, w której chcesz zapisać makro (aktywny skoroszyt, nowy skoroszyt lub osobisty skoroszyt) i wpisz opis (jeśli chcesz).

- Kliknij OK, aby rozpocząć nagrywanie.
- Wykonaj czynności, które chcesz zautomatyzować w programie Excel. Na przykład, jeśli chcesz utworzyć makro formatujące tabelę, zaznacz ją, zastosuj do niej styl, posortuj alfabetycznie itd.
- Aby zakończyć nagrywanie, kliknij przycisk Zatrzymaj nagrywanie na karcie Deweloper na wstążce.
Następnie możesz uruchomić makro za pomocą wybranego skrótu klawiaturowego, klikając przycisk Makra na karcie Deweloper na wstążce lub używając przycisku Uruchom w środowisku VBE.
Napisz makro
Napisanie makra polega na użyciu VBE do bezpośredniego wpisania kodu VBA odpowiadającego akcjom, które chcesz zautomatyzować. To najbardziej elastyczna i wydajna metoda tworzenia makr, ale wymaga znajomości programowania.
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 zapisać makro (aktywny skoroszyt, nowy skoroszyt lub osobisty skoroszyt).
- W oknie kodu wpisz kod VBA odpowiadający czynnościom, które chcesz zautomatyzować. Na przykład, jeśli chcesz utworzyć makro formatujące tabelę, wpisz następujący kod:
Sub FormatTable() ' Wybiera tabelę Range("A1:D10").Select ' Stosuje styl do tabeli Selection.Style = "Table 1" ' Sortuje tabelę alfabetycznie według kolumny A ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("A2:A10") , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("Sheet1").Sort .SetRange Range("A1:D10") .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Zastosuj koniec z końcem podrzędnym
Następnie możesz uruchomić makro, używając przycisku Uruchom w środowisku VBE lub przypisując mu skrót klawiaturowy lub kontrolkę.

Często zadawane pytania
Poniżej znajdują się najczęściej zadawane pytania dotyczące korzystania z języka VBA w programie Excel:
Czym jest VBA i dlaczego warto go używać?
VBA to wersja języka Visual Basic dołączona do pakietu Microsoft Office. Jest to obiektowy język programowania , który wykorzystuje 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. Zapewnia to bardziej precyzyjną i wydajną kontrolę nad programem Excel niż za pomocą interfejsu graficznego.
Korzystanie z języka VBA zapewnia szereg korzyści:
- Można zautomatyzować powtarzalne i żmudne zadania, takie jak czyszczenie danych, formatowanie tabel, tworzenie wykresów itp.
- Możesz dostosować program Excel do swoich indywidualnych potrzeb, dodając funkcje, których nie ma w oprogramowaniu, lub modyfikując jego zachowanie.
- Możesz komunikować się z użytkownikiem za pomocą okien dialogowych, formularzy lub niestandardowych wiadomości.
- Możesz zintegrować program Excel z innymi aplikacjami pakietu Office lub zewnętrznymi źródłami danych, takimi jak Outlook, Word, Access, SQL Server itp.
Jak debugować kod VBA w programie Excel?
Do debugowania kodu VBA w Excelu można użyć narzędzi VBE, takich jak punkty przerwania, krok po kroku, okno Obserwacja lub okno Ustawienia regionalne. Narzędzia te pozwalają kontrolować wykonywanie kodu, sprawdzać wartości zmiennych i wykrywać błędy.
Jak chronić kod VBA w programie Excel?
Aby zabezpieczyć 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 projektu 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, aby zablokować możliwość przeglądania projektu, 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. W tym celu 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.
- Z listy rozwijanej Procedura w prawym górnym rogu wybierz opcję Otwórz lub Przed zamknięciem.
- Wpisz kod VBA wywołujący makro, które chcesz uruchomić. Na przykład:
Private Sub Workbook_Open() ' Wykonuje makro Bonjour, gdy skoroszyt jest otwierany Bonjour End Sub Private Sub Workbook_BeforeClose(Cancel As Boolean) ' Wykonuje makro AuRevoir, gdy skoroszyt jest zamykany AuRevoir End Sub
Jak utworzyć formularz w programie Excel za pomocą języka VBA?
Aby utworzyć formularz w programie Excel za pomocą języka VBA, należy użyć Projektanta formularzy VBA. W tym celu wykonaj następujące kroki:
- Otwórz VBE, klikając przycisk Visual Basic na karcie Deweloper na wstążce.
- W oknie projektu kliknij prawym przyciskiem myszy nazwę projektu VBA i wybierz polecenie Wstaw, a następnie UserForm.
- Otworzy się nowe okno UserForm. Możesz dodawać kontrolki, takie jak etykiety, pola tekstowe, przyciski itp., przeciągając je z przybornika.
- Można 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żesz użyć metody Show. Na przykład:
Sub ShowForm() ' Wyświetla formularz UserForm1 UserForm1.Show End Sub
Jak utworzyć niestandardową funkcję w programie Excel za pomocą języka VBA?
Aby utworzyć funkcję niestandardową w programie Excel przy użyciu języka VBA, należy użyć następującej składni:
Funkcja NazwaFunkcji(argument1 As Type1, argument2 As Type2, ...) As ReturnType ' Deklaracje i instrukcje NazwaFunkcji = wyrażenie ' Przypisuje wynik, który ma zostać zwrócony do funkcji Koniec funkcji
Na przykład, jeśli chcesz utworzyć funkcję obliczającą kwadrat liczby, możesz napisać:
Funkcja Square(liczba As Double) As Double ' Deklaruje funkcję przyjmującą liczbę jako argument i zwracającą liczbę Square = liczba * liczba ' Przypisuje kwadrat liczby do funkcji End Function
Następnie możesz użyć tej funkcji w instrukcjach VBA lub formułach Excela. Na przykład:
Sub Test() Dim x As Double ' Deklaruje zmienną typu Double x = 5 ' Przypisuje zmiennej wartość 5 MsgBox Square(x) ' Wyświetla kwadrat x Koniec sub
Możesz również użyć funkcji niestandardowych, które sam utworzysz w VBA. Aby to zrobić, musisz użyć następującej składni:
Funkcja NazwaFunkcji(argument1 As Type1, argument2 As Type2, ...) As ReturnType ' Deklaracje i instrukcje NazwaFunkcji = wyrażenie ' Przypisuje wynik, który ma zostać zwrócony do funkcji Koniec funkcji
Na przykład, jeśli chcesz utworzyć funkcję obliczającą kwadrat liczby, możesz napisać:
Funkcja Square(liczba As Double) As Double ' Deklaruje funkcję przyjmującą liczbę jako argument i zwracającą liczbę Square = liczba * liczba ' Przypisuje kwadrat liczby do funkcji End Function
Następnie możesz użyć tej funkcji w instrukcjach VBA lub formułach Excela. Na przykład:
Sub Test() Dim x As Double ' Deklaruje zmienną typu Double x = 5 ' Przypisuje zmiennej wartość 5 MsgBox Square(x) ' Wyświetla kwadrat x Koniec sub
Lub
=KWADRAT(A1) ' Oblicza kwadrat wartości w komórce A1
Wniosek
W tym artykule dowiesz się, jak używać języka Visual Basic for Applications (VBA) w programie Excel. Dowiedziałeś się, czym jest VBA i dlaczego warto go używać, jak uzyskać dostęp do VBA w programie Excel, jak pisać kod VBA w programie Excel, jak korzystać z funkcji arkusza kalkulacyjnego Excela w VBA, jak tworzyć makra w programie Excel za pomocą VBA, jak tworzyć formularze w programie Excel za pomocą VBA oraz jak tworzyć niestandardowe funkcje w programie Excel za pomocą VBA. Wśród niestandardowych funkcji, które możesz utworzyć za pomocą VBA, znajduje się funkcja odejmowania w programie Excel . Teraz możesz wykorzystać potencjał programowania VBA, aby dostosować i zautomatyzować program Excel do swoich potrzeb.
![[GetPaidStock.com]-648864a469b9a](https://tt-hardware.com/wp-content/uploads/2023/06/GetPaidStock.com-648864a469b9a-696x400.jpg)


