Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.51/82: Рейтинг темы: голосов - 82, средняя оценка - 4.51
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,578

Как сделать DLL для VBA?

19.07.2014, 19:42. Показов 17902. Ответов 106
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Что нужно сделать, чтобы сделать DLL?

Я так понимаю, что нужен какой-то язык программирования.
Есть кажется VB6. Если сделать DLL, то в него можно просто поместить VBA-код, в том виде, в каком этот код находится в VBA? Или нужно изменить?

DLL хочу сделать, чтобы скрывать код макроса.

Например, такой код можно будет просто вставить в DLL или надо будет изменить:?
Visual Basic
1
2
3
4
5
6
7
Sub Procedure1()
 
    Dim shActive As Excel.Worksheet
    
    Set shActive = ActiveSheet
 
End Sub
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.07.2014, 19:42
Ответы с готовыми решениями:

Как создать DLL для VBA
Здравствуйте. Скажите, пожалуйста, как создать dll для VBA. У меня "Visual Studio 2013 Express". В dll хочу вставить такой код:...

Как написать Dll для использования в VBA (MS Access 2003)
Добрый день! По статье сделал Dll: using System; using System.Collections.Generic; using System.Linq; using System.Text; ...

Как создать правильный DLL для использования в VBA макросе CorelDraw
Есть скрипт на VBA для CorelDraw Нужно спрятать важные процедуры в DLL, написанную в Visual Studio 2017 используя язык VisualBasic.NET....

106
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
20.07.2014, 09:07
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Скрипт Посмотреть сообщение
и нужно будет вручную что-то делать?
Почти наверняка придется
1
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,578
20.07.2014, 09:08  [ТС]
SoftIce, а где больше придётся доделывать вручную:
в Visual Studio
или в VB6?

Или одинаково?
0
 Аватар для Антихакер32
1201 / 473 / 46
Регистрация: 06.01.2014
Сообщений: 1,797
Записей в блоге: 19
20.07.2014, 09:12
Ты можеш автоматизировать правку в том же Excel
в любом продвинутом блокноте, а в самой среде VB6
копирование макроса из Excel'я в класс модуля, особых трудностей не доставит
просто нужно разбираться в объектно оринтированном програмировании хотябы немного вот и все, чтоб правильно передовать типы данных, подключать объекты ну и прочие мелочи
0
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,578
20.07.2014, 09:16  [ТС]
Антихакер32, а в "Visual Studio" по-другому? Пишут, что в "Visual Studio" есть кнопка для перевода VB6 в "Visual Studio VB". Эта кнопка позволяет делать то же самое, что можно было бы делать в VB6?
0
 Аватар для Антихакер32
1201 / 473 / 46
Регистрация: 06.01.2014
Сообщений: 1,797
Записей в блоге: 19
20.07.2014, 09:21
У меня нет "Visual Studio", чтото посоветовать не могу,
я ее считаю ненужной и чрезмерно громоздкой для своих задач, к тому-же
как сказал мой друг SoftIce, dll-ки легко декомпилятся вплодь до коментареев а это мне совсем не нравится
0
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,578
20.07.2014, 09:24  [ТС]
Антихакер32, я подразумеваю не "VB.Net", а "Visual Studio Visual Basic" - это разные языки программирования.

"Visual Studio Visual Basic" сделали взамен VB6.
0
 Аватар для Антихакер32
1201 / 473 / 46
Регистрация: 06.01.2014
Сообщений: 1,797
Записей в блоге: 19
20.07.2014, 09:26
Вот, у меня есть необходимые файлики на флэхе, в спец-папке, на случай если слитит ось.
больше мне ничего не надо, все эти прочие навороты как VB.net, больше мешают чем помогают
Миниатюры
Как сделать DLL для VBA?  
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
20.07.2014, 09:38
Цитата Сообщение от Скрипт Посмотреть сообщение
я подразумеваю не "VB.Net", а "Visual Studio Visual Basic" - это разные языки программирования.
"Visual Studio Visual Basic" сделали взамен VB6
Кажется требуется небольшое пояснение
Миниатюры
Как сделать DLL для VBA?  
1
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,578
20.07.2014, 09:46  [ТС]
Написали, что в VB.net можно легко декомпилировать код и посмотреть код. Поэтому в этой теме не обсуждается VB.net.

Сейчас идёт выбор между двумя средами:
Visual Studio Visaul Basic (это не VB.Net - не путайте)
VB6
0
 Аватар для Антихакер32
1201 / 473 / 46
Регистрация: 06.01.2014
Сообщений: 1,797
Записей в блоге: 19
20.07.2014, 09:52
Я решил, что вам нужно: "Как сделать DLL для VBA"
Вот два одинаковых решения, одно написанное на VB6, другое на Excel
найди 10 отличий


https://www.cyberforum.ru/post6423398.html

https://www.cyberforum.ru/post6421522.html
0
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,578
20.07.2014, 09:57  [ТС]
Антихакер32, я другую тему создал, если что, пишите сюда:
Какую среду лучше использовать для создания DLL?
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
20.07.2014, 09:58
Цитата Сообщение от Скрипт Посмотреть сообщение
Сейчас идёт выбор между двумя средами:
Visual Studio Visaul Basic (это не VB.Net - не путайте)
VB6
Еще небольшое пояснение

VB6 (он же Visual Basic 6.0) входил в состав Visual Studio 6.0 1998 года

В более поздних версиях в Visual Studio входит Visual Basic на платформе Net
Их общее название VB.Net (VB2005, VB2008 ,VB2010, VB2012, VB2013 и т.д)
1
 Аватар для Антихакер32
1201 / 473 / 46
Регистрация: 06.01.2014
Сообщений: 1,797
Записей в блоге: 19
20.07.2014, 10:07
Цитата Сообщение от Скрипт Посмотреть сообщение
Какую среду лучше использовать для создания DLL для VBA
Тут к гадалке, ходить не надо, ответ: среда Visual Basic 6.0

Добавлено через 5 минут

Не по теме:

А вообще, я как программист одиночка, с амбициями разработчика платных программ
сейчас пытаюсь переходить совсем в другую среду, тоже родственной с байсиками
но с менее занятыми позициями на рынке

1
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,578
20.07.2014, 11:09  [ТС]
В процессе обсуждения этой темы пришёл к тому, что возникает необходимость защиты самой DLL.
DLL лучше защищена чем VBA-макросы, или разницы нет?
0
Модератор
10064 / 3909 / 885
Регистрация: 22.02.2013
Сообщений: 5,859
Записей в блоге: 79
20.07.2014, 11:30
Цитата Сообщение от Скрипт Посмотреть сообщение
В процессе обсуждения этой темы пришёл к тому, что возникает необходимость защиты самой DLL.
DLL лучше защищена чем VBA-макросы, или разницы нет?
DLL не защищена, она скомпилирована в машинный код, грубо говоря переведена на ассемблер без комментариев (если ты компилируешь в Native). Поэтому если ты знаешь ассемблер, ты можешь посмотреть как работает твоя DLL. Другой вопрос - а нужно ли кому-нибудь это? Взломать можно все что угодно.
0
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,578
20.07.2014, 11:35  [ТС]
The trick, я сейчас в интернете бегло посмотрел и выяснил, что есть программы для декомпиляции DLL.
Основной смысл, почему я хочу использовать DLL в VBA, - я хочу скрыть код от просмотра.

Пользователь может скачать из интернета программу для декомпиляции и посмотреть мой код. Для этого пользователю не надо быть программистом (я так думаю).
0
Модератор
10064 / 3909 / 885
Регистрация: 22.02.2013
Сообщений: 5,859
Записей в блоге: 79
20.07.2014, 11:43
Цитата Сообщение от Скрипт Посмотреть сообщение
The trick, я сейчас в интернете бегло посмотрел и выяснил, что есть программы для декомпиляции DLL.
Есть. Разницы нет декомпиляция DLL или EXE. Также можно декомпилировать DLL на C++, ассемблере, Delphi и т.д. Но что ты получишь на выходе - это отдельный разговор. Это уже будет не девственный исходник, а много непонятного кода, который вряд ли будет смотреть непрограммист. Во-вторых декомпиляция невсегда возможна, в том смысле что декомпилятор может неправильно понять логику.
2
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
20.07.2014, 11:50
Цитата Сообщение от Скрипт Посмотреть сообщение
Пользователь может скачать из интернета программу для декомпиляции и посмотреть мой код. Для этого пользователю не надо быть программистом
Я думаю мало найдется желающих.

Скрипт, специально для Вас создал (на VB6) максимально упрощенную Dll с одним методом (сложение) и использующий её документ Excel.


Требуется регистрация For_Скрипт.dll
Вложения
Тип файла: rar Excel+Dll.rar (17.4 Кб, 50 просмотров)
2
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,578
20.07.2014, 11:59  [ТС]
SoftIce, спасибо, посмотрю.
0
Модератор
10064 / 3909 / 885
Регистрация: 22.02.2013
Сообщений: 5,859
Записей в блоге: 79
20.07.2014, 12:05
Цитата Сообщение от SoftIce Посмотреть сообщение
Требуется регистрация For_Скрипт.dll
Скрипт, вот смотри что дал декомпилятор:

Он ошибся и неправильно декомпилировал. Последний (3-й листинг) - это на ассемблере, вот в нем уже понятно что происходит сложение двух Double чисел. Из него можно сказать что не устанавливалась опция Remove Floating point error check и вообще не использовалась какая-либо оптимизация кода. Декомпилятор и подавно запутался.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.07.2014, 12:05

Как сделать надстройку в Visual Basic для VBA?
Помогите, как сделать надстройку в Visual Basic для VBA?

dll для VBA
Доброе время суток. Создаю dll в VB.NET. В нее хочу запихнуть часть кода vba. Но после создания библиотеки не могу ее...

Как сделать библиотеку DLL с моим компонентом видимой для COM?
Я создал компонент, он работает в готовом exe. Я создал DLL и засунул туда этот компонент. Он работает если создавать его из кода (Dim a...

Как сделать обработчик OnClick в библиотеке(dll) для MainMenu?
Разрабатываю приложение, и делаю так что бы большая часть функций приложения загружалась из библиотек. В общем делаю приложение, которое...

DLL для VBA и VB - почему разница в работе?
Доброго дня, читающий. Есть софтина "Полезные расчеты", которая выполняет некую полезную работу. Я написал на VBA под Excel свою...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
60
Закрытая тема Создать тему
Новые блоги и статьи
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов. Логика кажется понятной: 1. Находим ключевые слова. 2. Добавляем их на. . .
Знание — сила: Доктрина интенциональности знаний, углубление в формулу
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302 Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru