Author |
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 |
|
|
zhuravsky
Russia
115 Posts |
Posted - 07/13/2013 : 06:10:47
|
Я нечто подобное пробовал. При подключении этой библиотеки ругается на конфликт имен с уже существующей библиотекой. Неожиданно нашлось другое решение: Галку с библиотеки снял и после этого заменил декларацию as ListItem на as Object Другой код не менял, но всё заработало. Похоже, этот тип данных переименовали. |
|
|
9rey
Russia
30 Posts |
Posted - 07/13/2013 : 06:20:26
|
а если так MSComctlLib.ListItem ? |
|
|
Tumanov
Russia
1198 Posts |
Posted - 07/13/2013 : 06:28:31
|
Это Вы его обманули :) Сказав, что это не ListItem, который описан и размещен в определенном месте, а просто неизвестный Object, Вы отключили проверки при компиляции. Вот он и перестал ругаться. На машине, конечно, какой-то непорядок. Версия Visio здесь явно ни при чем, это в системе.
|
|
|
9rey
Russia
30 Posts |
Posted - 07/13/2013 : 06:32:18
|
да мне кажется у него просто подключена два раза библиотека с разными версиями. |
|
|
Tumanov
Russia
1198 Posts |
Posted - 07/13/2013 : 06:59:33
|
Может и так. |
|
|
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 В этот раз на конфликт имен не ругнулось. Затем вернул код к исходному состоянию, проверил - работает. Да, перед этим вручную разрегистрировал данную библиотеку, вышел из системы, вошел снова и зарегистрировал ее. Видно при установке системы что-то до конца не проставилось. |
|
|
|
Topic |
|