Автор вопроса: mc-black | Web-сайт:mc-black.narod.ru/dzp.htm | ICQ: 308-534-060
Как-то поднималась тема о доступе из макроса к коду макроса самого по себе в тех или иных модулях (Module, UserForm, ThisWorkBook, Sheet1 и ClassModule). Искал по форуму, но видно плохо, т.к. не нашёл. А оччень надо!
Задача у меня такая: удалить некоторые модули кода совсем, либо (если это модуль кода самой книги, модуль рабочего листа) удалить/модифицировать сам код макросов (как работа с текстом).
Буду на связи, здесь на форуме. Если что, пишите также на mc-black[гав]yandex[тчк]ru или icq 308534060
Yes!!! Спасибо, GSerg, оччень выручил! То, что надо, у меня получилось. Вот код, который сносит все модули класса, модули UserForm, модули кода, кроме Самого исполняемого модуля с макросом (я проверял, если не тормознуть, то сносит и его):
ption Explicit
Sub Main()
Dim tmp As String
Dim vbc As VBIDE.VBComponent
Dim prj As VBIDE.VBE
Set prj = Excel.Application.VBE
For Each vbc In prj.VBProjects("VBAProject".VBComponents
If (vbc.Type = vbext_ct_MSForm Or vbc.Type = vbext_ct_StdModule Or vbc.Type = vbext_ct_ClassModule) And vbc.Name <> "Module1" Then
tmp = vbc.Name
prj.VBProjects("VBAProject".VBComponents.Remove vbc
MsgBox "Ìîäóëü " & tmp & " óñïåøíî óäàë¸í"
tmp = ""
End If
Next vbc
Set prj = Nothing
End Sub
Кстати, возник у меня и попутный вопрос. Кто знает, как программно (можно и из VBA, и из VB6) включить опцию Доверять доступ к Visual Basic Project? В интерфейсе Excel 2003 это галочка в Сервис-Макрос-Безопасность...-Вкладка "Надёжные издатели". Проверял смену настройки при помощи записи макросов - эти действия не запишешь. Может какая есть настройка в реестре или ещё как-то это косвенно включается? Ответы приветствуются!!!