Najlepszy przewodnik VBA (dla początkujących), jakiego kiedykolwiek będziesz potrzebować

Platforma programistyczna VBA(VBA programming) , która działa w prawie wszystkich produktach pakietu Microsoft Office(Microsoft Office) , jest jednym z najpotężniejszych narzędzi, z których każdy może skorzystać, aby usprawnić korzystanie z tych produktów.

Ten przewodnik VBA dla początkujących pokaże Ci, jak dodać menu Deweloper(Developer) do aplikacji pakietu Office(Office) , jak wejść do okna edytora VBA oraz jak działają podstawowe instrukcje i pętle (VBA)VBA , dzięki czemu możesz zacząć korzystać z VBA w programach Excel , Word , Powerpoint , Outlook i OneNote .

Ten przewodnik VBA wykorzystuje najnowszą wersję produktów Microsoft Office . Jeśli masz wcześniejszą wersję, możesz zauważyć niewielkie różnice na zrzutach ekranu.

Jak włączyć i używać edytora VBA(How To Enable & Use The VBA Editor)

W każdym z produktów pakietu Office(Office) użytych w tym przewodniku możesz zauważyć, że nie masz przywoływanego menu Deweloper . (Developer)Menu programisty jest dostępne tylko w programach Excel(Excel) , Word , Outlook i Powerpoint . OneNote nie oferuje narzędzia do edycji kodu VBA z poziomu aplikacji, ale nadal możesz odwoływać się do interfejsu API OneNote(OneNote API) , aby wchodzić w interakcje z OneNote z innych programów  pakietu Office .(Office)

Dowiesz się, jak to zrobić, w naszym nadchodzącym przewodniku Advanced VBA .

  • Aby włączyć menu Deweloper(Developer) w dowolnym produkcie biurowym, wybierz menu Plik(File) i wybierz Opcje(Options) z lewego menu nawigacyjnego. 
  • Zobaczysz wyskakujące menu Opcje . (Options)Wybierz Dostosuj wstążkę(Customize Ribbon) z lewego menu nawigacyjnego.

Lista po lewej stronie zawiera wszystkie dostępne menu i polecenia menu dostępne w tej aplikacji pakietu Office(Office) . Lista po prawej to te, które są aktualnie dostępne lub aktywowane.

  • Powinieneś zobaczyć Developer na liście po prawej stronie, ale nie zostanie aktywowany. Po prostu(Just) zaznacz pole wyboru, aby aktywować menu programisty(Developer) .

  • Jeśli po prawej stronie nie widzisz opcji Deweloper(Developer) , zmień po lewej stronie Wybierz polecenia(Choose commands) z listy rozwijanej na Wszystkie polecenia(All Commands) . Znajdź programistę(Developer) z listy i wybierz Add>> w środku, aby dodać to menu do Wstążki(Ribbon) .
  • Po zakończeniu wybierz OK .
  • Gdy menu Deweloper(Developer) jest aktywne, możesz wrócić do głównego okna aplikacji i wybrać Deweloper(Developer) z górnego menu. 
  • Następnie wybierz Wyświetl kod(View Code) z grupy Kontrolki(Controls) na wstążce, aby otworzyć okno edytora VBA .

  • Spowoduje to otwarcie okna edytora VBA , w którym możesz wpisać kod, którego nauczysz się w kilku następnych sekcjach.

  • Spróbuj dodać menu Deweloper(Developer) do kilku aplikacji pakietu Office(Office) , których używasz na co dzień. Gdy będziesz już swobodnie otwierać okno edytora VBA , przejdź do następnej sekcji tego przewodnika.

Ogólne wskazówki dotyczące programowania VBA dla początkujących(General VBA Programming Tips for Beginners)

Zauważysz, że po otwarciu edytora VBA opcje nawigacji w lewym panelu wyglądają inaczej w zależności od aplikacji (VBA)pakietu Office(Office) .

Dzieje się tak, ponieważ dostępne obiekty, w których możesz umieścić kod VBA , zależą od tego, jakie obiekty znajdują się w aplikacji. Na przykład w programie Excel(Excel) można dodać kod VBA do obiektów skoroszytu lub arkusza. (VBA)W programie Word(Word) możesz dodać kod VBA do dokumentów. W Powerpoint tylko do modułów.

Więc nie zdziw się różnymi menu. Struktura i składnia kodu VBA jest taka sama we wszystkich aplikacjach. Jedyną różnicą są obiekty, do których możesz się odwoływać, i działania, które możesz wykonać na tych obiektach za pomocą kodu VBA .

Zanim zagłębimy się w różne obiekty i działania, które możesz wykonać za pomocą kodu VBA , przyjrzyjmy się najpierw najpopularniejszej strukturze i składni VBA , których możesz użyć podczas pisania kodu VBA .

Gdzie umieścić kod VBA(Where To Put VBA Code)

Kiedy jesteś w edytorze VBA , musisz użyć dwóch rozwijanych pól w górnej części okna edycji, aby wybrać obiekt, do którego chcesz dołączyć kod, i kiedy chcesz, aby kod został uruchomiony.

Na przykład w programie Excel , jeśli wybierzesz opcję Arkusz(Worksheet) i Aktywuj(Activate) , kod będzie uruchamiany za każdym razem, gdy arkusz zostanie otwarty. 

Inne akcje arkusza, których można użyć do wyzwolenia kodu VBA , obejmują zmiany arkusza roboczego, jego zamknięcie (dezaktywację), uruchomienie obliczenia arkusza roboczego i nie tylko.

Dodając kod VBA w edytorze, zawsze pamiętaj o umieszczeniu kodu VBA na obiekcie i użyciu właściwej akcji, której chcesz użyć do wyzwolenia tego kodu.

Oświadczenia VBA IF(VBA IF Statements)

Instrukcja IF działa w VBA tak samo, jak w każdym innym języku programowania.

Pierwsza część instrukcji JEŻELI sprawdza, czy warunek lub zestaw warunków jest prawdziwy. Warunki te można połączyć operatorem AND lub OR, aby połączyć je ze sobą.

Jednym z przykładów może być sprawdzenie, czy ocena w arkuszu kalkulacyjnym jest wyższa lub niższa od oceny „zdającej” i przypisanie statusu zaliczenia lub niepowodzenia do innej komórki.

If Cells(2, 2) > 75 Then Cells(2, 3) = “Pass” Else Cells(2, 3) = “Fail”

Jeśli nie chcesz, aby cała instrukcja znajdowała się w jednym wierszu, możesz podzielić ją na wiele wierszy, dodając symbol „_” na końcu wierszy.

If Cells(2, 2) > 75 Then _
Cells(2, 3) = “Pass”  Else _
Cells(2, 3) = “Fail”

Korzystanie z tej techniki może często znacznie ułatwić odczytywanie i debugowanie kodu.

VBA dla następnych pętli(VBA For Next Loops)

Instrukcje JEŻELI świetnie nadają się do pojedynczych porównań, jak w powyższym przykładzie patrzenia na pojedynczą komórkę. Ale co, jeśli chcesz przejść przez cały zakres komórek i wykonać na każdej tę samą instrukcję IF?

W tym przypadku potrzebujesz pętli  FOR .

Aby to zrobić, musisz użyć długości zakresu i wykonać pętlę przez tę długość przez liczbę wierszy zawierających dane.

Aby to zrobić, musisz zdefiniować zmienne zakresu i komórki, a następnie przejść przez nie. Będziesz także musiał zdefiniować licznik, aby wyniki były wyświetlane w odpowiednim wierszu. Więc twój kod VBA miałby najpierw tę linię.

Dim rng As Range, komórka As Range (Dim rng As Range, cell As Range)
Dim rowCounter jako Integer(Dim rowCounter as Integer)

Zdefiniuj rozmiar zakresu w następujący sposób. 

Set rng = Range(“B2:B7”)
rowCounter = 2

Na koniec możesz utworzyć pętlę FOR , aby przejść przez każdą komórkę w tym zakresie i dokonać porównania.

For Each cell In rng
   If cell.Value > 75 Then _
   Cells(rowCounter, 3) = "Pass" Else _
   Cells(rowCounter, 3) = "Fail"

   rowCounter = rowCounter + 1

Next cell

Po uruchomieniu tego skryptu VBA(VBA script) zobaczysz wyniki w rzeczywistym arkuszu kalkulacyjnym.

Pętle podczas VBA(VBA While Loops)

Pętla While Loop również przechodzi przez serię instrukcji, podobnie jak pętla FOR , ale warunkiem kontynuacji pętli jest warunek, który pozostaje spełniony.

