Использование программ в Visio
Для управления шейпами и рисунками Visio вы можете использовать язык программирования, поддерживающий OLE автоматизацию, типа Visual Basic. Программа может использовать OLE автоматизацию для включения рисунков и диаграмм Visio или автоматизации простых задач. Например, программа могла бы генерировать схему организации по списку названий и позиций или печатать все мастер-шейпы на трафарете.
Программа управляет Visio, обращаясь к его объектам и затем используя их свойства и методы.
Объектами являются элементы, с которыми вы работаете в Visio, такие как документ, страница рисунка, шейпы и формулы.
Методы – это действия, которые могут быть выполнены с объектом. Например, программа может использовать метод Copy объекта Window для копирования выбранного шейпа в буфер. Этот метод эквивалентен выбору формы на странице рисунка и использование команды Copy меню Edit Visio.
Свойства – это признаки, которые определяют появление или поведение объектов. Например, объект Shape имеет свойство Name, которая представляет название шейпа.
Для подробной информации по разработке программ для управления Visio, см. Developing Visio Solutions (изданный Visio Corporation). Для информации по объектам Visio, методам, и свойствам, смотри справочные материалы по OLE автоматизации, поддерживаемые Visio Technical, а также диск, прилагаемый к Developing Visio Solutions.
Расширение (add-on) – это программа, добавляющая функциональные возможности к Visio. Способ вызова расширения зависит от контекста, для которого оно разработано. Если расширение разработано как внешняя по отношению к Visio программа, оно запускается как любая программа Windows. Подробнее смотри документацию на Windows.
Если программа предназначена для запуска из Visio, вы можете запустить ее одним из следующих способов:
- Выбором расширения в подменю или диалоговом окне Run Add-on. Чтобы появиться в этом подменю или в диалоговом окне, EXE файл программы должен находиться в папке Add-ons Visio.
- Двойным щелчком на шейпе, связанном с данным расширением. Программа должны быть выбрана в установке Run Add-on диалогового окна Double-Click данного шейпа.
Для вызова расширения из меню Visio:
1. В меню Tools выберите Run Add-on.
2. В подменю Run Add-on выберите запускаемую программу. Если программы нет в подменю, выберите Add-ons и выберите программу в диалоговом окне, затем щелкните OK.
Чтобы связать расширение с шейпом и вызвать его:
1. Выберите шейп.
2. В меню Format выберите
Double-Click.3. В диалоговом окне Double-Click установите флаг Run Add-on.
4. Из списка расширений выберите то, которое нужно запустить.
5. Щелкните OK.
6. Двойным щелчком на шейпе запустите программу.
Вы можете также ассоциировать расширение с шейпом вводом формулы, использующей функции RUNADDON или RUNADDONWARGS, в ячейку EventDblClick в шейп-листе.
Рассмотрение типовой программы
Приведенный ниже пример на Visual Basic просматривает открытые рисунки в Visio и печатает имя каждого файла рисунка, сопровождаемого названиями страниц в рисунке.
Программа делает следующее:
1. Находит файл рисунка, открытого в Visio.
2. Печатает путь к файла рисунка.
3. Печатает название каждой страницы в файле рисунка.
4. Повторяет шаги 1 до 3, пока все открытые файлы рисунка не будут внесены в список.
Программа выглядит примерно так:
Код Visual Basic Назначение
Sub ShowNames() Декларация переменных
Dim iDoc As Integer, iPag As Integer
Dim appVisio As Object
Dim pagObj As Object, docObj As Object
Dim docsObj As Object
Set appVisio = GetObject(“visio.application”)
Set docsObj = appVisio.Documents Получает все открытые рисунки
For iDoc = 1 To docsObj.Count
Set docObj = docsObj(iDoc) Получает рисунок
Printer.Print docObj.Name Печатает имя
For iPag = 1 To docObj.Pages.Count
Set pag = docObj.Pages(iPag) Получает страницу
Printer.Print Tab(5); pagObj.Name Печатает название
Next iPag
Next iDoc
Printer.EndDoc
End Sub
Пример вывода программы:
Вывод Описание
c:\drawings\pages.vsd
Название первого рисункаBackground-1
Название страницы 1Background-2
Название страницы 2c:\drawings\recycle.vsd
Название второго рисункаPage-1
Название страницы 1Page-2
Название страницы 2Page-3
Название страницы 3