VBA - otwieranie i używanie Edytora Visual Basic (VBE) w programie Excel

Ten samouczek pokaże Ci, jak otwierać i programować w Edytorze Visual Basic w VBA.

Otwieranie Edytora Visual Basic

Istnieje kilka sposobów uzyskania dostępu do Edytora Visual Basic (VBE) w programie Excel.

naciskać Alt + F11 na klawiaturze.

LUB

Kliknij Widok > Makra > Wyświetl makra. Stąd możesz Edytować istniejące makro lub Tworzyć nowy. Każda opcja otwiera edytor VB.

LUB

Deweloper > Visual Basic

Uwaga: Jeśli nie widzisz Wstążki programisty, musisz ją włączyć.

Aby włączyć wstążkę programisty

Kliknij na Plik na Wstążce i przejdź do Opcje. w Dostosuj wstążkę opcje, zaznacz Deweloper pole wyboru. Ta opcja jest domyślnie wyłączona, więc musisz ją włączyć, aby zobaczyć kartę na wstążce.

Kliknij ok.

Karta Deweloper pojawi się na głównej wstążce. Kliknij Visual Basic na początku wstążki, aby uzyskać dostęp do Edytora Visual Basic.

Zrozumienie ekranu VBE

Ekran VBE pokazano na poniższej grafice.

Eksplorator projektów

Eksplorator projektów pozwala zobaczyć, jak zorganizowany jest projekt, w którym pracujesz. Możesz zobaczyć, ile modułów i formularzy jest przechowywanych w projekcie i możesz nawigować między tymi modułami i formularzami. Moduł to miejsce, w którym przechowywany jest kod w twoim skoroszycie, kiedy nagrasz makro, zostanie on zapisany w standardowym module - domyślnie będzie on nazywał się „Moduł 1'.

Każdy arkusz roboczy w pliku Excel ma również moduł, podobnie jak sam skoroszyt. Po wstawieniu nowego arkusza do skoroszytu za pomocą głównego ekranu programu Excel, w Eksploratorze projektu pojawi się dodatkowy moduł arkusza.

Kliknij dwukrotnie moduł, aby przejść do kodu tego modułu.

Możesz także kliknąć menu Okno na pasku narzędzi i wybrać tam moduł, aby przejść do kodu tego modułu.

Rodzaj modułów

Moduły są podzielone na 5 różnych typów.

  1. Moduły standardowe - większość twojego kodu trafi do tego typu modułu. Kiedy nagrywasz makro, trafia ono do standardowego modułu. Kiedy piszesz ogólną procedurę, która ma być używana w całym skoroszycie, zwykle przechodzi ona również do standardowego modułu.
  2. Moduły skoroszytu - ten moduł zawiera kod, który jest unikalny dla danego skoroszytu. Większość kodu w tego typu modułach jest znana jako WYDARZENIA. Zdarzenie może wystąpić na przykład, gdy skoroszyt jest otwierany lub zamykany. Moduł może również zawierać kod pisany przez Ciebie i używany przez zdarzenia.
  3. Moduły arkuszy - ten moduł zawiera kod, który jest unikalny dla tego pojedynczego arkusza. Mogą wystąpić na przykład po kliknięciu arkusza ( Kliknij Wydarzenie) lub po zmianie danych w komórce. Ten moduł może również zawierać kod napisany przez Ciebie i wywołany przez zdarzenia.
  4. Moduły formularzy - jest to moduł za niestandardowym formularzem, który możesz utworzyć. Na przykład możesz utworzyć formularz do przechowywania szczegółów faktury, z przyciskiem OK, kod za przyciskiem (Zdarzenie Click) zawiera kod, który zostanie uruchomiony po kliknięciu przycisku.
  5. Moduły zajęć - ten moduł służy do tworzenia obiektów w czasie wykonywania. Moduł zajęć jest używany przez zaawansowanych programistów VBA i zostanie omówiony na późniejszym etapie.

Wstawianie modułu lub formularza do kodu

Aby wstawić nowy moduł do kodu, kliknij Wstawić na pasku menu i kliknij Moduł.

Lub kliknij Wstaw moduł przycisk, który znajdziesz na standardowej wstążce.

