Jak korzystać z języka Visual Basic for Application (VBA) w programie Excel?

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?

GetPaidStock.com 64886528e3bbe

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.
    tth img plik programu Excel w10
  • W oknie Opcje programu Excel kliknij opcję Dostosuj wstążkę.
    tth img aplikacja w10 plik Excel opcja osobista wstążka dev
  • 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.

tth img w10 aplikacja Excel dev
tth img w10 aplikacja Excel dev vba

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:

tth img w10 aplikacja Excel dev vba 1 1
  • 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.
    tth img w10 aplikacja Excel dev okno projektu vba
  • 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 właściwości aplikacji tth img w10 Excel dev vba
  • 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.
    tth img w10 aplikacja Excel dev kod okna vba
  • 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.
    tth img w10 aplikacja Excel dev okno vba

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.
  • Ciągi znaków muszą być ujęte w cudzysłów („).
  • 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.
    tth img w10 aplikacja Excel dev zapisz makro
  • 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.
    tth img w10 aplikacja Excel dev zapisz makro
  • 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.
    tth img w10 aplikacja Excel dev vba
  • 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.

tth img w10 aplikacja Excel dev kod testowy vba

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.

Poprzedni artykuł Jak nauczyć się Pythona na poziomie początkującym?
Następny artykuł Jak połączyć się ze skrzynką pocztową Bouygues Telecom?