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.