Aby wstawić nowy formularz użytkownika do kodu, wybierz Formularz użytkownika opcja.

Nowy formularz użytkownika pojawi się w Eksplorator projektów i zostanie pokazany w Oknie Kodu po prawej stronie.

Możesz także wstawić Moduł klasy

Moduł klasy służy do wstawiania obiektów do projektu VBA.

Usuwanie modułu lub formularza z Eksploratora projektu

Kliknij prawym przyciskiem myszy moduł lub formularz, który chcesz usunąć, aby wyświetlić menu skrótów.

Kliknij Usunąć (w tym przypadku Formularz użytkownika1… )

LUB

Kliknij na Plik menu, a następnie kliknij Usuń (UserForm1).

Pojawi się okno ostrzegawcze z pytaniem, czy chcesz wyeksportować formularz lub moduł przed jego usunięciem. Wyeksportowanie formularza lub modułu umożliwia zapisanie go jako osobny plik do wykorzystania w innym projekcie Excel w innym czasie.

Częściej niż nie, gdy usuwasz moduł lub formularz, dzieje się tak dlatego, że go nie potrzebujesz, więc kliknij Nie.

Okno właściwości

Zobaczysz okno właściwości poniżej Eksplorator projektów. Może być konieczne włączenie tego.

naciskać F4 lub kliknij Pogląd, Okno właściwości.

Okno właściwości pozwala zobaczyć właściwości dla konkretnego modułu lub formularza, który jest wybrany w Eksplorator projektów. Podczas pracy z modułami możesz użyć okna właściwości, aby zmienić nazwę modułu. To jedyna właściwość dostępna dla modułu. Jednak podczas pracy z formularzami dostępnych będzie znacznie więcej właściwości, a okno Właściwości jest następnie szeroko używane do kontrolowania zachowania formularzy i kontrolek zawartych w formularzu.

Gdy nagrywasz makro, jest ono automatycznie umieszczane w standardowym module. Moduł otrzyma nazwę „Moduł 1' a każdy kod zawarty w tym module jest dostępny do użycia w całym projekcie. Powinieneś zmienić nazwę swojego modułu na coś, co jest znaczące, co ułatwiłoby znalezienie kodu, gdybyś dodał wiele modułów do projektu.

Możesz także zmienić nazwy swoich formularzy.

Jeśli zmieniłeś nazwę arkusza w programie Excel, nazwa arkusza pojawi się jako nazwa arkusza w nawiasach po Arkusz1.

Jeśli chcesz zmienić nazwę modułu za arkuszem, możesz ją zmienić w taki sam sposób, jak zmieniasz nazwę modułu i formularza użytkownika - zmieniając właściwość Nazwa w oknie Właściwości.

Masz dość wyszukiwania przykładów kodu VBA? Wypróbuj Automakro!

Okno kodu

Okno kodu pokazuje pod-procedury i funkcje zawarte w twoich modułach - pokazuje rzeczywisty kod. Podczas nagrywania makra zostanie dla Ciebie utworzona procedura podrzędna. Jeśli dodasz klawisz skrótu do makra, pojawi się on jako komentarz w makrze, aby poinformować Cię, jaki klawisz skrótu został przypisany do makra.

W górnej części okna kodu znajdują się dwa pola kombi. Pozwalają one zobaczyć, nad którym obiektem (jeśli w ogóle) w module pracujesz i nad którą procedurą możesz pracować.

W powyższym przykładzie nie pracujemy na żadnym obiekcie - dlatego jest to ustawione na ogólne, ale pracujemy w ramach procedury Gridlines.

Gdybyśmy mieli więcej niż jedną procedurę w tym module, moglibyśmy użyć powyższego pola kombi, aby przejść do innych procedur.

Zrozumienie Kodeksu

Istnieją 2 rodzaje procedur - Procedury podrzędne oraz Procedury funkcjonalne.

Procedury podrzędne

Rejestrator makr może rejestrować tylko procedury Sub. Procedura Sub robi różne rzeczy. Wykonują czynności, takie jak formatowanie tabeli lub tworzenie tabeli przestawnej, lub w przykładzie linii siatki, zmiana ustawień widoku aktywnego okna. Większość spisanych procedur to procedury podrzędne. Wszystkie makra są procedurami podrzędnymi.

