Zmienne publiczne VBA

Zmienne publiczne w VBA

„Zmienne publiczne” w VBA, jak sama nazwa wskazuje, to zmienne, które są zadeklarowane do publicznego użytku dla wszystkich makr, które piszemy w tym samym module, a także w różnych modułach. Tak więc, gdy zmienne są zadeklarowane na początku dowolnego makra, nazywa się „Zmienne publiczne” lub „Zmienne globalne”.

Jak zadeklarować zmienne publiczne w VBA?

Zwykle rozpoczynamy podprocedurę VBA i wewnątrz podprocedury deklarujemy nasze zmienne. Jest to powszechna praktyka, którą wszyscy robiliśmy przed tym artykułem.

Możesz pobrać ten szablon VBA Public Variables Excel tutaj - VBA Public Variables Excel Template

Za każdym razem, gdy piszemy nową podprocedurę, deklarujemy nowe zmienne z przypisanymi do nich typami danych. Ale dzisiaj pożegnamy się z powtarzającymi się zmiennymi w podprocedurach.

Przypomnijmy sobie stary styl, poniżej jest kod, który napisałem za pomocą jednej zmiennej.

W procedurze „Public_Variable” zadeklarowałem tę zmienną. Teraz nie mogę używać żadnego z pozostałych modułów.

Teraz w podprocedurze „Public_Variable1” nie możemy użyć zmiennej „Var1”, która została zadeklarowana w pierwszej podprocedurze „Public_Variable”. Jest to ograniczenie deklarowania zmiennych wewnątrz podprocedur.

# 1 - Zmienne poziomu modułu

Jak wszyscy wiemy, piszemy makra w modułach, możemy wstawić kilka modułów. W VBA możemy zadeklarować dwa rodzaje „Zmiennych publicznych”: jeden to użycie zmiennych dla wszystkich podprocedur w tym samym module, a drugi to użycie zmiennych dla wszystkich podprocedur we wszystkich modułach.

Najpierw zobaczymy deklarowanie zmiennych publicznych w VBA na poziomie modułu.

Aby użyć zmiennych dla wszystkich podprocedur w tym samym module, musimy zadeklarować zmienne w górnej części modułu, zanim uruchomimy jakiekolwiek makra.

Poniżej znajduje się przykładowy zrzut ekranu do zrozumienia.

Jak widać na powyższym obrazku, zadeklarowałem dwie zmienne przed uruchomieniem dowolnego makra w module. Teraz te dwie zmienne mogą być używane w dowolnej liczbie makr w tym module.

Wewnątrz podprocedury rozpoczyna się wpisywanie nazwy zmiennej, na której zostanie wyświetlona lista IntelliSense, która wyświetli nazwy zmiennych.

Teraz możemy użyć tych zmiennych we wszystkich makrach, które piszemy w „Module1”.

Te zmienne są ograniczone do wykorzystania tylko w tym module. Na przykład teraz wstawię jeszcze jeden moduł i napiszę nowe makro.

W Module2 nie mogę używać tych zmiennych, które zadeklarowaliśmy w „Module1”.

Jak więc możemy upublicznić te zmienne w VBA, aby były używane we wszystkich modułach i we wszystkich procedurach podrzędnych?

# 2 - Zadeklaruj zmienne używaj ich publicznie

Wróćmy do „Module1”, w tym module zadeklarowaliśmy zmienne zanim zaczniemy pisać sposób działania makra, a także w jakim świecie zadeklarowaliśmy te zmienne.

W naszym tradycyjnym sposobie używania słowa „DIM” zadeklarowaliśmy te zmienne.

Kiedy używamy tylko słowa „DIM”, można go używać tylko we wszystkich makrach, ale w tym samym module.

Zamiast słowa „DIM” musimy użyć słowa „PUBLIC” lub „GLOBAL”, aby udostępnić je we wszystkich modułach makr.

Użyłem słowa „Global”, aby upublicznić deklarację zmiennej. Możesz również użyć słowa „Publiczny”.

Tak więc, używając słów „Global” i „Public”, możemy zadeklarować zmienne, które mogą być użyte dla wszystkich makr w modułach.

Rzeczy do zapamiętania

  • Dobrą praktyką jest publiczne deklarowanie zmiennych, ale przed ich zadeklarowaniem wymagane jest duże doświadczenie.
  • Po uruchomieniu makr, wartość zmiennej makra będzie taka sama.
  • Przypisz określoną wartość do zmiennej wewnątrz określonego makra, aby uniknąć nieporozumień.