MyTetra Share
Делитесь знаниями!
Как узнать существует ли модуль в книге
16.03.2019
23:43
Раздел: !Закладки - VBA - VBA управление кодами

ПРОВЕРКА НАЛИЧИЯ ЗАЩИТЫ VBA ПРОЕКТА

Sub Check_VBProjLock()

    MsgBox "VB проект книги " & IIf(IsVBProjLock(ActiveWorkbook), "закрыт", "доступен"), vbInformation

End Sub



'---------------------------------------------------------------------------------------

' Procedure : IsVBProjLock

'             http://www.excel-vba.ru

' Purpose   : Функция проверки наличия защиты у VBA проекта

'             True  - вернет, если проект защищен

'             False - вернет, если проект доступен для внесения изменений

'---------------------------------------------------------------------------------------

Function IsVBProjLock(wbCheck As Workbook) As Boolean

    Dim oVBProj As Object

    Set oVBProj = wbCheck.VBProject

    If Not oVBProj Is Nothing Then

        IsVBProjLock = (oVBProj.Protection <> 0)

    End If

End Function



'ПРОВЕРКА НАЛИЧИЯ НУЖНОГО МОДУЛЯ

Sub Check_VBComponentExists()

    MsgBox "Модуль 'Module1' " & IIf(IsModuleExists("Module2"), "существует", "отсутствует"), vbInformation

End Sub

'---------------------------------------------------------------------------------------

' Procedure : IsModuleExists

'             http://www.excel-vba.ru

' Purpose   : Функция проверки наличия защиты у VBA проекта

' Аргументы функции:

'             sModuleName - имя VBA компонента для проверки

'             objVBProj   - если указан, наличие компонента проверяется в указанном VBA проекте

'                           если не указан - в проекте активной книги

' Результат функции:

'             True        - вернет, если проект защищен

'             False       - вернет, если проект доступен для внесения изменений

'---------------------------------------------------------------------------------------

Function IsModuleExists(sModuleName As String, Optional ByVal objVBProj As Object = Nothing) As Boolean

    If objVBProj Is Nothing Then

        Set objVBProj = ActiveWorkbook.VBProject

    End If

    On Error Resume Next

    IsModuleExists = CBool(Len(objVBProj.VBComponents(sModuleName).Name))

End Function





Так же в этом разделе:
 
MyTetra Share v.0.52
Яндекс индекс цитирования