Jak dodać VBA w MS Office?


21

Widziałem posty pokazujące odpowiedzi, które używają kodu / makr VBA ( Visual Basic for Applications ), jednak później zauważyłem też dodatkowe komentarze na temat korzystania z VBA (jak go wdrożyć i wykonać). Mam nadzieję, że pomoże to po prostu wykonać kod.

Moje pytanie brzmi:

Mam trochę kodu VBA. Jak dodać VBA do mojego projektu MS Excel, Word lub Outlook?


1
Próbuję stworzyć kanoniczne pytanie. Dodaj dowolne inne pytania, do których mogę się odwoływać / możemy je zamknąć, dodać tagi lub edytować pytanie lub odpowiedź, aby je ulepszyć, lub opublikować odpowiedzi.
Dave

Powiązane: superuser.com/q/794590/346288 - prosty „kickstart” do debugowania kodu VBA.
Hannu

Odpowiedzi:


19

Aby otworzyć edytor VBA w dowolnym produkcie Microsoft Office 1 , naciśnij Alt+ F11.

Następnie musisz ustalić, w jaki sposób chcesz wdrożyć VBA. Czy chcesz, aby uruchamiało go jakieś zdarzenie w oprogramowaniu, takie jak zapisywany plik lub zmieniany wybór w arkuszu kalkulacyjnym? A może chcesz samodzielnie wykonać kod w dowolnym momencie?

Jeśli to pierwsze, spójrz na Eksplorator projektów i znajdź projekt związany z plikiem, nad którym aktualnie pracujesz.

Jeśli chcesz, aby Twój kod był wyzwalany przez zdarzenie powiązane z konkretnym arkuszem (np. Kod powinien być uruchamiany za każdym razem, gdy zmienia się wartość na Arkuszu1), powinieneś dwukrotnie kliknąć ten konkretny obiekt arkusza wymieniony w Eksploratorze projektów. Otworzy się pole tekstowe, w którym możesz wkleić kod. Jeśli zdarzenie jest powiązane z całym skoroszytem zamiast z konkretnego arkusza (np. Kod powinien zostać uruchomiony po zapisaniu skoroszytu), kliknij dwukrotnie ThisWorkbookobiekt w Eksploratorze projektów.

Jeśli jednak nie chcesz, aby Twój kod był wyzwalany przez zdarzenie, będziesz chciał umieścić kod w module. Jeśli w dokumencie lub skoroszycie znajduje się inny kod, powiedzmy z zarejestrowanego makra, pojawi się on w module. Jeśli istnieje moduł, w większości przypadków będziesz chciał wkleić kod do tego samego modułu pod dowolnym istniejącym kodem. Istniejące moduły zostaną wymienione w Eksploratorze projektów.

Jeśli nie istnieje żaden moduł, musisz wstawić nowy. Aby to zrobić, wybierz Modulez Insertmenu rozwijanego w oknie edytora VBA. Spowoduje to wstawienie nowego modułu i wyświetlenie okna tekstowego w oknie edytora. Wklej tam swój kod.

Jeśli chcesz wykonać kod w module, masz kilka opcji. Jednym z nich jest uruchomienie kodu z okna edytora VBA. Możesz po prostu umieścić kursor gdzieś w kodzie, który chcesz uruchomić i nacisnąć F5, lub kliknąć przycisk Ikona „play” - zielony trójkąt skierowany w prawo(Uruchom) na pasku narzędzi poniżej paska menu, aby wykonać kod.

Inną opcją jest skorzystanie z Macrosokna dialogowego. Aby go otworzyć, wykonaj jedną z następujących czynności:

  • na Viewzakładce wstążki w Macrosokienku (z prawej strony) kliknij Macrosprzycisk
  • na Developerzakładce w Codeokienku (z lewej strony) kliknij Macrosprzycisk
  • naciśnij Alt+F8

Okno dialogowe wygląda następująco:

wprowadź opis zdjęcia tutaj

W powyższym przykładzie, można uruchomić YourCodeprzez

  • wybierając go z listy, a następnie klikając Runlub
  • wybierając go z listy i klikając dwukrotnie.

______
1 Według Czy mogę używać VBA w Excel 2010 Starter Edition? , nie można używać VBA w programie Excel 2010 Starter Edition.


4

