VBA Sub

Procedura podrzędna Excel VBA

SUB w VBA jest również znany jako podprogram lub procedura, która zawiera cały kod, jest to instrukcja wbudowana w VBA i gdy jest używana, automatycznie podaje nam instrukcję end sub, a środkowa część jest używana do kodowania, instrukcja sub może być zarówno publiczne, jak i prywatne, a nazwa podprocedury jest obowiązkowa w języku VBA.

Sub oznacza procedurę podrzędną w języku VBA. Procedury podrzędne są używane do wykonywania określonego zestawu zadań dostarczonych w postaci kodu. Wykonuje tylko zadanie wymienione w kodzie zgodnie z językiem VBA, ale nie zwraca żadnej wartości.

Jak napisać procedury podrzędne VBA?

Możesz pobrać ten szablon procedury podrzędnej VBA tutaj - szablon procedury podrzędnej VBA

Aby napisać kody podprocedur, ważne jest zrozumienie struktury podprocedury. Poniżej znajduje się struktura

Sub [nazwa procedury] (parametry) [co należy zrobić?]) End Sub

Aby rozpocząć podprocedurę, musimy użyć słowa „Sub” i nadać nazwę Sub jako nazwę procedury. Nazwa procedury to nic innego jak nazwa naszego makra. W podprocedurze VBA zwykle nie mamy parametrów w nawiasach.

Po wpisaniu nazwy procedury Sub musimy napisać zadania do wykonania. Następnie pojawia się instrukcja End, czyli End Sub.

Przykład 1 - Prosta procedura podrzędna

Przyjrzyjmy się teraz prostym metodom pisania podprocedur.

Krok 1: Rozpocznij słowo „Sub” w module.

Krok 2: Teraz nazwij nazwę makra lub nazwę procedury.

Krok 3: Po nadaniu nazwy podprocedurze wystarczy nacisnąć klawisz Enter, a automatycznie zastosuje instrukcję end.

Teraz widzimy tutaj dwie rzeczy, jedna to początek, a druga to koniec podprocedury. Dla lepszego zrozumienia możemy nazwać to „głową” i „ogonem”.

Między początkiem a ogonem makra musimy napisać nasz kod, aby wykonać jakieś zadanie.

Przykład # 2 - Proste zadanie podprogramu

Ok, teraz zobaczymy, jak wykonać tutaj prostą czynność.

Załóżmy, że chcesz wstawić wartość „Excel VBA” do komórki A1.

Krok 1: Uruchom podprocedurę przy użyciu powyższych metod.

Kod:

 Sub Action1 () End Sub 

Krok 2: Aby uzyskać dostęp do komórki A1, musimy użyć słowa RANGE.

Kod:

 Sub Action1 () Range (End Sub 

Krok 3: Pytanie brzmi, do której komórki 1 chcesz się odnieść? W tym przypadku jest to komórka A1.

Kod:

 Sub Action1 () Range ("A1") End Sub 

Krok 4: Musimy wstawić wartość „Excel VBA”, więc wybierz właściwość WARTOŚĆ, umieszczając kropkę po zakresie.

Kod:

 Sub Action1 () Range („A1”). Value End Sub 

Po rozpoczęciu wpisywania słowa WARTOŚĆ zobaczysz wiele opcji, a te opcje nazywane są listą IntelliSense, która przewiduje na podstawie tego, co wpisujesz. To tak, jak formuły pojawią się w arkuszu, gdy zaczniemy pisać formułę.

Krok 5: Po wybraniu WARTOŚCI postaw znak równości i wprowadź wartość w podwójnych cudzysłowach jako „Excel VBA”.

Kod:

 Sub Action1 () Range („A1”). Value = „Excel VBA” End Sub 

Więc skończyliśmy.

Teraz musimy wykonać to zadanie. Aby wykonać zadanie, które wróciliśmy, musimy uruchomić ten kod, naciskając przycisk RUN w oknie edytora Visual Basic.

Możemy również nacisnąć klawisz skrótu programu Excel, umieszczając kursor wewnątrz kodu makra.

Jak tylko uruchomisz kod, w komórce A1 otrzymasz wartość „Excel VBA”.

Typy podprogramów VBA

Mamy jeszcze dwa typy w procedurze podrzędnej, jedna to procedura publiczna, a druga to procedura prywatna.

Słowa „Publiczny” i „Prywatny” to modyfikatory dostępności, które pozwalają nam inaczej używać ich procedur podrzędnych.

  • Public Sub Procedura pozwala nam używać tej procedury we wszystkich modułach skoroszytu.
  • Procedura Private Sub pozwala nam używać tej procedury tylko w bieżącym module, nigdzie indziej.

Na przykład spójrz na poniższy obraz kodu publicznego, który znajduje się w module 1.

Teraz w module 2 również mogę skorzystać z tej podprocedury.

Akcja1 to nazwa podprocedury, której użyliśmy w module 1.

W module 2 wspomniałem o tym jako „Call Action1”. Oznacza to, że po uruchomieniu podprocedury wykona ona podprocedurę Action1 z modułu 1.

Nie można uzyskać dostępu do prywatnych procedur podrzędnych z innego modułu, musimy uzyskać do nich dostęp tylko z tego samego modułu.