All Forums
 Категория Visio
 Форум Вопросы и ответы
 переход 2003-2007
Author  Topic Next Topic  

zhuravsky

Russia
115 Posts

Posted - 07/12/2013 :  10:29:05
При переходе от Визио 2003 к Визио 2007 сталкнулся с такой проблемой.
Неоторые макросы перестали правильно работать, Визио ругается, что не может найти библиотеку. В частности ругается на объявление переменной
Dim objListItem As ListItem
Раньше этот ListItem жил в mscomctl.ocx, вероятно сейчас это не так.

Может кто подскажет куда копать дальше?
С уважением

9rey

Russia
30 Posts

Posted - 07/12/2013 :  12:46:12
в редакторе макросов зайти в Tools - References и посмотреть подключена ли библиотека Microsoft Windows Common Controls 6.0
если нет, то включить
если MISSING то сначала снять галку, потом найти в списке и подключить
если не получится, то написать код:
ThisDocument.VBProject.References.AddFromGuid "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}", 2, 0


ну либо, если ничего не помогло, то библиотека не установлена - надо ставить ее заново.

Edited by - 9rey on 07/12/2013 12:50:06
Go to Top of Page

zhuravsky

Russia
115 Posts

Posted - 07/13/2013 :  06:10:47
Я нечто подобное пробовал. При подключении этой библиотеки ругается на конфликт имен с уже существующей библиотекой.
Неожиданно нашлось другое решение: Галку с библиотеки снял и после этого заменил декларацию as ListItem на as Object
Другой код не менял, но всё заработало. Похоже, этот тип данных переименовали.
Go to Top of Page

9rey

Russia
30 Posts

Posted - 07/13/2013 :  06:20:26
а если так MSComctlLib.ListItem ?
Go to Top of Page

Tumanov

Russia
1198 Posts

Posted - 07/13/2013 :  06:28:31
Это Вы его обманули :) Сказав, что это не ListItem, который описан и размещен в определенном месте, а просто неизвестный Object, Вы отключили проверки при компиляции. Вот он и перестал ругаться.
На машине, конечно, какой-то непорядок. Версия Visio здесь явно ни при чем, это в системе.
Go to Top of Page

9rey

Russia
30 Posts

Posted - 07/13/2013 :  06:32:18
да мне кажется у него просто подключена два раза библиотека с разными версиями.
Go to Top of Page

Tumanov

Russia
1198 Posts

Posted - 07/13/2013 :  06:59:33
Может и так.
Go to Top of Page

zhuravsky

Russia
115 Posts

Posted - 07/15/2013 :  14:13:25
Похоже, проблема разрешилась.
Что было сделано:
Проверил в Tools\References... что библиотека Microsoft Windows Common Controls 6.0 (SP6) отсутствует, затем добавил ее через Browse из папки Windows\System32, файл mscomctl.ocx
В этот раз на конфликт имен не ругнулось.
Затем вернул код к исходному состоянию, проверил - работает.
Да, перед этим вручную разрегистрировал данную библиотеку, вышел из системы, вошел снова и зарегистрировал ее.
Видно при установке системы что-то до конца не проставилось.
Go to Top of Page
   Topic Next Topic  
Данный сайт является архивом форума visio.artberg.ru, который был закрыт в связи с переходом на новую платформу visio.getbb.ru
Все материалы доступны только для чтения! Если у вас появились вопросы, или вы хотите что-то обсудить, связанное с Visio, обращайтесь на новый форум!
Архив был создан благодаря совместным усилиям Генадия Туманова @Tumanov (visio.artberg.ru), Александра ака @Surrogate (visio.getbb.ru), и Николая Белых @nbelyh (unmanagedvisio.com)