Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: VBA+XL: Доступ к коду в модулях Добавлено: 29.09.05 18:21  

Автор вопроса:  mc-black | Web-сайт: mc-black.narod.ru/dzp.htm | ICQ: 308-534-060 
Как-то поднималась тема о доступе из макроса к коду макроса самого по себе в тех или иных модулях (Module, UserForm, ThisWorkBook, Sheet1 и ClassModule). Искал по форуму, но видно плохо, т.к. не нашёл. А оччень надо!

Задача у меня такая: удалить некоторые модули кода совсем, либо (если это модуль кода самой книги, модуль рабочего листа) удалить/модифицировать сам код макросов (как работа с текстом).

Буду на связи, здесь на форуме. Если что, пишите также на mc-black[гав]yandex[тчк]ru или icq 308534060

Ответить

  Ответы Всего ответов: 4  

Номер ответа: 1
Автор ответа:
 GSerg



Вопросов: 0
Ответов: 1876


 Профиль | | #1 Добавлено: 29.09.05 19:28
Tools - References - Microsoft Visual Basic for Applications Extencibility X.X

Ответить

Номер ответа: 2
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #2
Добавлено: 29.09.05 20:10
Спасибо, сейчас попробую...

Ответить

Номер ответа: 3
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #3
Добавлено: 29.09.05 22:58
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 "&#204;&#238;&#228;&#243;&#235;&#252; " & tmp & " &#243;&#241;&#239;&#229;&#248;&#237;&#238; &#243;&#228;&#224;&#235;&#184;&#237;"
            tmp = ""
        End If
    Next vbc
    Set prj = Nothing
End Sub


Кстати, возник у меня и попутный вопрос. Кто знает, как программно (можно и из VBA, и из VB6) включить опцию Доверять доступ к Visual Basic Project? В интерфейсе Excel 2003 это галочка в Сервис-Макрос-Безопасность...-Вкладка "Надёжные издатели". Проверял смену настройки при помощи записи макросов - эти действия не запишешь. Может какая есть настройка в реестре или ещё как-то это косвенно включается? Ответы приветствуются!!!

Ответить

Номер ответа: 4
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #4
Добавлено: 29.09.05 23:01
"&#204;&#238;&#228;&#243;&#235;&#252; " & tmp & " &#243;&#241;&#239;&#"

епрст... ну зря я на русском в мессаджбоксе, всё равно браузер всё извратил!

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам