Оказывается, я идиот (или, по крайней мере, безнадежно неопытный со всей этой разработкой программного обеспечения). Ниже то, о чем я весь день паниковал. Я напишу ответ с подробным описанием того, что я увидел, какие действия последовали и что на самом деле происходит.
tl; dr: Как я думал, что моя IDE работает и как она на самом деле работает, это две разные вещи. На самом деле в моем коде была ошибка, но из-за того, как я интерпретировал то, что, как мне показалось, говорила мне моя IDE, я подумал, что проблема гораздо серьезнее. И я идиот, потому что до сих пор не внедрил контроль версий.
Что я написал ранее:
Итак, я на самом деле не SysAdmin, но я фактически «ИТ-парень» для моей компании (у нас 12 сотрудников).
Где-то между 19:00 по Гринвичу вчера вечером 25 августа 2015 года и 11:00 по Гринвичу этим утром 26 августа 2015 года все макросы vba на каждом компьютере (мы запускаем Excel 2010 и Excel 2013) начали демонстрировать поведение, при котором публично объявлялись переменные (которые должны быть доступны). для всех подпрограмм в данной рабочей книге) доступны только в том модуле, в котором они были объявлены.
Это делает многие наши макросы неработоспособными.
Я подозреваю, что было обновление Microsoft, которое перепуталось с Excel, но я не могу найти никакого подтверждения этого онлайн. Кроме того, наш сервер удаленного рабочего стола (который не обновляется автоматически) демонстрирует такое же поведение. Любые предложения будут высоко ценится.
Обновление: недавно не было обновления Windows. Это действительно плохие новости, потому что это означает, что что-то где-то пошло (возможно, однозначно) неправильно. Переменная область видимости должна быть фундаментальной частью языка. Это не должно быть вещью, которая может измениться. И все же, по всей сети, он, по-видимому, сам по себе.