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

Вход

Регистрация

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

 

= Мир MS Excel/Скрыть макросы - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Скрыть макросы (Макросы/Sub)
Скрыть макросы
heaven33rus Дата: Четверг, 20.07.2017, 16:47 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 64
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Лист защищен, лишнее от посторонних глаз спрятано :-)
[vba]
Код

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    SkrImen
    SkrListy
ThisWorkbook.Saved = True
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    SkrImen
    SkrListy
Cancel = True
End Sub

Private Sub Workbook_Open()
    SkrImen
    SkrListy
End Sub

Sub SkrListy()
    Лист7.Visible = -1
    Лист7.Protect Password:="123", UserInterfaceOnly:=True
    For Each sh_ In Me.Worksheets
    jjj = sh_.CodeName
        If sh_.CodeName <> "Лист7" Then
            sh_.Visible = 2
        End If
    Next sh_
End Sub

Sub PokListy()
    For Each sh_ In Me.Worksheets
    jjj = sh_.CodeName
        If sh_.CodeName <> "Лист7" Then
            sh_.Visible = -1
        End If
    Next sh_
End Sub

Sub SkrImen()
    For Each n_ In Me.Names
        n_.Visible = False
    Next n_
End Sub

Sub PokImen()
    For Each n_ In Me.Names
        n_.Visible = True
    Next n_
End Sub
[/vba]
Но вылезла одна проблема, все рабочие макросы, которые в том числе прячут лишнее или включают отключают диспетчер имен видны в книге макросов.

Можно как-то дописать код, чтоб макросы были видны, только когда снята защита листа?
 
Ответить
СообщениеЛист защищен, лишнее от посторонних глаз спрятано :-)
[vba]
Код

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    SkrImen
    SkrListy
ThisWorkbook.Saved = True
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    SkrImen
    SkrListy
Cancel = True
End Sub

Private Sub Workbook_Open()
    SkrImen
    SkrListy
End Sub

Sub SkrListy()
    Лист7.Visible = -1
    Лист7.Protect Password:="123", UserInterfaceOnly:=True
    For Each sh_ In Me.Worksheets
    jjj = sh_.CodeName
        If sh_.CodeName <> "Лист7" Then
            sh_.Visible = 2
        End If
    Next sh_
End Sub

Sub PokListy()
    For Each sh_ In Me.Worksheets
    jjj = sh_.CodeName
        If sh_.CodeName <> "Лист7" Then
            sh_.Visible = -1
        End If
    Next sh_
End Sub

Sub SkrImen()
    For Each n_ In Me.Names
        n_.Visible = False
    Next n_
End Sub

Sub PokImen()
    For Each n_ In Me.Names
        n_.Visible = True
    Next n_
End Sub
[/vba]
Но вылезла одна проблема, все рабочие макросы, которые в том числе прячут лишнее или включают отключают диспетчер имен видны в книге макросов.

Можно как-то дописать код, чтоб макросы были видны, только когда снята защита листа?

Автор - heaven33rus
Дата добавления - 20.07.2017 в 16:47
Manyasha Дата: Четверг, 20.07.2017, 17:11 | Сообщение № 2
Группа: Модераторы
Ранг: Старожил
Сообщений: 1990
Репутация: 819 ±
Замечаний: 0% ±

Excel 2010, 2016
heaven33rus, а добавить Private не подходит?
[vba]
Код
Private Sub SkrListy()
[/vba]


marinamorozova_box@mail.ru
ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщениеheaven33rus, а добавить Private не подходит?
[vba]
Код
Private Sub SkrListy()
[/vba]

Автор - Manyasha
Дата добавления - 20.07.2017 в 17:11
Udik Дата: Четверг, 20.07.2017, 18:06 | Сообщение № 3
Группа: Друзья
Ранг: Старожил
Сообщений: 1589
Репутация: 192 ±
Замечаний: 0% ±

Excel 2016 х 64
Тода макросы совсем видно не будет. B)


вот вам барабан
яд 41001231307558 wm R419131876897
udik1968@gmail.com
 
Ответить
СообщениеТода макросы совсем видно не будет. B)

Автор - Udik
Дата добавления - 20.07.2017 в 18:06
AndreTM Дата: Четверг, 20.07.2017, 22:41 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 496 ±
Замечаний: 0% ±

2003 & 2010
"Ваши" макросы (если их используете не вы) - вообще никогда не должны быть видны в Alt+F8 :D
для этого можете задействовать любые варианты: приват, фейк-параметры, использование как функции...
А для "есть защита - макросов нет, нет защиты - макросы есть" - дополняйте модель "GUI-макросами-заглушками". По событиям/действиям...


Skype: andre.tm.007
Donate: Qiwi: 9517375010
 
Ответить
Сообщение"Ваши" макросы (если их используете не вы) - вообще никогда не должны быть видны в Alt+F8 :D
для этого можете задействовать любые варианты: приват, фейк-параметры, использование как функции...
А для "есть защита - макросов нет, нет защиты - макросы есть" - дополняйте модель "GUI-макросами-заглушками". По событиям/действиям...

Автор - AndreTM
Дата добавления - 20.07.2017 в 22:41
heaven33rus Дата: Пятница, 21.07.2017, 07:09 | Сообщение № 5
Группа: Пользователи
Ранг: Участник
Сообщений: 64
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Мне главное спрятать, так чтобы я потом мог этим пользоваться
 
Ответить
СообщениеМне главное спрятать, так чтобы я потом мог этим пользоваться

Автор - heaven33rus
Дата добавления - 21.07.2017 в 07:09
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Скрыть макросы (Макросы/Sub)
Страница 1 из 11
Поиск:

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