Procedura podrzędna zaczyna się od Pod oświadczenie i kończy się na Napis końcowy oświadczenie. Po nazwie procedury zawsze następuje nawias.

123 Ukryj linie siatki()ActiveWindow.DisplayGridlines = FałszNapis końcowy

Procedury funkcyjne

Procedura Function zwraca wartość. Ta wartość może być pojedynczą wartością, tablicą, zakresem komórek lub obiektem. Funkcje zazwyczaj wykonują jakiś rodzaj obliczeń. Funkcje w programie Excel mogą być używane z Kreatorem funkcji lub mogą być wywoływane z procedur podrzędnych.

123 Funkcja kilo (funty jako podwójne)kilogramy = (funty/2,2)Koniec funkcji

Tej funkcji można użyć w oknie dialogowym Wstaw funkcję w programie Excel, aby przekonwertować funty na kilogramy.

Tworzenie nowej procedury

Zanim utworzysz nową procedurę, upewnij się, że jesteś w module, w którym chcesz zachować procedurę. Nową procedurę można utworzyć, klikając menu Wstaw, Procedura;

lub możesz kliknąć ikonę na pasku narzędzi

Pojawi się następujące okno dialogowe

  1. Wpisz nazwę nowej procedury w polu nazwy - musi zaczynać się od litery alfabetu i może zawierać litery i cyfry oraz mieć maksymalnie 64 znaki.
  2. Możesz mieć Procedura podrzędna, a Procedura działania lub Nieruchomość procedura. (Właściwości są używane w modułach Class i ustawiają właściwości kontrolek ActiveX, które mogłeś utworzyć).
  3. Możesz też określić zakres procedury Publiczny lub Prywatny. Jeśli procedura jest publiczna (domyślna), to może być używana przez wszystkie moduły w projekcie, a jeśli procedura jest prywatna, będzie mogła być użyta tylko przez ten moduł.
  4. W tej procedurze można zadeklarować zmienne lokalne jako Statyczne (jest to związane z zakresem zmiennej i powoduje, że zmienna na poziomie procedury lokalnej jest publiczna dla całego modułu). Nie skorzystamy z tej opcji.

Po wypełnieniu wszystkich istotnych danych kliknij ok.

Następnie wpisujesz swój kod między instrukcjami Sub i End Sub.

ALTERNATYWNIE - możesz wpisać instrukcje Sub i End Sub w swoim module dokładnie tak, jak pokazano powyżej. Nie musisz umieszczać słowa Public przed słowem sub - jeśli to słowo zostanie pominięte, wszystkie procedury w module są automatycznie uznawane za publiczne.

Następnie wpisujesz Pod a następnie nazwę twojej procedury, po której następuje nawias.

tj:

1 Test podrzędny()

ten Napis końcowy oświadczenie pojawi się automatycznie.

Programowanie VBA | Generator kodu działa dla Ciebie!

Pisanie kodu, który jest łatwy do zrozumienia i nawigacji

Dodawanie komentarzy

Wyrób sobie nawyk umieszczania komentarzy w kodzie, aby na późniejszym etapie przypominać sobie o funkcjonalności kodu.

Możesz wstawić komentarz do kodu, ale wpisując apostrof na klawiaturze lub możesz przełączyć pasek narzędzi Edytuj i użyć przycisku komentarza, który pojawia się na tym pasku narzędzi.

Kliknij prawym przyciskiem myszy paski narzędzi.

Wybierz Edytować.

Kliknij przycisk komentarza, aby wstawić komentarz do kodu.

NOTATKA: Zwykle używasz przycisku blokowania komentarzy tylko wtedy, gdy masz kilka linijek kodu, które chcesz skomentować (a nie usunąć). W jednym komentarzu łatwiej jest użyć apostrofu.

Wcięcie

Dobrym nawykiem jest robienie wcięć w kodzie, co ułatwia czytanie kodu i oglądanie różnych części kodu.

W zależności od logiki kodu może istnieć wiele poziomów wcięć.

Wielkie litery a małe litery

