Проверьте, имеет ли VBAProject защиту с помощью макроса из personal.xlsb - PullRequest
0 голосов
/ 18 января 2019

Я создаю несколько макросов в моем personal.xlsb для тестирования других инструментов Excel. Макрос должен проверить, защищен ли VBAProject открытого документа паролем.

Я создал следующий код в моем personal.xslb, который всегда показывает True, независимо от того, установил ли я пароль для тестового документа или нет.

Sub testVBAPasswort()
   '1 = VB-Project protected
   '0 = VB-Project not protected
    If Application.ActiveWorkbook.VBProject.Protection = 1 Then
        MsgBox "False"
    Else
        MsgBox "True"
    End If
End Sub

1 Ответ

0 голосов
/ 18 января 2019

Попробуйте проверить элемент VBProject. Я делаю это с Workbook.VBPRoject.VBComponents.Count. Затем я использую обработчик ошибок для проверки на Err.Number = 50289, что означает, что рабочая книга защищена паролем и в настоящее время заблокирована. Конечно, после разблокировки VBProject эта ошибка больше не возникает.

Edit:

Вам следует обратиться непосредственно к книге, которую вы пытаетесь протестировать, в противном случае вы, вероятно, тестируете саму personal.xlsb. Если вам нужно иметь возможность динамически тестировать книги, просто добавьте

Dim w as Workbook
For each w in Application.Workbooks
    If Not w.Name = "personal.xlsb" Then
        If w.VBProject.Protection = 1 Then
            MsgBox w.Name & " Password Protected"
        Else
            MsgBox w.Name & " Not Password Protected"
        End If
    End If
Next w
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...