VBA Samouczek
Rozpoczęcie pracy z VBA
Szukaj…
Uwagi
Ta sekcja zawiera przegląd tego, czym jest vba i dlaczego deweloper może chcieć z niego korzystać.
Powinien także wymieniać wszelkie duże tematy w VBA i zawierać linki do powiązanych tematów. Ponieważ Dokumentacja dla vba jest nowa, może być konieczne utworzenie początkowych wersji tych pokrewnych tematów.
Wersje
Wersja | Wersje Office | Informacje o dacie wydania | Data wydania |
---|---|---|---|
Vba6 | ? - 2007 | [Kiedyś] [1] | 1992-06-30 |
Vba7 | 2010 - 2016 | [blog.techkit.com] [2] | 15.04.2010 |
VBA dla komputerów Mac | 2004, 2011 - 2016 | 2004-05-11 |
Dostęp do edytora Visual Basic w Microsoft Office
Możesz otworzyć edytor VB w dowolnej aplikacji Microsoft Office, naciskając klawisze Alt + F11 lub przechodząc do karty Deweloper i klikając przycisk „Visual Basic”. Jeśli nie widzisz karty Deweloper na Wstążce, sprawdź, czy jest ona włączona.
Domyślnie karta Deweloper jest wyłączona. Aby włączyć kartę Deweloper, przejdź do Plik -> Opcje, wybierz Dostosuj wstążkę z listy po lewej stronie. W prawym widoku drzewa „Dostosuj wstążkę” znajdź element drzewa Deweloper i zaznacz pole wyboru Deweloper. Kliknij przycisk OK, aby zamknąć okno dialogowe Opcje.
Karta Deweloper jest teraz widoczna na Wstążce, na której możesz kliknąć „Visual Basic”, aby otworzyć Edytor Visual Basic. Alternatywnie możesz kliknąć „Wyświetl kod”, aby bezpośrednio wyświetlić panel kodu aktualnie aktywnego elementu, np. Arkusz roboczy, Wykres, Kształt.
Za pomocą VBA można zautomatyzować prawie każdą akcję, którą można wykonać interaktywnie (ręcznie), a także zapewnić funkcje niedostępne w pakiecie Microsoft Office. VBA może utworzyć dokument, dodać do niego tekst, sformatować go, edytować i zapisać, wszystko bez udziału człowieka.
Pierwszy moduł i Hello World
Aby rozpocząć kodowanie, musisz kliknąć prawym przyciskiem myszy swój projekt VBA na lewej liście i dodać nowy moduł. Twój pierwszy kod Hello-World może wyglądać następująco:
Sub HelloWorld()
MsgBox "Hello, World!"
End Sub
Aby to przetestować, naciśnij przycisk Play na pasku narzędzi lub po prostu naciśnij klawisz F5 . Gratulacje! Zbudowałeś swój pierwszy moduł VBA.
Debugowanie
Debugowanie to bardzo skuteczny sposób na dokładne przyjrzenie się i naprawienie niepoprawnie działającego (lub niedziałającego) kodu.
Uruchom kod krok po kroku
Pierwszą rzeczą, którą musisz zrobić podczas debugowania, jest zatrzymanie kodu w określonych lokalizacjach, a następnie uruchomienie go wiersz po wierszu, aby sprawdzić, czy tak się stanie, jak się spodziewamy.
- Punkt przerwania ( F9 , Debugowanie - Przełącz punkt przerwania): Możesz dodać punkt przerwania do dowolnej wykonanej linii (np. Nie do deklaracji), gdy wykonanie osiągnie ten punkt, zatrzymuje się i daje kontrolę użytkownikowi.
- Możesz również dodać słowo kluczowe
Stop
do pustego wiersza, aby kod zatrzymał się w tej lokalizacji w środowisku wykonawczym. Jest to przydatne, jeśli na przykład przed wierszami deklaracji, do których nie można dodać punktu przerwania za pomocą F9 - Step into ( F8 , Debug - Step into): wykonuje tylko jeden wiersz kodu, jeśli jest to wywołanie zdefiniowanej przez użytkownika podfunkcji / funkcji, to jest wykonywane wiersz po wierszu.
- Krok po kroku ( Shift + F8 , Debugowanie - krok po kroku): wykonuje jeden wiersz kodu, nie wprowadza pod / funkcji zdefiniowanych przez użytkownika.
- Step out ( Ctrl + Shift + F8 , Debug - Step out): Wyjdź z bieżącej funkcji / funkcji (uruchom kod do końca).
- Uruchom do kursora ( Ctrl + F8 , Debuguj - Uruchom do kursora): uruchom kod, aż dojdzie do linii z kursorem.
- Za pomocą narzędzia
Debug.Print
można drukować wiersze do okna natychmiastowego w czasie wykonywania. Możesz także użyćDebug.?
jako skrót doDebug.Print
Okno zegarków
Uruchamianie kodu wiersz po wierszu to tylko pierwszy krok, musimy znać więcej szczegółów, a jednym z narzędzi jest do tego okno podglądu (Widok - Okno podglądu), tutaj możesz zobaczyć wartości zdefiniowanych wyrażeń. Aby dodać zmienną do okna zegarka:
- Kliknij go prawym przyciskiem myszy, a następnie wybierz „Dodaj zegarek”.
- Kliknij prawym przyciskiem myszy w oknie zegarka, wybierz „Dodaj zegarek”.
- Idź do Debuguj - Dodaj zegarek.
Po dodaniu nowego wyrażenia możesz wybrać, czy chcesz zobaczyć jego wartość, czy też przerwać wykonywanie kodu, gdy jest prawdziwe lub gdy jego wartość się zmienia.
Natychmiastowe okno
Bezpośrednie okno pozwala wykonać dowolny kod lub wydrukować elementy, poprzedzając je słowem kluczowym Print
lub pojedynczym znakiem zapytania „ ?
”
Kilka przykładów:
-
? ActiveSheet.Name
- zwraca nazwę aktywnego arkusza -
Print ActiveSheet.Name
- zwraca nazwę aktywnego arkusza -
? foo
- zwraca wartośćfoo
* -
x = 10
ustawiax
na 10 *
* Pobieranie / ustawianie wartości zmiennych przez okno natychmiastowe można wykonać tylko w czasie wykonywania
Debugowanie najlepszych praktyk
Ilekroć twój kod nie działa zgodnie z oczekiwaniami, pierwszą rzeczą, którą powinieneś zrobić, to przeczytać go uważnie, szukając błędów.
Jeśli to nie pomoże, rozpocznij debugowanie; w przypadku krótkich procedur skuteczne może być wykonanie go linia po linii, w przypadku dłuższych prawdopodobnie musisz ustawić punkty przerwania lub przerwy w obserwowanych wyrażeniach, celem jest znalezienie linii, która nie działa zgodnie z oczekiwaniami.
Gdy pojawi się wiersz, który daje niepoprawny wynik, ale przyczyna nie jest jeszcze jasna, spróbuj uprościć wyrażenia lub zastąp zmienne stałymi, które pomogą zrozumieć, czy wartość zmiennych jest błędna.
Jeśli nadal nie możesz go rozwiązać i poprosić o pomoc:
- Dołącz jak najmniejszą część kodu, aby zrozumieć swój problem
- Jeśli problem nie jest związany z wartością zmiennych, zastąp je stałymi. (więc zamiast
Sheets(a*b*c+d^2).Range(addressOfRange)
napiszSheets(4).Range("A2")
) - Opisz, który wiersz podaje niewłaściwe zachowanie i co to jest (błąd, zły wynik ...)