5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,518
|
||||||
1 | ||||||
Как создать DLL для VBA23.07.2014, 21:23. Показов 13255. Ответов 35
Метки нет (Все метки)
Здравствуйте. Скажите, пожалуйста, как создать dll для VBA.
У меня "Visual Studio 2013 Express". В dll хочу вставить такой код:
0
|
23.07.2014, 21:23 | |
Ответы с готовыми решениями:
35
dll для VBA Как создать отдельную папку для dll при компоновки приложения в VS2008 Как создать *.dll ? Создать свою dll, общую для двух приложений |
Почетный модератор
21400 / 9134 / 1083
Регистрация: 11.04.2010
Сообщений: 11,014
|
||||||
11.08.2014, 10:27 | 21 | |||||
Скрипт, ну по той ссылке что Вы привели все довольно прозрачно.
Сейчас я написал на .NET библиотеку классов, подключил ее в VB6 и вызвал функцию из библиотеки. Библиотеку прилагаю (вместе с tlb) Попробуйте ее подключить в VBA (я не умею работать с VBA) Код библы
2
|
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,518
|
|
11.08.2014, 10:31 [ТС] | 22 |
Памирыч, я обратил внимание, что в этой ссылке http://www.geeksengine.com/article/create-dll.html есть файл "tlb". Но я подставлял свой код в этот пример. Или "tlb" нужно обязательно использовать?
0
|
Почетный модератор
21400 / 9134 / 1083
Регистрация: 11.04.2010
Сообщений: 11,014
|
|
11.08.2014, 10:38 | 23 |
Он у меня сгенерировался сам.
В VB6 я подключал именно tlb (через проект - ссылки), ибо сама библиотека напрямую не пожелала импортироваться. Еще один вопрос - а Вы в .NET библиотеку хотите вставлять VBA-шный код? Тогда, скорее всего, ничего не выйдет, ибо .NET понимает только .NET-код
1
|
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,518
|
|
11.08.2014, 10:42 [ТС] | 24 |
Пункт 1
Я делал инструкции по этой ссылке http://www.geeksengine.com/article/create-dll.html, но у меня не сформировался в папке "bin" tlb-файл. Надо ещё раз попробовать сделать действия по инструкции. Пункт 2 Я буду переделывать одну процедуру или один модуль с VBA на VB .Net. Пункт 3 Попробую Ваш dll-файл и отпишусь.
0
|
873 / 771 / 173
Регистрация: 11.01.2012
Сообщений: 1,942
|
|
11.08.2014, 10:43 | 25 |
0
|
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,518
|
||||||
11.08.2014, 11:24 [ТС] | 28 | |||||
Памирыч, в VBA я подключил класс. Затем в VBA-коде сделал:
Видимо, чего-то не хватает.
0
|
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,518
|
|
11.08.2014, 11:46 [ТС] | 30 |
Памирыч, да, Ваш пример заработал (с функцией "Test").
Памирыч, а чтобы надстройка стала работать на другом компьютере, нужно будет создать инсталляционный пакет? В "VS 2013 Professional" инсталляционный пакет делается так: Файл - Создать проект... - Другие типы проектов - Установка и развертывание. Правильно я думаю? Или нужно будет что-то добавить в проект, чтобы DLL-файл работал на всех компьютерах?
0
|
1710 / 1198 / 227
Регистрация: 23.12.2010
Сообщений: 1,527
|
|
11.08.2014, 12:01 | 31 |
1
|
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,518
|
|
11.08.2014, 12:04 [ТС] | 32 |
Юпатов Дмитрий, да, я перепутал: я думал, что Private даст доступ к содержимому класса, а оказалось, что Private, наоборот, закрывает доступ к внутренностям. Просто в VBA я очень редко что-то делаю со словами Private и Public, поэтому плохо ориентируюсь в этом.
0
|
1710 / 1198 / 227
Регистрация: 23.12.2010
Сообщений: 1,527
|
|
11.08.2014, 12:07 | 33 |
ну да:
private - доступна только внутри класса/модуля friend - доступна внутри данного проекта из других классов/модулей (ну и из родного тоже) public - доступна извне
0
|
Почетный модератор
21400 / 9134 / 1083
Регистрация: 11.04.2010
Сообщений: 11,014
|
|
11.08.2014, 12:10 | 34 |
Насчет переносимости не подскажу, попробовал сейчас перенести книгу на другой ПК вместе с файлами, при вызове функции возникла ошибка, мол ActiveX что-то там не может создать.
Зарегистрировать DLL тоже не получается, она для этого как есть непригодна
1
|
1710 / 1198 / 227
Регистрация: 23.12.2010
Сообщений: 1,527
|
|
11.08.2014, 13:57 | 36 |
0
|
11.08.2014, 13:57 | |
11.08.2014, 13:57 | |
Помогаю со студенческими работами здесь
36
Как создать DLL на С++, чтобы его можно было подключить к VBA? Как создать файл DLL так, чтобы его можно было подключить к VBA Excel? Как сделать DLL для VBA? Как написать Dll для использования в VBA (MS Access 2003) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |