Zmienna publiczna Excel VBA

Zmienna jest ważną częścią życia programistów. Za każdym razem, gdy programista koduje, tworzy pewien zestaw zmiennych. Zmienną można uznać za kupon, którego często używamy w witrynach internetowych, takich jak Flipkart, Amazon itp., Który to kupon umożliwia uzyskanie określonej zniżki na określone produkty. To samo dotyczy zmiennej. Zmienną można gramatycznie zdefiniować jako symbol zastępczy, który rezerwuje pewną pamięć w systemie o określonej nazwie. Tę przestrzeń pamięci można następnie wykorzystać w dowolnym momencie o tej samej nazwie.

Zmienna VBA jest uważana za zmienną publiczną w dwóch okolicznościach. Gdy -

  • Można go używać wraz ze wszystkimi kodami w module.
  • Można go stosować we wszystkich kodach dla różnych modułów.

Mówiąc ogólnie, zmienna jest uważana za zmienną publiczną, gdy można jej użyć w dowolnym kodzie i dowolnym module. W tym artykule zobaczymy, jak można zdefiniować zmienną. Jak można to zdefiniować publicznie w VBA.

Przed rozpoczęciem koncepcji zmiennej publicznej VBA musimy zrozumieć, że zmienne, które są używane w jednej podprocedurze, nie mogą być użyte w drugiej podprocedurze (w tym miejscu zaczęliśmy odczuwać potrzebę posiadania zmiennej publicznej które mogą być używane w dowolnym module, dowolnej podprocedurze).

Załóżmy, że tworzymy podprocedurę w VBA i definiujemy tam nową zmienną za pomocą instrukcji Dim.

W tym kodzie var1 jest zmienną zdefiniowaną zgodnie z procedurą podrzędną Ex_Var .

Teraz zdefiniuję nową podprocedurę i ironią jest to, że nie mogę użyć wcześniej zdefiniowanej zmiennej var1 w tej podprocedurze. Zobacz zrzut ekranu poniżej, w którym próbuję przypisać wartość 10 var1 w ramach innej podprocedury. Zobacz także komunikat o błędzie po uruchomieniu kodu.

Deklarując zmienne w ramach podprocedur, ograniczamy ich stosowanie wyłącznie przez tę podprocedurę. Jest to główna wada polegająca na zadeklarowaniu zmiennej w ramach podprocedury.

Prowadzi to do nowej teorii, która obejmuje deklarację zmiennej poza podprocedurami. Pomoże to programiście w szerokim użyciu zdefiniowanych zmiennych w różnych podprocedurach.

Jak zadeklarować zmienne publiczne w VBA?

Spójrzmy na kilka przykładów, aby zadeklarować zmienne publiczne w VBA.

Możesz pobrać ten szablon Excel Variables publicznych VBA tutaj - Szablon Excel Variables publicznych

Przykład # 1 - Publiczne definiowanie zmiennej w module

Załóżmy, że chcemy zdefiniować zmienną, która będzie dostępna publicznie dla wszystkich kodów w jednym module. Możemy to zrobić. Wykonaj poniższe kroki:

Krok 1: Otwórz Edytor Visual Basic (VBE), naciskając klawisze Alt + F11 lub klikając przycisk Visual Basic w zakładce Developers w Excelu. Wybierz kartę Wstaw, przejdź do Moduły i kliknij na nią. Dodaje nowy moduł w VBE do pracy.

Krok 2: W nowo utworzonym module dodaj polecenie Option Explicit na początku kodu VBA (przed utworzeniem dowolnej zmiennej). Opcja Jawna pomaga w przypadku literówki podczas korzystania ze zdefiniowanej zmiennej. Jeśli używana zmienna nie jest zdefiniowana w systemie, ta opcja wyświetla komunikat o błędzie informujący, że zmienna nie jest zdefiniowana.

Kod:

 Opcja Jawna 

Krok 3: Użyj instrukcji Dim, aby utworzyć nową zmienną o nazwie my_name z typem danych jako String.

Kod:

 Opcja Jawne Przyciemnij moją nazwę jako ciąg 

Jeśli możesz zwrócić uwagę, zdefiniowaliśmy tę zmienną jawnie. Oznacza to, że nie jest to częścią określonej podprocedury. Co automatycznie udostępnia tę zmienną dla wszystkich kodów w utworzonym module (Moduł1). Jest to nazywane publicznym definiowaniem zmiennej w module. Ta zmienna może być używana w dowolnym miejscu w wielu podprocedurach w tym samym module.

Załóżmy, że kod podany poniżej przypisałem wartość do zmiennej my_name jako „Lalit Salunkhe”.

Kod:

 Opcja Jawne Dim moja_nazwa jako string Sub Ex_1 () moja_nazwa = "Lalit Salunkhe" MsgBox "Nazywam się:" i moja_nazwa End Sub 

Jeśli uruchomię ten kod, zobaczysz okno komunikatu, jak pokazano na zrzucie ekranu poniżej:

