Можно затруднить чтение алгоритма работы программы, закрыть код, спрятать имена, листы... Но это все очень слабо. Кто посерьезнее защищает - вводит часть программы во внешние файлы (не Excel)...
Защита в Excel, VBA слабая, расчитана только на то, чтобы не поломать чего-либо случайно. Еще - от рук незнаек. Ну, и еще - чтобы побаловаться )
А защита от взлома пароля?... это только на уровне системы решать, но и то - возможно ли? Очень сомневаюсь. Да и ломать пароль не всегда нужно, файл сам покажет внутренности при правильном подходе
Представьте, что такой макрос существует. Он постоянно на страже и, увидев, что поломали пароль, активирует порт, к которому подключен подъемно-вращающий механизм. Одна железная рука поднимает системный блок и обрушивает его на голову взломщика, другая защелкивает наручники на запястьях. Зло наказано!
Но тут ма-а-аленькая неувязочка - работа макросов должна быть разрешена. А взломщик не настолько тупой, чтобы не заблокировать их работу... А дальше - см. сообщение №2