Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Проверка защиты ВБА - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Проверка защиты ВБА (Макросы/Sub)
Проверка защиты ВБА
Волхв Дата: Суббота, 02.04.2016, 21:21 | Сообщение № 1
Группа: Заблокированные
Ранг: Участник
Сообщений: 70
Репутация: 3 ±
Замечаний: 100% ±

Excel 2010
Добрый день,
Знаю что есть, но поисковики все не то предлогают.

нужен метод/функция, которая возвращает истина/лож, защищена/не защищена проекта ВБА, есть пароль/нет пароля
Заранее спасибо
 
Ответить
СообщениеДобрый день,
Знаю что есть, но поисковики все не то предлогают.

нужен метод/функция, которая возвращает истина/лож, защищена/не защищена проекта ВБА, есть пароль/нет пароля
Заранее спасибо

Автор - Волхв
Дата добавления - 02.04.2016 в 21:21
Karataev Дата: Суббота, 02.04.2016, 22:30 | Сообщение № 2
Группа: Проверенные
Ранг: Старожил
Сообщений: 1334
Репутация: 533 ±
Замечаний: 0% ±

Excel
Этот код возвращает 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]


Сообщение отредактировал Karataev - Суббота, 02.04.2016, 22:33
 
Ответить
СообщениеЭтот код возвращает 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]

Автор - Karataev
Дата добавления - 02.04.2016 в 22:30
Волхв Дата: Суббота, 02.04.2016, 23:29 | Сообщение № 3
Группа: Заблокированные
Ранг: Участник
Сообщений: 70
Репутация: 3 ±
Замечаний: 100% ±

Excel 2010
мда, уперся теперь в доверие

К сообщению приложен файл: 2898071.jpg (20.3 Kb)


Плодить темы - это вообще-то предназначение форума ©Serge_007 админа
 
Ответить
Сообщениемда, уперся теперь в доверие


Автор - Волхв
Дата добавления - 02.04.2016 в 23:29
StoTisteg Дата: Воскресенье, 03.04.2016, 00:42 | Сообщение № 4
Группа: Авторы
Ранг: Старожил
Сообщений: 1161
Репутация: 103 ±
Замечаний: 0% ±

Excel 2010
Так поставьте галку Доверять доступ к объектной модели проектов VBA в Центр управления безопасностью — Параметры центра управления безопасностью — Параметры макросов. Если мой склероз меня не подводит, это оно.


Интуитивно понятный код - это когда интуитивно понятно, что это код.

Сообщение отредактировал StoTisteg - Воскресенье, 03.04.2016, 00:43
 
Ответить
СообщениеТак поставьте галку Доверять доступ к объектной модели проектов VBA в Центр управления безопасностью — Параметры центра управления безопасностью — Параметры макросов. Если мой склероз меня не подводит, это оно.

Автор - StoTisteg
Дата добавления - 03.04.2016 в 00:42
Волхв Дата: Воскресенье, 03.04.2016, 01:04 | Сообщение № 5
Группа: Заблокированные
Ранг: Участник
Сообщений: 70
Репутация: 3 ±
Замечаний: 100% ±

Excel 2010
Да я это понимаю, мне надо на постороннем компьютере
thisWorkbook.VBProject.Protection
но там врятли такой доступ будут делать, и соответственно весь смысл от этого пропадает.


Плодить темы - это вообще-то предназначение форума ©Serge_007 админа
 
Ответить
СообщениеДа я это понимаю, мне надо на постороннем компьютере
thisWorkbook.VBProject.Protection
но там врятли такой доступ будут делать, и соответственно весь смысл от этого пропадает.

Автор - Волхв
Дата добавления - 03.04.2016 в 01:04
StoTisteg Дата: Воскресенье, 03.04.2016, 01:30 | Сообщение № 6
Группа: Авторы
Ранг: Старожил
Сообщений: 1161
Репутация: 103 ±
Замечаний: 0% ±

Excel 2010
Тогда только так:

[vba]
Код
    Sub jjj()
        'вместо "Книга1.xlsm" укажите другую книгу
        On Error Resume Next
        Debug.Print Workbooks("Книга1.xlsm").VBProject.Protection
        If Err.Number <> 0 Then Msgbox "Не пускаааают! Хнык"
    End Sub
[/vba]
:)


Интуитивно понятный код - это когда интуитивно понятно, что это код.

Сообщение отредактировал StoTisteg - Воскресенье, 03.04.2016, 01:33
 
Ответить
СообщениеТогда только так:

[vba]
Код
    Sub jjj()
        'вместо "Книга1.xlsm" укажите другую книгу
        On Error Resume Next
        Debug.Print Workbooks("Книга1.xlsm").VBProject.Protection
        If Err.Number <> 0 Then Msgbox "Не пускаааают! Хнык"
    End Sub
[/vba]
:)

Автор - StoTisteg
Дата добавления - 03.04.2016 в 01:30
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Проверка защиты ВБА (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!