Совместимость макросов


Сегодня мы опишем ошибку, с которой могут сталкиваться пользователи Visio 2010 - в более ранних версиях Visio не запускается макрос, который был записан в Visio 2010. Эта проблема возникает из-за DiagramServices. Все записанные макросы в Visio 2010 добавляется API. Этот API был представлен в Visio 2010 и не поддерживается в предыдущих версиях программы.

Т.е., когда вы записываете макрос  в Microsoft Visio 2010 и после пытаетесь запустить его  в более ранних версиях Visio,  появляется следующее сообщение об ошибке:

"Объект не поддерживает данное свойство или метод."

Для временного решения этой проблемы выполните следующие действия:

  1. Откройте графический файл, содержащий макрос в Visio.
  2. Откройте диалоговое окно Макросы, выберите макрос, который вызывает ошибку и нажмите кнопку Изменить.
  3. В редакторе Microsoft Visual Basic, удалите все строки кода и ссылки DiagramServices.
  4. Запустите макрос снова.

Ниже приведен пример кода макросов, который не работает в Microsoft Office Visio 2007 и более ранних версиях. Можно безопасно удалить следующие строки кода в комментарии, и макрос будет выполняться в более ранних версиях Visio.

'Enable diagram services.

    Dim DiagramServices As Integer

    DiagramServices = ActiveDocument.DiagramServicesEnabled

    ActiveDocument.DiagramServicesEnabled = visServiceVersion140
    'Restore diagram services.

    ActiveDocument.DiagramServicesEnabled = DiagramServices