VBA - skróty do edytora Visual Basic

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

Będziesz pomóc w rozwoju serwisu, dzieląc stronę ze swoimi znajomymi

wave wave wave wave wave