Możemy również użyć tej zmiennej w różnych podprocesach w tym samym module. Zobacz zrzut ekranu podany poniżej:

Kod:

 Opcja Jawne Dim moja_nazwa jako napis Sub Ex_1 () moja_nazwa = "Lalit Salunkhe" MsgBox "Nazywam się:" i moja_nazwa Sub Sub Sub Ex_2 () Dim moja_naż jako liczba całkowita my_name = "Lalit Salunkhe" my_age = 28 MsgBox "Moje imię to: „& my_name &”; Mój wiek to: ”& my_age End Sub 

Zobacz podproc procesowy Ex_2. Ma nową zmienną zdefiniowaną my_age. Użyłem mojej nazwy, aby dodać moje imię i mojej nazwy, aby dodać mój obecny wiek. Możesz zobaczyć, że moja_nazwa jest nadal dostępna w ramach drugiej podprocedury. Po uruchomieniu tego kodu możemy uzyskać wynik w postaci okna komunikatu pokazanego poniżej:

W ten sposób możemy publicznie zdefiniować zmienną w module.

Przykład # 2 - Zdefiniuj publicznie zmienną we wszystkich modułach

Aby osiągnąć ten wyczyn, musisz użyć słów kluczowych jako Publiczny lub Globalny zamiast Dim, co ustawia zmienną jako publiczną dla wszystkich modułów, gdziekolwiek pracujesz.

Krok 1: Utwórz nowy moduł. Przejdź do zakładki Wstaw, kliknij Moduł, aby dodać nowy moduł w VBE.

Krok 2: Dodaj opcję Jawne w module.

Kod:

 Opcja Jawna 

Krok 3: Zdefiniuj nową zmienną o nazwie var1 i var2 zarówno jako liczbę całkowitą typu. Ale tym razem za pomocą publicznego oświadczenia zamiast Dim (z którego korzystaliśmy wcześniej).

Kod:

 Opcja Jawna Publiczna var1 As Integer Publiczna var2 As Integer 

Krok 4: Teraz te dwie zmienne mogą być używane w wielu modułach, jeśli są tworzone w ramach tego samego VBE. Zobacz przykład podany poniżej:

Kod:

 Opcja Jawna Publiczna var1 Jako Integer Publiczna var2 Jako Integer Sub Ex_3 () var1 = 10 var2 = 100 MsgBox „Wartość dla var1 to:” i var1 i Chr (13) oraz „Wartość dla var2 to:” i var2 End Sub 

Przypisaliśmy wartości obu zmiennym za pomocą funkcji MsgBox, próbując wyświetlić wartości dla tych dwóch zmiennych.

Krok 5: Uruchom kod, naciskając klawisz F5 lub klikając przycisk Play, możesz wyświetlić wynik, jak pokazano poniżej:

Krok 6: Użyjemy tych samych zmiennych w module 1, których użyliśmy w pierwszym przykładzie i spróbujemy dowiedzieć się, czy zmienne są tam dostępne, czy nie.

Kod:

 Opcja Jawne Dim moja_nazwa jako napis Sub Ex_1 () moja_nazwa = "Lalit Salunkhe" MsgBox "Nazywam się:" i moja_nazwa Sub Sub Sub Ex_2 () Dim moja_naż jako liczba całkowita my_name = "Lalit Salunkhe" my_age = 28 MsgBox "Moje imię to: „& moja_nazwa &”; Mój wiek to: „& moja_age End Sub Sub Ex_public () var1 = 1000 var2 = 999 MsgBox” Wartość dla var1 to: „& var1 & Chr (13) i„ Wartość dla var2 to: ”i var2 Napis końcowy 

Jeśli mógłbyś zobaczyć powyższy zrzut ekranu, użyliśmy tego samego zestawu zmiennych zdefiniowanych w Module2 i mamy wartości takie jak odpowiednio 1000 i 999. Używamy funkcji MsgBox do przedstawienia wartości tych dwóch zmiennych. Uruchom kod, a zobaczysz wynik jak poniżej:

W ten sposób zmienna może być publicznie używana w module i pomiędzy modułami.

Rzeczy do zapamiętania

  • Zawsze najlepiej jest jawnie zdefiniować zmienne w VBA. Aby nie były ograniczone do podprocedury, w której są zdefiniowane.
  • Możesz przypisać zmienną publiczną na dwa sposoby: jeden w module za pomocą konwencjonalnej instrukcji Dim, a drugi we wszystkich modułach obecnych w VBE za pomocą instrukcji Public lub Global.

Polecane artykuły

To jest przewodnik po VBA Public Variable. Tutaj omawiamy, jak zadeklarować zmienną publiczną w programie Excel za pomocą kodu VBA w programie Excel, a także praktyczne przykłady i szablon programu Excel do pobrania. Możesz także przejrzeć nasze inne sugerowane artykuły -

  1. Globalne zmienne VBA
  2. Jedna zmienna tabela danych w programie Excel
  3. VBA FileSystemObject (FSO)
  4. Tabela dwóch zmiennych danych w programie Excel

Kategoria: