На некоторых компьютерах русские символы на формах и в сообщениях надстройки нечитаемы:
В новых версиях надстроек (с сентября 2024) проблема практически не будет проявляться, но полностью корректная работа надстроек при неверно заданной кодировке не всегда возможна.
Причина проблемы с кракозябрами (нечитаемым текстом) при использовании макросов:
Макросы в Microsoft Excel появились очень давно, ещё в 1993 году. В те времена Excel (версии 5.0) распространялся на 10 дискетах (и весил 14 МБ), был 16-битным, и вообще сильно отличался от привычных нам современных версий Excel. Но реализованный в те далекие времена функционал макросов почти не менялся с 1995 года ввиду желания Microsoft обеспечить обратную совместимость, и из-за нежелания развивать VBA как язык программирования. Именно с тех времён макросы унаследовали частичную поддержку Unicode (которая необходима для отображения символов разных алфавитов), и проблему эту Microsoft решать не планирует. В самих документах Office (на листах Excel и в документах Word) поддержка Unicode реализована давным-давно и в полной мере (иначе мы не могли бы нормально пользоваться офисными программами), а вот в макросах русские буквы использовать нежелательно, что сильно усложняет код.
Мои надстройки разрабатывались в 2012-2015 годах, тогда у меня ещё не было опыта эксплуатации макросов на тысячах различных компьютеров, и я использовал кириллицу в коде. Код вроде MsgBox "Ошибка" корректно выведет сообщение с текстом «Ошибка» на 9 из 10 компьютеров, где установлена русскоязычная Windows. Но на компьютерах, где Windows изначально англоязычная, и лишь потом установлен пакет русификации, в настройках системы может быть прописана другая кодировка для программ, не поддерживающих Unicode (нужна кодировка 1251 - кириллица), — в этом случае вместо русских букв на формах VBA и в сообщениях отображаются кракозябры, как на скриншоте выше.
Есть 2 решения этой проблемы (которая встречается на 10% компьютеров):
- Переписать полностью код, избавившись от кириллицы в нём (все тексты на русском надо хранить на листе Excel), и переделав много штатных функций Экселя (чем я сейчас и занимаюсь, постепенно внедряя во все настройки, начиная с осени 2024 года)
- Исправить кодировку в настройках Windows (что занимает 2 минуты, из которых полторы минуты - перезагрузка компьютера)
В новых версиях надстроек исправить проблему несложно:
Нажмите кнопку О ПРОГРАММЕ и перейдите на вкладку ОПЦИИ
Если там присутствует красная кнопка Сведения о проблеме с кодировкой — нажмите её:
В появившемся окне будет написано, что сделать дальше:
В старых версиях надстроек (выпущенных до сентября 2024 года), проблема решается запуском файла из этой инструкции.
Комментарии
Отправить комментарий