Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Удаление макросом VBA себя самого или своего модуля

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Веб-программинг] >> Удаление макросом VBA себя самого или своего модуля
Имя
Сообщение << Старые топики   Новые топики >>
Удаление макросом VBA себя самого или своего модуля - 2006-04-04 14:04:01   
GoldenAxe

Сообщений: 2
Оценки: 0
Присоединился: 2006-04-04 12:22:08
Многих мучает вопрос как с помощью команды макроса в Excel удалить сам макрос или один из его модулей.
Варианты такие:
*******************
Sub DeleteAllLines() ' удаляет все что написано в Модуле1
With ThisWorkbook.VBProject.VBComponents("Module1").CodeModule
.DeleteLines 1, .CountOfLines
End With
End sub
*******************
Sub DeleteModule() ' удаляет сам Модуль1
Dim vbc As VBComponent
Set vbc = ThisWorkbook.VBProject.VBComponents("Module1")
ThisWorkbook.VBProject.VBComponents.Remove vbc
Set vbc = Nothing
End sub
*******************
Sub DeleteModule() ' удаляет весь макрос
Dim tmp As String
Dim vbc As VBComponent
Dim prj As VBIDE.VBE

Set prj = Excel.Application.VBE

For Each vbc In prj.VBProjects("NAME").VBComponents
If (vbc.Type = vbext_ct_MSForm Or vbc.Type = vbext_ct_StdModule Or vbc.Type = vbext_ct_ClassModule) And vbc.Name <> "Module2" Then
tmp = vbc.Name
prj.VBProjects("NAME").VBComponents.Remove vbc
tmp = ""
End If
Next vbc
Set prj = Nothing

End sub
*******************

НО!!!!!!!!!!!!!!!!!!!
Все эти коды выполняются ТОЛЬКО с установленной галочкой «Доверять доступ к Visual Basic Project» («Trust access to Visual Basic Project») в параметрах безопасности макросов.

ВНИМАНИЕ ВОПРОС!
Как программным методом (кодами в начале макроса) изменить параметры безопасности и установить соответствующую галочку?

Я НЕ ПИШУ ВИРУСЫ, дело в том, что я продаю свои мелкие программки на VBA и хочу защитить свои авторские права. Мне надо чтобы после определенной даты или после определенного кол-ва запуска программы она удаляла сама себя. Мне НЕ НАДО воздействовать на другие файлы и программы, надо только "лицензировать" свою.

Была еще такая идея:
После проверки даты или кол-ва запусков, в случае привышения макрос сохраняет свой же файл в формате Excel 3.0, который не может содержать макросов. Идея прекрасно воплощяется в жизнь, но только если сам макрос не защищен паролем! Может как-то развить это направление?


Слышал еще такое:
Что если проект имеет цифровую подпись MicroSoft то даже эта галочка не нужна, т.к. в таком случае Excel воспринемает эту прогу как "свою родную" и разрешает любые манипуляции с макросом самим макросом. Для этого надо всего-лишь подписаться цифровым сертификатом MS. Кто-нибудь знает как это сделать? Тем более что прога по присвоению сертификатов находится в стандартной комплектации Офиса.

Заранее спасибо за все советы!
Post #: 1
Удаление макросом VBA себя самого или своего модуля - 2006-04-04 14:15:13   
Python

Сообщений: 4964
Оценки: 0
Присоединился: 2005-12-14 08:32:13
Ёп [sm=sm128.gif] в "Войне и мир" и то меньше написано. [sm=sm128.gif]
Post #: 2
Удаление макросом VBA себя самого или своего модуля - 2006-04-04 14:19:52   
GoldenAxe

Сообщений: 2
Оценки: 0
Присоединился: 2006-04-04 12:22:08
А по существу?[sm=12.gif]
Post #: 3
Страниц:  [1]
Все форумы >> [Веб-программинг] >> Удаление макросом VBA себя самого или своего модуля







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.