|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
29.04.2009, 11:43 | #1 |
Регистрация: 29.04.2009
Сообщений: 3
|
Простой пример вызов DLL из макроса Excel
Добрый день! Перевернул весь форум, но так и не нашел ответ на свой вопрос. У меня достаточно слабые познания в программировани. Но прошу привести пример кодов в макросе Excel и в Delphi, думаю многим это будет интересно.
Ситуация такая: у меня написан огромный макрос в excel, для прятанья кода, хочу часть убрать в Dll. Пример: -------------------------------------------- 'В Макросе Excel Private Sub Obrabotka_Click() 'здесь всякие команды для обработки ячеек и т.п. ..... ВЫЗОВ DLL ДЛЯ ДАЛЬНЕЙШЕЙ ОБРАБОТКИ ЯЧЕЕК (ПРОСТО ВЫЗОВ, БЕЗ ПЕРЕДАЧИ КАКИХ ЛИБО ПАРАМЕТРОВ). По окончании обработки, файл dll должен вернуть управление макросу. ..... 'здесь всякие команды для обработки ячеек и т.п. End Sub ------------------------------------------- Теперь про оформелние Dll на Deplhi. Когда макрос передаст управление dll я из dll подключаюсь к excel: ------------------------------------------- //код Delphi uses ComObj; //ЧТО ЗДЕСЬ ПИСАТЬ? var Excel: Variant; begin Excel := GetActiveOleObject('Excel.Applicati on'); //дальнейшие мои манипуляции end; end. -------------------------------------------- а теперь вопросы: 1) Как из макроса Excel вызвать этот файл, к примеру имя его будет My.dll. Будет он находится в том же каталоге что и файл Excel. Как правильно декларировать или что то еще. как правильно все прописать? 2) К сожалению не знаю что писать в шапке Delphi, сам понимаю что кучу всего пропустил. Все те переменные которые нужны будут для обработки файла Excel я добавлю, но процедуру или функцию, как правильно написать? Спасибо! |
29.04.2009, 14:28 | #2 |
Регистрация: 29.04.2009
Сообщений: 3
|
Наверно загнул я с вопросом, тогда еще упращу:
есть макрос: ---------------------------- Private Sub Obrabotka_Click() 'ЗДЕСЬ НАДО ВЫЗВАТЬ DLL End Sub ----------------------------- Код Delphi: ---------------------------- // ЧТО ЗДЕСЬ НАДО ПИСАТЬ, ЧТО Б СКОМПЕЛИРОВАЛАСЬ DLL // И ПРИ ВЫПОЛНЕНИИ ПРОСТО ВЫВОДИЛА НА ЭКРАН СООБЩЕНИЕ "ПРИВЕТ МИР" ---------------------------- Спасибо. |
05.05.2009, 23:12 | #3 |
Регистрация: 29.04.2009
Сообщений: 3
|
Самообучение великая вещь :-)
Никто мне тут к сожалению так и не помог, помогли в другом месте.
Сам спрашивал, сам и отвечаю, наверняка кому нить понадобится. код макроса экселя: Declare Function f_dll Lib "c:\my.dll" () Sub TestMacros() f_dll End Sub а вот и сам код в Delphi: library My; uses SysUtils, Classes, Dialogs; function f_dll():string;stdcall; begin Showmessage('Hello World!!!'); end; exports f_dll; begin end. Последний раз редактировалось Averinsergey; 05.05.2009 в 23:13. Причина: исправление грамматических ошибок :-) |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Создание и вызов библиотеки dll | DM_bite | Помощь студентам | 3 | 15.06.2010 12:47 |
Вызов произвольной функции из DLL | Роман Радер | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 31 | 05.03.2010 22:35 |
Вызов функции из dll-ки | VVVadim | Общие вопросы Delphi | 2 | 28.04.2009 10:37 |
вызов из dll не ShowModal. | Roof | Общие вопросы Delphi | 7 | 25.07.2008 15:22 |
Вызов формы внутреннего (dll) ActiveX сервера | HelloEverybody | Компоненты Delphi | 2 | 29.01.2008 17:25 |