|
0 / 0 / 0
Регистрация: 06.04.2017
Сообщений: 45
|
||||||||||||||||
Связать VBA Excel файл с DLL без регистрации, с возможностью менять значения ячеек08.02.2018, 18:38. Показов 8476. Ответов 53
Метки нет (Все метки)
Всем привет!
Подскажите, пожалуйста, а то я не догоняю что я делаю не так... Я не силен в "ООП", поэтому прошу помощи у профессионалов. Нужно большую часть кода перенести из VBA в DLL, раньше макрос брал данные из ячеек, бегал по листам, создавал книги, возвращался обратно и т.д., но как это прописывается в DLL?
Бьюсь уже больше недели, перечитал уже все что можно и где можно... ![]() Вот например короткий код и как я это пишу, что не правильно? Это в excel:
Мега мозги, помогите пжл.! Добавлено через 1 час 24 минуты Уважаемые ПРОФИ, просьба помочь в этом вопросе, я вижу что за несколько часов уже 38 просмотров, значит не я один такой, информации по этим тонкостям очень мало, в основном общие ответы, с короткими примерами или вообще без них
0
|
||||||||||||||||
| 08.02.2018, 18:38 | |
|
Ответы с готовыми решениями:
53
Создание dll для динамического подключения в EXCEL без регистрации Как зарыть файл без сохранения (Excel/VBA )? Как сохранить VBA-массив в CSV-файл без Excel |
|
0 / 0 / 0
Регистрация: 06.04.2017
Сообщений: 45
|
||
| 11.02.2018, 17:54 [ТС] | ||
|
библиотеки ему не хватает...
0
|
||
|
35 / 32 / 15
Регистрация: 23.12.2014
Сообщений: 97
|
||||||
| 11.02.2018, 18:42 | ||||||
|
При объявлении функции из Вашей DLL в коде макроса Excel, после слова "Lib", Вам нужно задать полный путь к Вашей DLL:
0
|
||||||
|
0 / 0 / 0
Регистрация: 06.04.2017
Сообщений: 45
|
|||||||
| 11.02.2018, 18:48 [ТС] | |||||||
|
Я же в примере в самом первом посте все написал, что у меня за код в excel и какой в VB6 Функцию описываю так :
0
|
|||||||
|
|
|
| 11.02.2018, 20:46 | |
|
Больше 10 лет назад скачал программу игры в шахматы, и автор её, указан в прилагаемых документах. Вы делаете ход шахматной фигурой в Вёрде и передаете в DLL , а из библиотеки приходит ответный ход.. Без всякой регистрации DLL .
1
|
|
|
0 / 0 / 0
Регистрация: 06.04.2017
Сообщений: 45
|
|
| 11.02.2018, 20:54 [ТС] | |
|
dzug, спасибо за помощь, но я ее уже скачивал, но запустить так и не смог, сначала поправил
на 64 разрядный офис, но затем не понимаю что ему не хватает...
0
|
|
|
0 / 0 / 0
Регистрация: 06.04.2017
Сообщений: 45
|
|
| 11.02.2018, 20:56 [ТС] | |
|
0
|
|
|
|
||
| 11.02.2018, 21:58 | ||
|
Выделенную желтым строку я отключил , играет и без неё..По моему это какая то иконка на форме.
0
|
||
|
0 / 0 / 0
Регистрация: 06.04.2017
Сообщений: 45
|
|
| 11.02.2018, 22:24 [ТС] | |
|
dzug, вопрос не в том чтобы в шахматы поиграть, а смысл моего желания научиться этому - это защитить часть кода,
я уже поднимал другую тему и пришел к выводу, что оптимальнее всего перенести часть кода в DLL из excel. Так как я никогда этого не делал, то и не понимаю как установить связь, поэтому я написал простой код, разделил его на две части одну поместил в Active DLL, а вторую часть оставил в excel, но сделал это как я думал должно быть А ни черта не работает... Если кто нибудь поможет на этом примере рассказать что я делаю не так, то я смогу перелопатить весь свой код. Вопросов всего 4 (пока), и четвертый стал пока на первое место: 4. Почему excel не видит DDL? - > хотя лежат в одной папке (да и путь полный на всякий случай прописал, хотя по итогу нужно от этого уйти) 1. Как прописать вызов функции из excel без указания параметров, так как нужно чтобы эта функция не возвращала значение, а работала с ячейками? - т.е. любой пользователь запускает макрос, он доходит до этой функции -> она перехватывает управление -> идет обратно в этот же excel -> считывает данные определенных ячеек -> производит внутренний расчет -> ставит некоторые данные в ячейки -> передает управление обратно excel 2. Как из DLL определить нужную книгу (ту из которой была вызвана эта DLL)? 3. Как передаются массивы?
0
|
|
|
0 / 0 / 0
Регистрация: 06.04.2017
Сообщений: 45
|
|
| 12.02.2018, 00:09 [ТС] | |
|
Совсем упростил код, но не видит DLL...
0
|
|
|
0 / 0 / 0
Регистрация: 06.04.2017
Сообщений: 45
|
|
| 12.02.2018, 00:16 [ТС] | |
|
Скрин
0
|
|
| 12.02.2018, 18:11 | |
|
Решал как то задачу коммивояжера динамическим программированием, для ускорения алгоритм расчетов перенес в dll, написанную на FreeBasic, ускорение происходит за счет более быстрого языка и за счет потоков.
Пример взаимодействия Excel с DLL во вложении (стабильно работает с Excel32, под Excel64 возможно не будет работать)
0
|
|
|
0 / 0 / 0
Регистрация: 06.04.2017
Сообщений: 45
|
||
| 12.02.2018, 18:59 [ТС] | ||
|
Так же как я понял excel видит эту DLL - снимок2, но не может к ней обратиться, может как то по другому нужно обращаться?
0
|
||
|
0 / 0 / 0
Регистрация: 06.04.2017
Сообщений: 45
|
||
| 12.02.2018, 19:04 [ТС] | ||
|
Может какой то библиотеки не хватает? В excel подключил, наверное все что можно... снимок 4
0
|
||
|
0 / 0 / 0
Регистрация: 06.04.2017
Сообщений: 45
|
|
| 12.02.2018, 19:11 [ТС] | |
|
m-ch, а в самом проект1 в модуле, код почти весь красный...
0
|
|
| 12.02.2018, 19:14 | |||
|
0
|
|||
|
0 / 0 / 0
Регистрация: 06.04.2017
Сообщений: 45
|
||
| 12.02.2018, 19:21 [ТС] | ||
|
вот здесь читал https://msdn.microsoft.com/en-... s.60).aspx , что ищет в: If you do not specify a path for libname, Visual Basic will search for the file in the following order: Directory containing the .exe file Current directory Windows system directory (often but not necessarily \Windows\System) Windows directory (not necessarily \Windows) Path environment variable
0
|
||
|
0 / 0 / 0
Регистрация: 06.04.2017
Сообщений: 45
|
|
| 12.02.2018, 19:23 [ТС] | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 06.04.2017
Сообщений: 45
|
||||||||||||
| 12.02.2018, 21:21 [ТС] | ||||||||||||
|
Тогда можно пояснить, почему вот эта не работает? еще больше упростил... Excel VBA:
0
|
||||||||||||
| 12.02.2018, 21:21 | |
|
Как создать файл DLL так, чтобы его можно было подключить к VBA Excel? Как подключить к VBA Excel файл DLL, лежащий в той же папке, с использованием относительного пути? VBA в excel вставка ячеек
Сравнение ячеек в VBA Excel Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
|
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ
Основная суть и тезисы по измерениям:
0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема.
Объект не может перемещаться в 0D.
1D (Первое измерение):. . .
|
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek
ВВЕДЕНИЕ
Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
|