Kroki te są wykonywane przy użyciu pakietu Office 2010 (chyba że zaznaczono inaczej), ale powinny być wystarczająco podobne w 2007 i 2013 r. Robię to za pomocą Excela, ale różnice powinny być subtelne.

Pierwszym krokiem jest dodanie karty Deweloper do wstążki.

W pakiecie Office 2007

  1. Kliknij „Menu Office” -> „ Opcje (Program) ”. („Menu Office” odnosi się do Przycisk pakietu Officeprzycisku w lewym górnym rogu.) Wyświetla menu z opcjami „Opcje programu Excel”, „Opcje programu Word” itp. Na dole.

  2. W oknie dialogowym opcji zaznacz „Pokaż kartę programisty na wstążce”: Menu biurowe i kliknij „OK”.

  3. Twoja nowa karta „Deweloper” powinna się wyświetlać.

W pakiecie Office 2010 i 2013

  1. Kliknij Plik -> Opcje .

  2. Wybierz Dostosuj wstążkę .

  3. Po prawej stronie znajdź programistę i zaznacz pole. Kliknij OK .

  4. Nowa karta powinna się wyświetlać, kliknij ją, a następnie kliknij Visual Basic .

Pokazany jest zniechęcający ekran, którym jest okno edycji kodu VBA.

Uwaga dodatkowa : Możesz także otworzyć okno edycji kodu VBA, używając skrótu klawiaturowego Alt+ F11(nawet jeśli karta Deweloper nie jest wyświetlana).

W oknie edycji kodu po lewej stronie powinien znajdować się panel o nazwie Project-VBAProject. W tym przypadku w Microsoft Excel Objects (ta nazwa jest różna w zależności od używanego programu (Word, Outlook itp.)) Jest „rzeczą” o nazwie ThisWorkbook. Kliknij dwukrotnie ThisWorkbook

W tym przykładzie użyjemy następującego kodu.

sub WarnMeOfDanger()
   MsgBox "Argh, a dragon is behind you!"
end sub 

Wszystkie powyższe czynności polegają na wyświetleniu otwartego okna dialogowego w celu wyświetlenia komunikatu na ekranie.

Skopiuj kod i wklej go do białego arkusza w oknie edycji kodu VBA.

Teraz, w górnej części okna edytora kodu VBA, kliknij zielony przycisk odtwarzania i powinieneś zobaczyć komunikat.

Za każdym razem, gdy chcesz uruchomić kod, wróć do tego ekranu i naciśnij przycisk odtwarzania!

Możesz jednak dodać własny przycisk. Jeśli chcesz dodać przycisk, najpierw zwróć uwagę na pierwszy wiersz kodu WarnMeOfDanger(). To jest właściwie nazwa naszego „ podprogramu ”. Zapamiętamy to na później. Teraz wystarczy zamknąć okno, którego używasz (kod jest automatycznie zapisywany).

Nadal na wstążce programisty kliknij opcję Wstaw i wybierz pierwszy element, którym jest przycisk. Kursor myszy zmieni się w krzyżyk (nie zły, mam na myśli jego wygląd). Narysuj rozmiar przycisku. Pojawi się nowe okno, które powinno pokazać nam opcję przypisania przycisku do funkcji. W takim przypadku powinniśmy zobaczyć coś takiego ThisWorkbook.WarnMeOfDanger. Kliknij na to i kliknij OK .

Teraz, jeśli naciśniesz nowy przycisk, pojawi się komunikat. Kliknij przycisk prawym przyciskiem myszy, aby uzyskać opcje, aby go przenieść, zmienić tekst, zmienić rozmiar itp.


Pytanie i odpowiedź tej samej osoby? Dziwne .......
Prasanna

2
@Prasanna, kiedy zadajesz pytanie, masz możliwość natychmiastowej odpowiedzi. Pamiętaj, że jest to strona z pytaniami i odpowiedziami, więc dopóki jest trafna i użyteczna, myślę, że jest akceptowana. Jest ich kilka w pobliżu.
Dave

Do tej pory o tym nie wiedziałem. Dzięki za informację
Prasanna

2
Możesz zastąpić kilka pierwszych kroków dostępu do okna kodu prostym „Alt + F11”. :)
Ƭᴇcʜιᴇ007

@ Ƭᴇcʜιᴇ007, nie krępuj się edytować :) +1
Dave
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.