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


Platforma Programowanie VBA, która działa w prawie wszystkich produktach Microsoft Office, jest jednym z najpotężniejszych narzędzi, z których każdy może skorzystać, aby zwiększyć wykorzystanie tych produktów.

Ten przewodnik VBA dla początkujący pokażą Ci, jak dodać menu Deweloper do aplikacji Office, jak otworzyć okno edytora VBA oraz jak działają podstawowe instrukcje i pętle VBA, abyś mógł zacząć korzystać z VBA w Excelu, Word, Powerpoint, Outlook i OneNote .

To Przewodnik VBA korzysta z najnowszej wersji produktów Microsoft Office. Jeśli masz wcześniejszą wersję, możesz zobaczyć niewielkie różnice w zrzutach ekranu.

Jak włączyć i używać edytora VBA

W dowolnym pakiecie Office produkty użyte w tym przewodniku mogą zauważyć, że nie masz odpowiedniego menu programisty. Menu programisty jest dostępne tylko w programach 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 w celu interakcji z OneNote z innych programów pakietu Office.

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

  • Aby włączyć menu Deweloper w dowolnym produkcie biurowym, wybierz Plikmenu i wybierz Opcjez lewego menu nawigacyjnego.
  • Zobaczysz wyskakujące menu Opcje. Wybierz Dostosuj wstążkęz menu po lewej stronie.
  • Lewa lista zawiera wszystkie dostępne menu i polecenia menu dostępne w tej aplikacji pakietu Office. Lista po prawej to te, które są obecnie dostępne lub aktywowane.

    In_content_1 all: [300x250] / dfp: [640x360]->
    • Powinieneś zobaczyć Deweloper na liście po prawej stronie, ale nie zostanie aktywowany. Wystarczy zaznaczyć pole wyboru, aby aktywować menu programisty.
      • Jeśli po prawej stronie nie widzisz Deweloper, zmień lewy Wybierz poleceniaz menu rozwijanego na Wszystkie polecenia. Znajdź Deweloperz listy i wybierz Dodaj>>w środku, aby dodać to menu do Wstążki.
      • Wybierz OKkiedy skończysz.
      • Po aktywowaniu menu Deweloper możesz wrócić do głównego okna aplikacji i wybrać Deweloperz górnego menu.
      • Następnie wybierz Wyświetl kodz grupy Kontrolki na wstążce, aby otworzyć okno edytora VBA.
        • Otworzy się okno edytora VBA, w którym możesz wpisać kod, którego nauczysz się w kilku następnych sekcjach.
          • Spróbuj dodać menu programisty do kilku aplikacji pakietu Office, z których korzystasz na co dzień . Po wygodnym otwarciu okna edytora VBA przejdź do następnej sekcji tego przewodnika.
          • Ogólne wskazówki dotyczące programowania VBA dla początkujących

            Zauważysz, kiedy otworzy się edytor VBA, opcje nawigacji w lewym panelu wyglądają inaczej w zależności od aplikacji pakietu Office.

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

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

            Zanim przejdziemy do różnych obiektów i działań, które można wykonać na nich za pomocą kodu VBA, najpierw spójrz na najczęstszą strukturę i składnię VBA, której możesz użyć, pisząc kod VBA.

            Gdzie umieścić kod VBA

            Gdy jesteś w Edytor VBA, musisz użyć dwóch rozwijanych pól u góry okna edycji, aby wybrać obiekt, do którego chcesz dołączyć kod i kiedy chcesz uruchomić kod.

            Na przykład w Excel, jeśli wybierzesz Arkusz roboczyi Aktywuj, kod będzie uruchamiany przy każdym otwarciu arkusza roboczego.

            Inne arkusze działania, których możesz użyć do uruchomienia kodu VBA, obejmują zmiany arkusza, zamknięcie (dezaktywację), uruchomienie obliczeń arkusza itp.

            Kiedy dodajesz kod VBA w edytorze, zawsze rób umieść kod VBA na obiekcie i użyj prawidłowej akcji, której chcesz użyć do uruchomienia tego kodu.

            Instrukcje VBA IF

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

            Pierwsza część instrukcji IF sprawdza, czy warunek lub zestaw warunków jest prawdziwy. Do tych warunków może dołączyć operator 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 „pozytywnej” i przypisanie zaliczenia lub status błędu do innej komórki.

            Jeśli komórki (2, 2)>75, to komórki (2, 3) = „Przekaż” inne komórki (2, 3) = „Niepowodzenie”

            Jeśli nie chcesz całej instrukcji w jednym wierszu, możesz podzielić ją na wiele linii, dodając symbol „_” na końcu linii.

            Jeśli komórki (2, 2)>75, a następnie _
            komórki (2, 3) = „Podaj dalej” _
            komórki (2, 3) = „Niepowodzenie”

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

            VBA dla następnych pętli

            Instrukcje IF są idealne do pojedynczych porównań, podobnie jak powyższy przykład patrzenia na pojedynczą komórkę. Ale co, jeśli chcesz zapętlić cały zakres komórek i wykonać tę samą instrukcję IF na każdej z nich?

            W takim przypadku potrzebna byłaby pętla FOR.

            Aby to zrobić, musisz użyć długości zakresu i przejść przez tę długość według liczby wierszy zawierających dane.

            Aby to zrobić, potrzebujesz aby zdefiniować zmienne zakresowe i komórkowe i przejść przez nie. Musisz także zdefiniować licznik, aby móc wyświetlać wyniki w odpowiednim wierszu. Twój kod VBA najpierw będzie miał tę linię.

            Dim rng As Range, cell As Range
            Dim rowCounter as Integer

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

            Ustaw rng = Zakres („B2: B7”)
            rowCounter = 2

            Na koniec możesz utworzyć twoją 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 Skrypt VBA zobaczysz powoduje powstanie rzeczywistego arkusza kalkulacyjnego.

            VBA While Loops

            A While Loop zapętla również szereg instrukcji, podobnie jak pętla FOR, ale warunkiem pętli do kontynuowania jest pozostały warunek true.

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

            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: wymagany jest limit zakończenia rng.Count + 2, ponieważ licznik wierszy zaczyna się od 2 i musi kończyć się w wierszu 7, gdzie kończą się dane. Jednak liczba zakresów (B2: B7) wynosi tylko 6, a pętla While zakończy się dopiero, gdy licznik będzie WIĘKSZY niż licznik - więc ostatnia wartość licznika 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

            Możesz zwiększaj tylko liczbę zakresów (6) o 1, ponieważ gdy zmienna rowCounter osiągnie koniec danych (wiersz 7), pętla może się zakończyć.

            VBA Do While i Do Until Loops

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

            • Pętla Whilesprawdza, czy warunek jest prawdziwy na początku pętli.
            • Pętla Do-Whilesprawdza, czy warunek jest spełniony po wykonaniu instrukcji w pętli.
            • Do-Loopsprawdza, czy warunek jest nadal fałszywy po wykonaniu pętli.
            • W takim przypadku przepisałeś t Pętla While powyżej w następujący sposób, jako pętla 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 niewiele się zmienia, ale jeśli chcesz się upewnić porównanie odbywa się po uruchomieniu wszystkich instrukcji (pozwalając na ich uruchomienie bez względu na to, co najmniej raz), wtedy właściwa jest pętla „Do-While” lub „Do-Until”.

              Instrukcje VBA Select Case

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

              Biorąc pod uwagę powyższy przykład, powiedzmy, że chcesz mieć metodę oceniania, która nie jest tylko wynikiem pozytywnym. 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 to tak jak poniżej.

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

              Powiązane posty:


              29.01.2020