⚠️Проблема с отображением кириллицы в VBA-редакторе
Присутствует во всех версиях начиная с Visio 2013.
В чем заключается
При попытке непосредственно вводить буквы кириллического алфавита в VBA-редакторе вместо них отображаются буквы латинского алфавита и/или вопросительные знаки!
На вышеуказанной картинке дано сравнение трех вариантов:
некий текст содержащий кириллицу, набранный в приложении Notepad;
отображение этого же текста при вводе в VBA-редакторе ;
отображение этого же текста скопированного в приложении Notepad и вставленного в VBA-редактор при английской раскладке клавиатуры.
Способы решения проблемы
Напечатать текст в приложении Notepad, скопировать и вставить в редактор. При этом необходимо следить за раскладкой клавиатуры !
Напечатать текст в окне приложения MS Word (или MS Visio), скопировать и вставить в редактор. При этом можно следить за раскладкой клавиатуры.
Выполнить ввод кода в другом приложении используя "раннее связывание" с MS Visio.
К недостаткам первых двух способов можно отнести отсутствие опции автоматического завершения вводимого текста (автокомплит, от англ. autocomplete). Если вы не знаете в совершенстве синтаксис языка VBA для приложения MS Visio, это может стать для вас затруднением. Автокомплит позволяет минимизировать опечатки при вводе текста.
Использование "раннего связывания" предоставляет полный доступ к объектной модели MS Visio из стороннего приложения!
Выполнение "раннего связывания"
В качестве примера рассмотрим приложение MS Excel.
Для того нужно VBA-редакторе в меню Tools выбрать пункт References.
Выбрать из списка доступных библиотек библиотеку Microsoft Visio.
Нажать кнопку OK.
Нюансы использования VBA-редактора в стороннем приложении
После включения "раннего связывания" при объявлении переменной относящейся к приложению MS Visio необходимо указывать префикс Visio
.
При объявлении переменных, относящихся к приложению Visio следует указывать соответствующий префикс !
В объектных моделях приложений MS Excel и MS Visio встречаются одноименные объекты. Например в обоих приложениях встречается объект Shape
. В MS Visio понятие Cells
относится к свойству содержащемуся в ячейке таблицы свойств Visio, а в MS Excel понятие Cells
относится к диапазону, относящемуся к ячейке Excel.
У одноименных объектов в разных приложениях могут отличаться их свойства и/или относящиеся к ним методы. Это может стать причиной ошибок. Использование префикса позволит избежать путаницы какой именно объект вы имеете в виду!
В дальнейшем вы можете осуществлять программный контроль над документом MS Visio из VBA-редактора стороннего приложения. Или после отладки кода вставить его уже в VBA-редактор приложения Visio, префиксы относящиеся к приложению Visio будут отброшены автоматически.
Last updated