Publiczne procedury i ich widoczność w oknie Makro

przez | 2024-07-07

Naciskając kombinację klawiszy ALT+F8 lub wybierając polecenie Makra z karty Deweloper możemy ujrzeć taką oto niespodziankę:

Często w modułach tworzę publiczne procedury, które dzięki temu, że są publiczne mogą być wywoływane z różnych miejsc (np. mogę chcieć, aby niektóre uniwersalne procedury były wywoływane z różnych formularzy).

Ale nie chcę aby te procedury były dostępne w okienku Makra gdyż są to procedury pomocnicze dla mojego kodu a nie procedury dla użytkownika,  których celem jest wywołanie jakiejś funkcjonalności z aplikacji.

Niestety, ale takie publiczne procedury są tez widoczne w oknie Makra (na szczęście nie są widoczne procedury, które są umieszczone w formularzach albo te, które w modułach są poprzedzone słowem kluczowym Private).

Co zrobić, aby takie procedury nie były widoczne?

Otóż możemy na początku takiego modułu, który zawiera często używane procedury dopisać dyrektywę:

Option Private Module

Wtedy nasze okienko Makra będzie puste

Uwaga: w modułach dla obiektów Ten_Skoroszyt oraz w modułach arkuszy nie można dopisać dyrektywy Option Private Module. Na szczęście okienko Makra nie pokazuje procedur  obsługi zdarzeń (np. Workbook_Open) więc wystarczy wszystkie publiczne procedury z modułów Ten_Skoroszyt oraz arkuszowych przenieść do normalnego modułu w którym jest dyrektywa Option Private Module.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.