Najlepszy przewodnik VBA (dla początkujących), jakiego kiedykolwiek potrzebujesz

Najlepszy przewodnik VBA (dla początkujących), jakiego kiedykolwiek potrzebujesz

Platforma programowania VBA, która działa na prawie wszystkich produktach Microsoft Office, jest jednym z najpotężniejszych narzędzi, które każdy może użyć do poprawy korzystania z tych produktów.

Ten przewodnik VBA dla początkujących pokaże, jak dodać menu programisty do aplikacji biurowej, jak wprowadzić okno edytora VBA oraz jak działają podstawowe instrukcje i pętle VBA, abyś mógł zacząć korzystać z VBA w Excel, Word, PowerPoint, PowerPoint, Perspektywy i OneNote.

Spis treści

    Lewa lista zawiera wszystkie dostępne menu i polecenia menu dostępne w tej aplikacji biurowej. Lista po prawej to te, które są obecnie dostępne lub aktywowane.

    • Powinieneś zobaczyć programistę na liście po prawej stronie, ale nie zostanie on aktywowany. Wystarczy wybierz pole wyboru, aby aktywować menu programisty.
    • Jeśli nie widzisz Deweloper dostępne po prawej, a następnie zmień lewy Wybierz polecenia Od rozwijania do Wszystkie polecenia. Znajdować Deweloper z listy i wybierz Dodaj >> w środku, aby dodać to menu do wstążki.
    • Wybierać OK kiedy skończysz.
    • Po aktywności menu programisty możesz wrócić do głównego okna aplikacji i wybrać Deweloper Z górnego menu. 
    • Następnie wybierz Zobacz kod z grupy sterujących w wstążce, aby otworzyć okno edytora VBA.
    • To otworzy okno edytora VBA, w którym możesz wpisać kod, którego nauczysz się w następnych kilku sekcjach.
    • Spróbuj dodać menu programistów do kilku aplikacji biurowych, których używasz każdego dnia. Gdy będziesz komfortowy otwieranie 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 edytor VBA otworzy się, opcje nawigacji w lewym panelu wyglądają inaczej w stosunku do jednej aplikacji biurowej do drugiej.

    Wynika to z faktu, że dostępne obiekty, w których można umieścić kod VBA, zależą od obiektów w aplikacji. Na przykład w programie Excel możesz dodać kod VBA do obiektów skoroszytu lub arkusza. 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 są takie same we wszystkich aplikacjach. Jedyną różnicą są obiekty, które możesz odwołać, a działania, które możesz podjąć na te obiekty za pośrednictwem kodu VBA.

    Zanim zagłębimy się w różne obiekty i działania, które możesz podjąć za pomocą kodu VBA, najpierw spójrzmy na najczęstszą strukturę i składnię VBA, której możesz użyć podczas pisania kodu VBA.

    Gdzie umieścić kod VBA

    Kiedy jesteś w edytorze VBA, musisz użyć dwóch rozwijanych pola u góry okna edycji, aby wybrać obiekt, do którego chcesz dołączyć kod, a kiedy chcesz uruchomić kod.

    Na przykład w programie Excel, jeśli wybierzesz Arkusz roboczy I Aktywuj, Kod będzie działał za każdym razem, gdy arkusz jest otwarty. 

    Inne działania w arkuszu, których możesz użyć do wyzwalania kodu VBA, obejmują to, gdy arkusz roboczy się zmienia, gdy jest zamknięty (dezaktywowany), po uruchomieniu obliczeń arkusza roboczego i nie tylko.

    Po dodaniu kodu VBA w edytorze zawsze upewnij się, że umieszczasz kod VBA na obiekcie i używając poprawnego działania, którego chcesz użyć do wyzwolenia tego kodu.

    VBA Jeśli oświadczenia

    Oświadczenie IF działa w VBA, tak jak działa w dowolnym innym języku programowania.

    Pierwsza część stwierdzenia IF dotyczy tego, czy stan lub zestaw warunków jest prawdziwy. Do tych warunków może połączyć operator, aby połączyć je ze sobą.

    Jednym z przykładów byłoby sprawdzenie, czy ocena w arkuszu kalkulacyjnym jest powyżej lub poniżej oceny „przechodzenia”, i przypisanie statusu przepustki lub awarii do innej komórki.

    Jeśli komórki (2, 2)> 75, komórki (2, 3) = „przekaż” komórki (2, 3) = „upadek”

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

    Jeśli komórki (2, 2)> 75, to _
    Komórki (2, 3) = „przejście” else _
    Komórki (2, 3) = „Upadek”

    Korzystanie z tej techniki może często ułatwić kod do odczytu i debugowania.

    VBA na następne pętle

    Jeśli stwierdzenia są świetne do pojedynczych porównań, podobnie jak powyższy przykład patrzenia na pojedynczą komórkę. Ale co, jeśli chcesz zapętlić się przez cały zakres komórek i zrobić to samo, jeśli stwierdzenie na każdym?

    W takim przypadku potrzebujesz pętli. 

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

    Aby to zrobić, musisz zdefiniować zakres i zmienne komórkowe i zapętlić się. Będziesz także musiał zdefiniować licznik, abyś mógł wyprowadzić wyniki do odpowiedniego wiersza. Więc twój kod VBA najpierw miałby ten wiersz.

    Dim RNG jako zakres, komórka jako zakres
    Dim RowCounter jako liczba całkowita

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

    SET RNG = Zakres („B2: B7”)
    RowCounter = 2

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

    Dla każdej komórki w RNG Jeśli komórka.Wartość> 75, a następnie _  Komórki (RowCounter, 3) = "pass" else _  Komórki (RowCounter, 3) = „Fail”  RowCounter = RowCounter + 1 Następna komórka

    Po uruchomieniu tego skryptu VBA widać wyniki w rzeczywistym arkuszu kalkulacyjnym.

    VBA podczas pętli

    Pętla na chwilę pętla również przez szereg stwierdzeń, podobnie jak pętla, ale stan pętli do kontynuacji jest stanem pozostającym prawdziwym.

    Na przykład możesz napisać to samo dla pętli powyżej, jako pętla, po prostu używając zmiennej RowCounter w następujący sposób.

    Podczas rowCounter < rng.Count + 2 Jeśli komórki (RowCounter, 2)> 75, to _  Komórki (RowCounter, 3) = "pass" else _  Komórki (RowCounter, 3) = „Fail”  RowCounter = RowCounter + 1 Wend

    Zanotuj rng.Count + 2 Wymagany jest limit zakończenia, ponieważ licznik wiersza zaczyna się od 2 i musi zakończyć się w wierszu 7, gdzie kończą się dane. Jednak liczba zasięgu (B2: B7) wynosi tylko 6, a pętla While zakończy się tylko wtedy, gdy licznik będzie większy niż licznik - więc ostatnia wartość RowCounter musi wynosić 8 (lub RNG.Count + 2).

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

    Podczas rowCounter <= rng.Count + 1

    Możesz tylko zwiększyć liczbę zakresu (6) na 1, ponieważ gdy zmienna RowCounter osiągnie koniec danych (wiersz 7), pętla może zakończyć.

    VBA robią i robią to, aż pętle

    Rób podczas gdy pętle będą prawie identyczne z pętlami, ale działają nieco inaczej.

    • Podczas pętli sprawdza, czy warunek jest prawdziwy na początku pętli.
    • Pętla do zrobienia sprawdza, czy warunek jest prawdziwy po wykonaniu instrukcji w pętli.
    • Pętla do samotil sprawdza, czy warunek jest nadal fałszywy po wykonaniu pętli.

    W takim przypadku przepisałeś pętlę pobytu powyżej w następujący sposób, jako pętla do zrobienia.

    Do Jeśli komórki (RowCounter, 2)> 75, to _  Komórki (RowCounter, 3) = "pass" else _  Komórki (RowCounter, 3) = „Fail”  RowCounter = RowCounter + 1 Pętla podczas rowCounter < rng.Count + 2

    W takim przypadku logika nie zmienia się zbytnio, ale jeśli chcesz upewnić się, że porównanie logiki odbywa się po uruchomieniu wszystkich stwierdzeń (pozwalając im uruchomić, bez względu na to, co przynajmniej raz), to zrób to zrobić lub Do-until Loop to właściwa opcja.

    VBA Wybierz instrukcje przypadków

    Ostatecznym typem instrukcji logicznej, którą musisz zrozumieć, aby rozpocząć strukturyzację kodu VBA, to wybierz instrukcje sprawy.

    Biorąc pod uwagę powyższy przykład, powiedzmy, że chcesz mieć metodę oceniania, która nie jest tylko upadkiem. Zamiast tego chcesz przypisać klasę literową od A do F.

    Możesz to zrobić z następującą instrukcją Wybierz przypadek:

    Dla każdej komórki w RNG Wybierz komórkę przypadku  Przypadek 95 do 100  Komórki (RowCounter, 3) = „A” Przypadek 85 do 94  Komórki (RowCounter, 3) = „B”  Przypadek 75 do 84  Komórki (RowCounter, 3) = „C”  Przypadek 65 do 74  Komórki (RowCounter, 3) = „D”  Przypadek od 0 do 64  Komórki (RowCounter, 3) = „F”  Wybierz koniec RowCounter = RowCounter + 1 Następna komórka

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

    Teraz wiesz wszystko, co musisz wiedzieć, aby zacząć korzystać z VBA w aplikacjach Microsoft Office.