Добавьте в книгу настраиваемое свойство, такое как GUID, Integer, Date или все, что вам нужно. При запуске проверьте значение и определите, следует ли продолжать VBA или какую-либо другую реализацию, которую вы решите. Обычно я открываю «общую» последнюю версию документа и проверяю ее пользовательское свойство. Если пользователь не использует последнюю версию, отобразите сообщение, предлагающее пользователю получить последнюю версию. Это обычно достаточно хорошо. Я делал это годами с большим успехом для Access, Word и Excel VBA.
Одной из реальных проблем являются люди, которые игнорируют запрос на обновление. Они будут делать это, потому что боятся потерять данные, ошибки в последней версии и так далее. Вы должны решить их проблемы, а не пытаться «привязать» их к «решению» этой проблемы. Я настоятельно рекомендую всегда предоставлять средства для «импорта / обновления» данных до последней версии рабочей книги.
Довольно прост в реализации. Если вы решите вышеупомянутую проблему эффективно, люди начнут доверять «подсказке», и вы обнаружите, что это действительно простое и эффективное решение.
Если ваша рабочая книга привязана к базе данных, она становится немного сложнее. Как правило, вы не позволяете пользователю поддерживать данные за пределами базы данных. Когда они хотят изменить данные, вы создаете для них рабочую книгу. После того, как они закончили изменять данные, вы импортируете данные. (Рабочая книга сохраняется в целях «резервного копирования», или пользователь может сохранить копию рабочей книги для справки или в архиве.) Это позволяет избежать необходимости поддерживать версию документа, поскольку документ является «виртуальным».