Comment on page
⚠
Проблема с отображением кириллицы в VBA-редакторе
Присутствует во всех версиях начиная с Visio 2013.
При попытке непосредственно вводить буквы кириллического алфавита в VBA-редакторе вместо них отображаются буквы латинского алфавита и/или вопросительные знаки!

Некорректное отображение кириллических символов
На вышеуказанной картинке дано сравнение трех вариантов:
- некий те кст содержащий кириллицу, набранный в приложении Notepad;
- отображение этого же текста при вводе в VBA-редакторе ;
- отображение этого же текста скопированного в приложении Notepad и вставленного в VBA-редактор при английской раскладке клавиатуры.
- 1.Напечатать текст в приложении Notepad, скопировать и вставить в редактор. При этом необходимо следить за раскладкой клавиатуры !
- 2.Напечатать текст в окне приложения MS Word (или MS Visio), скопировать и вставить в редактор. При этом можно следить за раскладкой клавиатуры.
- 3.
К недостаткам первых двух способов можно отнести отсутствие опции автоматического завершения вводимого текста (автокомплит, от англ. autocomplete). Если вы не знаете в совершенстве синтаксис языка VBA для приложения MS Visio, это может стать для вас затруднением. Автокомплит позволяет минимизировать опечатки при вводе текста.

Автоматическое завершение вводимого текста в VBA-редакторе
Использование "раннего связывания" предоставляет полный доступ к объектной модели MS Visio из стороннего приложения!
В качестве примера рассмотрим приложение MS Excel.
- Для того нужно VBA-редакторе в меню Tools выбрать пункт References.

Вызов окна управления используемыми библиотеками
- Выбрать из списка доступных библиотек библиотеку Microsoft Visio.

Добавление библиотеки Visio Type Library
- Нажать кнопку OK.
После включения "раннего связывания" при объявлении переменной относящейся к приложению MS Visio необходимо указывать префикс
Visio
.' объявление переменной va, относящейся к приложению Visio
Dim va As Visio.Application
' передача переменной va ссылки на приложение Visio
Set va = GetObject(, "Visio.Application")
При объявлении переменных, относящихся к приложению Visio следует указывать соответствующий префикс !
В объектных моделях приложений MS Excel и MS Visio встречаются одноименные объекты. Например в обоих приложениях встречается объект
Shape
. В MS Visio понятие Cells
относится к свойству содержащемуся в ячейке таблицы свойств Visio, а в MS Excel понятие Cells
относится к диапазону, относящемуся к ячейке Excel. У одноименных объектов в разных приложениях могут отличаться их свойства и/или относящиеся к ним методы. Эт о может стать причиной ошибок. Использование префикса позволит избежать путаницы какой именно объект вы имеете в виду!
В дальнейшем вы можете осуществлять программный контроль над документом MS Visio из VBA-редактора стороннего приложения. Или после отладки кода вставить его уже в VBA-редактор приложения Visio, префиксы относящиеся к приложению Visio будут отброшены автоматически.
Last modified 1yr ago