Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.05.2010, 07:31   #11
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 842
По умолчанию

Цитата:
Сообщение от Алексей Трошкин Посмотреть сообщение
По мнению авторитетных авторов единственным способом реальной защиты кода заключается в его выносе за пределы Excel, как правило в среду VB6. Можно использовать DLL проекты VB6 т.е. сам код находится в скопилированном DLL коде, а в рабочие книги включить лишь простой код инициализации DLL- проекта и вызова его процедур.
Можно несколько вопросов?
1. Какая версия VB сейчас актуальна? И нет ли ссылочки где ее можно взять.
2. Где можно почитать подробнее о технологи создании DLL для работы в Эксель и как их там подгружать и использовать?
3. Есть ли подводные камни, ограничения при работе с DLL?
С уважением, Алексей.
tae1980 вне форума Ответить с цитированием
Старый 12.05.2010, 10:34   #12
Aent
Форумчанин
 
Аватар для Aent
 
Регистрация: 17.07.2009
Сообщений: 519
По умолчанию

Последняя версия Microsoft Visual Basic 2010 в составе Visual Studio 2010.
Версия Express бесплатна после регистрации http://www.microsoft.com/express/downloads/
Но ключевое слово не DLL а VSTO (Visual Studio Tools for Office)
Используется DOT.NET
Книг много на английском.
Например, во многих местах лечит в виде CHM:
Цитата:
Visual Studio Tools for Office: Using Visual Basic 2005 with Excel, Word, Outlook, and InfoPath
By Eric Carter, Eric Lippert
Publisher: Addison Wesley Professional
Pub Date: April 26, 2006
Print ISBN-10: 0-321-41175-7
Print ISBN-13: 978-0-321-41175-4
Pages: 1120
Последняя версия VB6 была VB6.5 SP3
VSTO поддерживается начиная с OFFICE 2003 и соотв. версии VS.
На VB6 можно написать только ActiveX DLL, использование которой потребует предварительной регистрации в системе
(например с помощью regsvr32). Это несколько снижает мобильность приложения. Нативную DLL для EXCEL можно написать на С++ или PowerBasic.
Так же на С++ можно написать XLL
http://msdn.microsoft.com/ru-ru/library/aa730920.aspx
http://books.google.ru/books?id=-E9Q...ed=0CEcQ6AEwBw

Так же рекомендую ознакомиться с Excel4NET http://excel4net.com/Overview.aspx
и XLW (http://xlw.sourceforge.net/) http://www.youtube.com/watch?v=1yLodcb32sI

Последний раз редактировалось Aent; 12.05.2010 в 16:34.
Aent вне форума Ответить с цитированием
Старый 12.05.2010, 21:48   #13
Алексей Трошкин
Пользователь
 
Регистрация: 02.05.2010
Сообщений: 26
По умолчанию

Как правильно заметил Aent на VB6 можно создавать ActiveX DLL, что для начала вполне подходит. Наити VB6 наверное можно в инете, я лично купил в магазине. На счет литературы по совместному использованию Excel и VB6 могу порекомендовать книгу на русском языке - "Профессиональная разработка приложений Excel" авторы Стивен Буллен, Роб Боуви и Джон Грин. И конечно опыт программирования в VB6. Подводных камней как таковых нет если код в DLL написан без ошибок. Небольшое неудобство сначало пишешь в VB6 отлаживаешь, копилируешь затем подключаешь в Excel. Если что то нужно изменить то приходится весь повторять заного. Но в итоге получается очень защищеный код.
Алексей Трошкин вне форума Ответить с цитированием
Старый 12.05.2010, 22:29   #14
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 842
По умолчанию

Цитата:
Сообщение от Алексей Трошкин Посмотреть сообщение
Небольшое неудобство сначало пишешь в VB6 отлаживаешь, копилируешь затем подключаешь в Excel. Если что то нужно изменить то приходится весь повторять заного. Но в итоге получается очень защищеный код.
А если на оборот: написать и отладить код в Excel, перебросить его в VB и скомпилировать?
С уважением, Алексей.
tae1980 вне форума Ответить с цитированием
Старый 12.05.2010, 23:19   #15
Алексей Трошкин
Пользователь
 
Регистрация: 02.05.2010
Сообщений: 26
По умолчанию

Цитата:
Сообщение от tae1980 Посмотреть сообщение
А если на оборот: написать и отладить код в Excel, перебросить его в VB и скомпилировать?
Это зависит от задачи. Если работать с обьектами Excel можно и так, но немного потом изменить обращения к обьектам. Для наглядности простой пример исходного кода VB6 ActiveX DLL и готовый файл Excel.
Алексей Трошкин вне форума Ответить с цитированием
Старый 13.05.2010, 17:00   #16
Алексей Трошкин
Пользователь
 
Регистрация: 02.05.2010
Сообщений: 26
По умолчанию

Для наглядности простой пример исходного кода VB6 ActiveX DLL и готовый файл Excel.
Вложения
Тип файла: zip Буфер.zip (35.0 Кб, 27 просмотров)
Алексей Трошкин вне форума Ответить с цитированием
Старый 13.05.2010, 17:56   #17
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 842
По умолчанию

Цитата:
Сообщение от Алексей Трошкин Посмотреть сообщение
Для наглядности простой пример исходного кода VB6 ActiveX DLL и готовый файл Excel.
Спасибо! Хотя если честно не разобрался... Но это из-за не достатка знания и опыта. Попробую разжиться книжкой "Профессиональная разработка приложений Excel", надеюсь поможет.
Интересует именно перенос кода из Excel в dll, так как там уже много написано. Пока идея такая: полностью написать и отладить все в Excel, и только потом переносить все dll. Хотя в настоящий момент это все для меня весьма расплывчато.
С уважением, Алексей.
tae1980 вне форума Ответить с цитированием
Старый 13.05.2010, 18:10   #18
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

А вот это
C:\Documents and Settings\юзер\Мои документы\
как можно обойти?
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 13.05.2010 в 23:59.
Hugo121 вне форума Ответить с цитированием
Старый 13.05.2010, 22:55   #19
Алексей Трошкин
Пользователь
 
Регистрация: 02.05.2010
Сообщений: 26
По умолчанию

Hugo121 я не очень понял вопроса
Алексей Трошкин вне форума Ответить с цитированием
Старый 13.05.2010, 23:55   #20
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Ну вообще-то у меня 2007 нет, может в этом причина, но после конвертера на 2000 в референсах ссылка на этот адрес (соотв. не работает), да и в файлах приложенных Buf_Excel2.vbp и clsExcel_1.exp этот путь отслеживается... Получается, файл надо на конкретной машине настраивать, или это нестыковки конвертера?
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 13.05.2010 в 23:58.
Hugo121 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
exel и delphi Demagog БД в Delphi 10 29.10.2009 17:19
Макрос в Exel Tomatos БД в Delphi 1 16.06.2009 17:33
EXEL Artomes Microsoft Office Excel 0 02.11.2008 23:18
Exel MAcK Microsoft Office Excel 1 30.04.2007 15:21