Если прогнозируешь, что твои потребители ничего в этом не смыслят, то можно обойтись простыми средствами: запоминать дату установки или количество фактов запуска макроса в какой-либо ячейке на существующем листе, которая очень редко может быть просмотрена - к примеру последняя строка-последний столбец. Да еще ее можно отформатировать на такой случай чтобы цвет текста был равен цвету фона. Недостатки: лист может быть удален что приведет к ошибке; при печати с листа будут проблемы - большинство же не выводят явно диапазоны, а просто жмут кнопку печать.
Можно незаметно для пользователя добавлять скрытый лист и там хранить всю эту информацию. Этот способ работает в случае когда удаляются произвольные листы и не приводит к сюрпризам при печати.
Можно со всех ячеек листа, кроме нужной тебе программно снять галочку "Защищаемая ячейка" и потом поставить защиту на лист со случайным паролем длинной в много-надцать символов. А после сего факта просто забыть тот пароль.
По опыту, в большинстве случаев подобных простеньких мер достаточно.
Те, кто взломает твой макрос, скорее всего сами в состоянии написать себе аналог, а не платить за твой. Посему ставь защиту и молись, чтобы покупатели дрались в очереди за твою разработку
А жизнь покажет, много ли народу догадалось поймать халявку.
На правах саморекламмы: "Кофейник" - это тот же "чайник", только круче.