VBA dostosowuje cały kod do poprawnej wielkości, więc jeśli wpiszesz WSZYSTKO WIELKIMI LUB WSZYSTKIMI małymi literami, dostosuje Twój kod, aby był poprawny!

Programowanie VBA | Generator kodu działa dla Ciebie!

Autouzupełnienie

Kiedy dostosujesz swój kod, zauważysz, że VBA próbuje Ci pomóc, sugerując kod, który możesz wpisać. Jest to znane jako autouzupełnianie.

Wyłapywanie błędów i debugowanie

Istnieją 4 rodzaje błędów, które mogą wystąpić podczas pisania kodu VBA - błędy składniowe, błędy kompilacji, błędy wykonawcze i błędy logiczne.

Błędy składni

Dzieje się tak, gdy piszesz kod niepoprawnie. VBA w dużej mierze zapobiega temu, włączając opcję sprawdzania składni. Zwykle jest to włączone domyślnie, ale jeśli jest wyłączone, włącz je, przechodząc do Narzędzia, Opcje i kliknij Automatyczne sprawdzanie składni.

Jeśli wpiszesz kod niepoprawnie (na przykład wykluczając coś, co powinno znajdować się w kodzie), podczas pisania kodu pojawi się okienko z komunikatem, dające możliwość zmiany kodu.

Błędy kompilacji

Dzieje się tak, gdy w kodzie brakuje czegoś, co uniemożliwia uruchomienie kodu. Błąd nie pojawia się podczas pisania kodu, ale pojawia się, gdy próbujesz uruchomić kod.

Programowanie VBA | Generator kodu działa dla Ciebie!

Błędy uruchomieniowe

Dzieje się tak, gdy uruchamiasz kod, a składnia i kompilacja są poprawne, ale dzieje się coś innego, co uniemożliwia prawidłowe działanie kodu.

W takim przypadku Sheet4 nie istnieje. Ten komunikat o błędzie jest bardziej przydatny niż komunikaty o błędach kompilacji, ponieważ daje możliwość debugowania kodu i sprawdzenia, dlaczego nie działa.

Kliknij Odpluskwić. Kod zatrzyma się na błędzie i podświetli błąd na żółto, umożliwiając poprawienie błędu.

Zmień Sheet4 na Sheet2 (ponieważ Arkusz 2 istnieje, a Arkusz 4 nie istnieje).

naciskać F5 lub kliknij Kontyntynuj na pasku narzędzi.

Błędy logiczne

Te są najtrudniejsze do znalezienia. W ich przypadku kod jest napisany poprawnie, ale rzeczywista logika kodu jest błędna, więc możesz nie uzyskać pożądanego wyniku z kodu. W przypadku błędów logicznych niezbędne jest wyłapywanie błędów.

Istnieją 2 rodzaje pułapek błędów

W przypadku błędu przejdź do

Poniższy kod służy do otwarcia okna dialogowego otwierania pliku - spowoduje to błąd, jeśli użytkownik kliknie Anulować.

Po uruchomieniu kodu pojawi się okno dialogowe Otwórz plik.

Gdy następnie klikniesz anuluj, wystąpi błąd.

Następująca pułapka błędów będzie kontynuować kod do funkcji wyjścia kodu i zwróci komunikat.

To wykorzystuje On Error GoTo, aby wyjść z funkcji.

Po uruchomieniu kodu i kliknięciu Anuluj pojawi się okno komunikatu.

Przy błędzie Wznów Dalej

Jeśli umieścisz Przy błędzie Wznów Dalej Oświadczenie w kodzie, wiersz zawierający błąd zostanie zignorowany, a kod będzie kontynuowany.

Na przykład, jeśli użytkownik kliknie Anuluj w poniższym kodzie, kod nie spowoduje błędu w czasie wykonywania, po prostu zakończy się, a kod nie zrobi nic więcej.

Zdarza się, że jest to bardzo przydatne, ale w niektórych okolicznościach może być również bardzo niebezpieczne, ponieważ nie zwraca komunikatu, dlaczego otrzymałeś błąd.

Będziesz pomóc w rozwoju serwisu, dzieląc stronę ze swoimi znajomymi

wave wave wave wave wave