Какие же все хакеры :) смешно просто
Ставишь на excel 2 пароля на чтение и изменение. Первый сообщаешь. Первым excel зашифрует всю внутреннюю кухню, так что вскрывать будете ещё лет 100 (я про второй пароль).
Макросы проходятся обфускатором либо выносятся в dll, внутри макросов ставится проверка на защищённость именно тем паролем на изменение с которым пришел лист. Так что "сохранить как..." не предлагать, просто они не будут работать.
Сам VBA и эксели разные не знаю, но даже для меня это работа на 10 мин. То, что написал выше это мои первые мысли по защите, думаю у прогеров, которые на эти средства разработки завязаны, есть похитрее методы.