Этот код возвращает 1, если стоит флажок "Lock project for viewing", и 0, если не стоит этот флажок. Также нужно учитывать, что если файл открыт и его модули отображены, то, не смотря на установленный флажок "Lock project for viewing", будет возвращаться 0. У объекта "VBProject" нет свойства/метода для работы с паролем, поэтому напрямую нельзя узнать, есть пароль или нет. Можно узнать косвенно, проверив свойство "Protection", если это свойство возвращает 1, значит есть пароль. Если 0, то не известно, есть пароль или нет. [vba]
Код
Sub jjj() 'вместо "Книга1.xlsm" укажите другую книгу Debug.Print Workbooks("Книга1.xlsm").VBProject.Protection End Sub
[/vba]
Этот код возвращает 1, если стоит флажок "Lock project for viewing", и 0, если не стоит этот флажок. Также нужно учитывать, что если файл открыт и его модули отображены, то, не смотря на установленный флажок "Lock project for viewing", будет возвращаться 0. У объекта "VBProject" нет свойства/метода для работы с паролем, поэтому напрямую нельзя узнать, есть пароль или нет. Можно узнать косвенно, проверив свойство "Protection", если это свойство возвращает 1, значит есть пароль. Если 0, то не известно, есть пароль или нет. [vba]
Код
Sub jjj() 'вместо "Книга1.xlsm" укажите другую книгу Debug.Print Workbooks("Книга1.xlsm").VBProject.Protection End Sub
Так поставьте галку Доверять доступ к объектной модели проектов VBA в Центр управления безопасностью — Параметры центра управления безопасностью — Параметры макросов. Если мой склероз меня не подводит, это оно.
Так поставьте галку Доверять доступ к объектной модели проектов VBA в Центр управления безопасностью — Параметры центра управления безопасностью — Параметры макросов. Если мой склероз меня не подводит, это оно.StoTisteg
Интуитивно понятный код - это когда интуитивно понятно, что это код.
Сообщение отредактировал StoTisteg - Воскресенье, 03.04.2016, 00:43
Да я это понимаю, мне надо на постороннем компьютере thisWorkbook.VBProject.Protection но там врятли такой доступ будут делать, и соответственно весь смысл от этого пропадает.
Да я это понимаю, мне надо на постороннем компьютере thisWorkbook.VBProject.Protection но там врятли такой доступ будут делать, и соответственно весь смысл от этого пропадает.Волхв
Sub jjj() 'вместо "Книга1.xlsm" укажите другую книгу On Error Resume Next Debug.Print Workbooks("Книга1.xlsm").VBProject.Protection If Err.Number <> 0 Then Msgbox "Не пускаааают! Хнык" End Sub
[/vba] :)
Тогда только так:
[vba]
Код
Sub jjj() 'вместо "Книга1.xlsm" укажите другую книгу On Error Resume Next Debug.Print Workbooks("Книга1.xlsm").VBProject.Protection If Err.Number <> 0 Then Msgbox "Не пускаааают! Хнык" End Sub