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.
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]->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 rngIf 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 + 2If 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.
W takim przypadku przepisałeś t Pętla While powyżej w następujący sposób, jako pętla Do-While.
DoIf 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 rngSelect 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.