Na przykład możesz napisać tę samą pętlę FOR powyżej, jako pętlę WHILE , używając po prostu zmiennej rowCounter w następujący sposób.

While rowCounter < rng.Count + 2
   If Cells(rowCounter, 2) > 75 Then _
   Cells(rowCounter, 3) = "Pass" Else _
   Cells(rowCounter, 3) = "Fail"
   rowCounter = rowCounter + 1
Wend

Uwaga: limit zakończenia rng.Count + 2 jest wymagany, ponieważ licznik wiersza zaczyna się od 2 i musi kończyć się w wierszu 7, w którym kończą się dane. Jednak liczba zakresu (B2:B7) wynosi tylko 6, a pętla While kończy się dopiero, gdy licznik będzie WIĘKSZY(GREATER) niż licznik – więc ostatnia wartość rowCounter musi wynosić 8 (lub rng.Count + 2).

Możesz również skonfigurować pętlę While w następujący sposób:

While rowCounter <= rng.Count + 1

Licznik zakresu (6) można zwiększyć tylko o 1, ponieważ gdy zmienna rowCounter osiągnie koniec danych (wiersz 7), pętla może się zakończyć.

VBA Rób póki i rób aż do pętli(VBA Do While and Do Until Loops)

Pętle Do While i Do Until są prawie identyczne z pętlami While, ale działają nieco inaczej.

  • Pętla While(While Loop) na początku pętli sprawdza, czy warunek jest spełniony.
  • Pętla Do-While(Do-While Loop) sprawdza, czy warunek jest spełniony po wykonaniu instrukcji w pętli.
  • Pętla Do-Until(Do-Until Loop) sprawdza, czy po wykonaniu pętli warunek jest nadal fałszywy.

W takim przypadku możesz przepisać powyższą pętlę While w następujący sposób, jako pętlę Do-While.

Do
   If Cells(rowCounter, 2) > 75 Then _
   Cells(rowCounter, 3) = "Pass" Else _
   Cells(rowCounter, 3) = "Fail"
   
   rowCounter = rowCounter + 1
Loop While rowCounter < rng.Count + 2

W tym przypadku logika nie zmienia się zbytnio, ale jeśli chcesz się upewnić, że porównanie logiczne ma miejsce po uruchomieniu wszystkich instrukcji (umożliwiając im wykonanie wszystkich bez względu na to, co przynajmniej raz), wtedy funkcja Do-While lub pętla Do-Until jest właściwą opcją.

Oświadczenia dotyczące wyboru przypadku VBA(VBA Select Case Statements)

Ostatnim typem instrukcji logicznej, którą musisz zrozumieć, aby rozpocząć tworzenie struktury kodu VBA , są instrukcje Select Case .

Biorąc pod uwagę powyższy przykład, załóżmy, że chcesz mieć metodę oceniania, która nie polega tylko na zaliczeniu niepowodzenia. Zamiast tego chcesz przypisać ocenę literową od A do F.

Możesz to zrobić za pomocą następującej instrukcji Select Case :

For Each cell In rng
   
   Select Case cell

   Case 95 To 100
      Cells(rowCounter, 3) = "A"
   Case 85 To 94
      Cells(rowCounter, 3) = "B"
   Case 75 To 84
      Cells(rowCounter, 3) = "C"
   Case 65 To 74
      Cells(rowCounter, 3) = "D"
   Case 0 To 64
      Cells(rowCounter, 3) = "F"
   End Select

   rowCounter = rowCounter + 1

Next cell

Wynikowy arkusz kalkulacyjny po uruchomieniu tego skryptu VBA wygląda jak ten poniżej.

Teraz wiesz już wszystko, co musisz wiedzieć, aby zacząć używać VBA w aplikacjach Microsoft Office .



About the author

Jestem ekspertem komputerowym z ponad 10-letnim doświadczeniem i specjalizuję się w pomaganiu ludziom w zarządzaniu komputerami w ich biurze. Napisałem artykuły na takie tematy, jak optymalizacja połączenia internetowego, konfiguracja komputera w celu uzyskania najlepszych wrażeń w grach i nie tylko. Jeśli szukasz pomocy we wszystkim, co dotyczy Twojej pracy lub życia osobistego, jestem osobą dla Ciebie!



Related posts