Нечитаемые символы - проблема с кодировкой

На некоторых компьютерах русские символы на формах и в сообщениях надстройки нечитаемы:

В новых версиях надстроек (с сентября 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% компьютеров):

  1. Переписать полностью код, избавившись от кириллицы в нём (все тексты на русском надо хранить на листе Excel), и переделав много штатных функций Экселя (чем я сейчас и занимаюсь, постепенно внедряя во все настройки, начиная с осени 2024 года)
  2. Исправить кодировку в настройках Windows (что занимает 2 минуты, из которых полторы минуты - перезагрузка компьютера)

 

В новых версиях надстроек исправить проблему несложно:

Нажмите кнопку О ПРОГРАММЕ и перейдите на вкладку ОПЦИИ

Если там присутствует красная кнопка Сведения о проблеме с кодировкой — нажмите её:

В появившемся окне будет написано, что сделать дальше:

 

В старых версиях надстроек (выпущенных до сентября 2024 года), проблема решается запуском файла из этой инструкции.

Комментарии

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
CAPTCHA
Подтвердите, пожалуйста, что вы - человек:
    _   _       _____    ____              
(_) | |__ |___ | / ___| ___ ____
| | | '_ \ / / | | _ / _ \ |_ /
| | | | | | / / | |_| | | __/ / /
_/ | |_| |_| /_/ \____| \___| /___|
|__/
Введите код, изображенный в стиле ASCII-арт.