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

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

19.07.2014, 19:42. Показов 17976. Ответов 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
Модератор
10065 / 3910 / 885
Регистрация: 22.02.2013
Сообщений: 5,860
Записей в блоге: 79
20.07.2014, 22:38
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Dragokas Посмотреть сообщение
3) от Убежденного - cсылка на статью (создание Registration-Free COM).
Он же его в VBA будет запускать. Придется манифест в VBA приаттачивать.
0
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,578
20.07.2014, 22:40  [ТС]
Цитата Сообщение от Dragokas Посмотреть сообщение
Если внимательно почитать эту тему: Регистрация ActiveX-DLL без прав администратора (UAC включен)
там много читать - я столько не смогу прочитать.


Цитата Сообщение от Антихакер32 Посмотреть сообщение
там если результат regCode не равен нулю
значит ошибка, если 0, то все в порядке либ-зареган
посмотрю завтра про эту статью.
0
20.07.2014, 22:41

Не по теме:

Цитата Сообщение от Скрипт Посмотреть сообщение
там много читать - я столько не смогу прочитать.
я это уже понял, поэтому со всей заботой, и пониманием
выкладываю в этой теме то, что читать почти не надо, ....шутка

0
Модератор
10065 / 3910 / 885
Регистрация: 22.02.2013
Сообщений: 5,860
Записей в блоге: 79
20.07.2014, 22:41
Dragokas, можно еще один способ сделать, точнее доработать твой. Перехватив функции записи в реестр, как я делал это тут, подменить HKLM на HKCU.
Кстати вот еще метод запуска ActiveX без какой-либо регистрации, правда это для VB6, но для VBA несложно переделать.
Трабла в том, что манифест все-равно нужен будет, для обеспечения привилегий asInvoker или highestAvailable.
1
 Аватар для Антихакер32
1201 / 473 / 46
Регистрация: 06.01.2014
Сообщений: 1,797
Записей в блоге: 19
20.07.2014, 22:43

Не по теме:

Цитата Сообщение от Скрипт Посмотреть сообщение
посмотрю завтра про эту статью

Напоследок выкладываю свой способ регистрации DLL//OCX.
Разработку вел в среде VB6, но скоро я отойду от этой старой привычки
и не буду ничего размещать в той ветке

итак:
для начало нужно скачать исходник для VB6
размещенный в моем блоге https://www.cyberforum.ru/blogs/445967/

нужно обратить внимание сюда
Visual Basic
1
If Dialogs Then MsgBox "Ошибка регистрации Dialogs", vbCritical: Exit Sub
Тоесть если эта либ была зареганна успешно, то возвратиться 0
в противном-же случае вызовется MsgBox..

далее я просто динамически подключаю этот компонент
Visual Basic
1
Set dlg = Controls.Add("Dialogs.dlgBrawser", "dlg")
но если это будет DLL, то нужно это сделать таким способом
Visual Basic
1
CreateObject("ИмяДЛЛ.Класс")
Уточнение модератора The trick:

Нет. В строке CreateObject("ИмяДЛЛ.Класс") прописывается не имя DLL, а имя проекта.

в моем примере, используется путь для местной папки
но замечу что путь можно также использовать любой, но это
должен быть существующий путь на диске, всё.

Не по теме:

до завтра...

0
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,578
20.07.2014, 22:44  [ТС]
Антихакер32, я уже в этой теме не смогу ориентироваться, т.к. тема растянулась на 11 веб-страниц.
0
6082 / 1327 / 195
Регистрация: 12.12.2012
Сообщений: 1,023
20.07.2014, 23:03
Цитата Сообщение от Скрипт Посмотреть сообщение
уже в этой теме не смогу ориентироваться, т.к. тема растянулась на 11 веб-страниц
Скрипт, тогда закрываю тему, чтобы у вас было время усвоить материал. Когда усвоите и у вас появятся новые вопросы, напишите мне - открою тему снова.

P.S. Выражаю благодарность всем участникам форума за создание такой отличной темы!

С уважением,
Aksima
4
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.07.2014, 23:03

Как сделать надстройку в 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 свою...


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

Или воспользуйтесь поиском по форуму:
107
Закрытая тема Создать тему
Новые блоги и статьи
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru