Страница 1 из 1

Ошибка при добавлении макроса

СообщениеДобавлено: 17 фев 2012 18:44
VladimirK
Приветствую всех! При добавлении созданного ранее макроса catvba через Tools / Macro / Macros... / Add existing library возникает ошибка Visual Basic'а (изображения во вложении). После этого макрос добавляется в список библиотек, но не работает и даже в редакторе VB не распознаются такие вещи как CATIA.Application, например, хотя все нужные библиотеки типов подключены в References. Иногда бывает даже в редакторе VB не открываются формы. CATIA установлена правильно, тестировал на разных компьютерах и релизах CATIA, операционная система - Windows 7. Дело именно в самом catvba. Пока эта проблема решается только экспортом файлов модулей и форм из нерабочего catvba, установкой на виртуальной машине Windows XP и CATIA, созданием там нового макроса и импорте полученных ранее файлов модулей и форм. Потом этот макрос работает и на Windows 7, хотя версии системных библиотек, например FM20.dll, MSCOMCTL.OCX разные. Иногда даже возникает та же ошибка при импорте полученных файлов - тогда приходится просто копировать код и все элементы управления с формы на форму в новый проект. Может кто-то знает другое решение этой проблемы?

Re: Ошибка при добавлении макроса

СообщениеДобавлено: 17 фев 2012 20:22
zerganalizer
Может, где в путях конфигов русские имена? Если 7 русская, то про траблы писали из-за русских букафф в имени профиля системы... У меня на русской 7 так было, но недолго (поставил 7 корпоративную с MUI). Не добавлялись макросы в библиотеку, причем не сразу, а спустя время отваливались и пропадали из списка без возможности добавить.

Re: Ошибка при добавлении макроса

СообщениеДобавлено: 18 фев 2012 20:52
Wireless_Fidelity
Здравствуйте.

Возможна и другая причина.
Дословный перевод сообщения: "Библиотека типов неправильная или содержит ссылки на определения типов, которые не могут быть найдена". Вторая часть сообщения в переводе на человеческий означает, что библиотека (макрос) ссылается на объекты, которые не доступны на данном ПК. К примеру, макрос мог быть создан на машине, где стоял MS Office, и в References этого макроса был добавлен соответствующий ActiveX компонент Microsoft Excel 11.0 Object Library, который содержит определения типов объектов для автоматизации Excel'а. А вот на текущем ПК MS Office не установлен, соответствующей библиотеки нет, и поэтому VBA отображает ошибку.
Посему рекомендую проверить список подключенных References на исходной машине и сравнить его с тем, что задан на текущей. Думаю, понятно, что "все нужные библиотеки типов подключены в References" должно относиться не только к Катийным библиотекам, но и ко всем сторонним компонентам, как в примере выше. Причём версии библиотек не имеют значения, если сама библиотека реализует тот же компонент, на который идёт ссылка из catvba.

А ещё такая ошибка возникает, когда в одной библиотеке несколько десятков/сотни модулей. Но, думаю, у Вас не этот случай :)

Re: Ошибка при добавлении макроса

СообщениеДобавлено: 06 мар 2012 12:10
VladimirK
Здравствуйте! Cпасибо вам за ответы, zerganalizer и Wireless_Fidelity !
Операционная система - Windows 7 русская, но в путях нигде нет кириллицы, имя профиля - тоже без кириллицы. Но ошибка все равно есть.
Все используемые библиотеки подключены в References и на компьютерах у пользователей, где предполагается использование макроса, есть все эти библиотеки. Иногда бывает, что макросы не добавляются в библиотеку у меня же на ПК (разработчика).
Пока решаю такую проблему только перекомпиляцией макроса и постепенным переходом написания утилит на VB6,
где получается полноценное Windows-приложение в виде *.exe-файла.

Re: Ошибка при добавлении макроса

СообщениеДобавлено: 07 мар 2012 08:36
Artem
А проблемы часом не на компах с двумя /тремя катьками? там р1 и р2, 16 и 19-20?...да еще глядишь один и тот же макрос юзается на обоих системах....
Итак делай вот че:
1)Заметил в свое время, если скажем я изменяю существующий проект, а потом их вместе подключаю к 16 (изменяю тоже в 16), то все нормально...а вот если их подрубить к 19 возникает тоже самое, причем если запускать только один из данных макросов(скажем через иконку) то все нормально, но второй запускаться не хотел...
..........Пока решаю такую проблему только перекомпиляцией макроса.........
- вот это помогало. Хотя для экспорта элементов и их импорта в новый макрос, перекомпиляция не совсем подходящее слово.
2) Для разных катек используйте разные макросы
3)тлбшки подключите по необходимому минимуму.