В Excel VBA (2003) я заметил, что любой метод Public или Friend Sub либо в модуле, либо ThisWorkbook без аргументов будет отображаться как макрос, который может запустить пользователь. То есть когда пользователь перейдет в Инструменты -> Макрос -> Макросы ... (или Alt + F8), метод отобразится в списке, который можно запустить.
Ради здравомыслия (организация, обслуживание и т. Д.) Мне нужно разделить код на модули. Я надеюсь найти нехитрый способ скрыть некоторые методы от пользователя, но все же позволить им быть видимыми для других модулей кода. Обратите внимание, что весь код содержится в одном приложении , поэтому внешний код не вызывается.
Мой текущий обходной путь - использовать Функция s, которые возвращают логическое значение вместо Sub s, и просто игнорируют возвращаемое значение. eJames предложил опцию использования необязательного аргумента в Sub , который также скроет метод из списка макросов.
Однако ни один из них не кажется правильным, поэтому любой совет о том, как структурировать нетривиальное приложение Excel VBA, будет весьма полезен.