Ten samouczek pokaże Ci wiele naprawdę przydatnych skrótów w VBA
Użyj Alt + F11, aby otworzyć VBE
Zwykle, aby przejść do Edytora Visual Basic, należy kliknąć przycisk Visual Basic na wstążce programu Excel. Możesz jednak nacisnąć Alt + F11 zamiast!
Szybkie klawisze w VBE
CTL+R- pokazuje Eksplorator projektów.
Ctl+g - pokazuje Okno bezpośrednie.
F4 - pokazuje Okno właściwości.
F2 - pokazuje Przeglądarka obiektów.
F5 - prowadzi Procedura jesteś w.
F8 - pozwala przejść przez kod w Przerwa tryb.
Nagrywanie makra
Jednym z najlepszych sposobów nauki VBA jest nagranie makra, a następnie przeanalizowanie kodu. Jest to również bardzo szybki sposób pisania kodu, ale rejestrator zarejestruje KAŻDE naciśnięcie klawisza, więc może być konieczna edycja kodu w celu usunięcia zbędnych wierszy.
Przyjrzyjmy się poniższemu makro zarejestrowanemu przez rejestrator makr i zobaczmy, jak możemy uczynić je bardziej wydajnym.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 | Pod format testowy()'„Makro formatu testowego”'' Skrót klawiaturowy: Ctrl+Shift+T'ActiveCell.FormulaR1C1 = "Jabłko"Zakres ("D3"). WybierzActiveCell.FormulaR1C1 = "Gruszki"Zakres ("E3"). WybierzActiveCell.FormulaR1C1 = "Brzoskwinie"Zakres ("C4").WybierzActiveCell.FormułaR1C1 = "12"Zakres ("D4"). WybierzActiveCell.FormułaR1C1 = "14"Zakres ("E4"). WybierzActiveCell.FormułaR1C1 = "16"Zakres ("C5").WybierzActiveCell.FormułaR1C1 = "20"Zakres ("D5"). WybierzActiveCell.FormułaR1C1 = "25"Zakres ("E5"). WybierzActiveCell.FormułaR1C1 = "26"Zakres("C6:E6").WybierzZakres ("E6"). AktywujSelection.FormułaR1C1 = "=SUM(R[-2]C:R[-1]C)"Selection.Borders(xlDiagonalDown).LineStyle = xlNoneSelection.Borders(xlDiagonalUp).LineStyle = xlNoneSelection.Borders(xlEdgeLeft).LineStyle = xlNoneZ zaznaczeniem.Borders(xlEdgeTop).LineStyle = xlCiągły.KolorIndeks = 0.OdcieńIOdcień = 0.Waga = xlcienkiKończyć zZ zaznaczeniem.Borders(xlEdgeBottom).LineStyle = xlDouble.KolorIndeks = 0.OdcieńIOdcień = 0.Waga = xlGrubyKończyć zSelection.Borders(xlEdgeRight).LineStyle = xlNoneSelection.Borders(xlInsideVertical).LineStyle = xlNoneSelection.Borders(xlInsideHorizontal).LineStyle = xlNoneZakres ("C4:E6").WybierzWybór.LiczbaFormat = _"_-[$$-en-US]* #,##0.00_ ;_-[$$-en-US]* -#,##0.00 ;_-[$$-en-US]*"" -""??_ ;_-@_ "Zakres("C3:E3").WybierzZaznaczenie.Czcionka.Pogrubienie = PrawdaZakres ("C3").WybierzActiveCell.FormulaR1C1 = "Jabłka"Napis końcowy |
Teraz spójrz na poniższy kod, który osiągnie ten sam wynik
123456789101112131415161718192021 | Pod format testowy()' Skrót klawiaturowy: Ctrl+Shift+TZakres("C3") = "Jabłka"Zakres("D3") = "Gruszki"Zakres("E3") = "Brzoskwinie"Zakres ("C4") = 12Zakres ("D4") = 14Zakres ("C4") = 16Zakres ("C5") = 20Zakres ("D5") = 25Zakres ("E5") = "26"Zakres("C6:E6").WybierzSelection.FormułaR1C1 = "=SUM(R[-2]C:R[-1]C)"Selection.Borders(xlEdgeTop).LineStyle = xlContinuousSelection.Borders(xlEdgeBottom).LineStyle = xlDoubleZakres ("C4:E6").WybierzWybór.LiczbaFormat = _"_-[$$-en-US]* #,##0.00_ ;_-[$$-en-US]* -#,##0.00 ;_-[$$-en-US]*"" -""??_ ;_-@_ "Zakres("C3:E3").WybierzZaznaczenie.Czcionka.Pogrubienie = PrawdaNapis końcowy |
Wycinając wiele zbędnych kodów i w miarę możliwości poprawiając nagrany kod, możemy sprawić, że makro będzie o wiele bardziej efektywne i czytelne.
Korzystanie ze skoroszytu makr osobistych
Jeśli chcesz, aby można było używać makra we wszystkich plikach programu Excel, możesz je przechowywać w skoroszycie makr osobistych - ten skoroszyt jest ukryty i jest cały czas otwarty w programie Excel, dzięki czemu wszystkie przechowywane tam makra stają się makrami globalnymi .
Jeśli nie widzisz skoroszytu makr osobistych w oknie VBE, zapisz makro i określ, czy ma ono być przechowywane w skoroszycie makr osobistych.
Kod wcięcia
Kiedy robisz wcięcie w swoim kodzie, od razu ułatwiasz jego czytanie i śledzenie go przez kogoś innego. Aby wciąć wiele wierszy kodu, możesz je zaznaczyć i nacisnąć klawisz Tab.
Podobnie, aby przewyższyć kod, naciśnij Shift+Tab a kod ponownie przesunie się w lewo.
Masz dość wyszukiwania przykładów kodu VBA? Wypróbuj Automakro!
Kod komentowania
Dodawanie komentarzy do kodu to kolejny sposób na ułatwienie czytania i nawigacji. Dodajesz komentarz do kodu, umieszczając pojedynczy cudzysłów na początku wiersza, jak pokazano poniżej.
Pisanie małymi literami
VBA używa właściwego przypadku w kodzie. Jeśli piszesz małymi literami i nie zmienia się to na Właściwą literę, możesz szybko zobaczyć, gdzie popełniłeś błąd.
Korzystanie z Intellisense
Intellisense wyskakuje podczas pisania kodu i wyświetla listę wszystkich właściwości, metod i zdarzeń dostępnych dla obiektu, z którym pracujesz. Zwykle pojawia się automatycznie po wpisaniu kropki podczas wpisywania kodu.
Możesz również zmusić go do wyświetlenia, naciskając Ctl+j.
Podobnie, gdy używasz funkcji w programie Excel, które przyjmują argumenty, zwykle pojawiają się one automatycznie.
Możesz zmusić ich do pojawienia się, naciskając Ctl+i.
Autouzupełnienie
Możesz użyć CTL+Spacja kombinację klawiszy, aby użyć automatycznego uzupełniania podczas pisania kodu.
W powyższym przykładzie wszystkie Właściwości, metody, zdarzenia oraz Zmienne zaczynając od str pojawi się na liście do wyboru.
Opcja jasna i kompilująca
Upewnienie się, że masz Option Explicit na górze wszystkich swoich modułów, zapewnia, że wszystkie zmienne są zadeklarowane i zapobiega popełnieniu błędów pisowni w nazwach zmiennych. Jeśli masz włączoną opcję Option Explicit i kompilujesz lub uruchamiasz swój kod, otrzymasz błąd, jeśli nazwa zmiennej nie zostanie rozpoznana.
Natychmiastowe okno i debugowanie
Okno bezpośrednie (możesz je włączyć za pomocą Ctl+g) umożliwia debugowanie kodu i znajdowanie wartości zmiennych w tym trybie debugowania.
12345678 | Podzmienne testowe'deklaruj zmienną'Dim strName jako ciąg'wypełnij zmiennąstrName = "Anna Smith"'użyj klawisza F8, aby przejść przez kod i wysłać wartość zmiennej za pomocą debug.print do bezpośredniego oknaDebug. Print strNameNapis końcowy |