Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как скрыть меню в Екселе? / 10 сообщений из 10, страница 1 из 1
19.09.2006, 16:35:04
    #33997387
guess what
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как скрыть меню в Екселе?
Коллеги!
Подскажите в общих чертах, как добиться следующего.
Я хочу, что бы у меня в конкретном файле Ексель была скрыта (или disabled) какая либо опция клавного меню, скажем, Save As или Print...
Понятное дело, что во всех прочих файлах эта опция должна присутствовать.
Буду признателен за помощь.
...
Рейтинг: 0 / 0
19.09.2006, 17:24:11
    #33997601
mari_karo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как скрыть меню в Екселе?
При открытии файла:
Application.CommandBars(1).Controls(1).CommandBar.Controls(5).Visible = False

При закрытии файла:
Application.CommandBars(1).Controls(1).CommandBar.Controls(5).Visible = True

CommandBars(1) - это главное меню Excel
CommandBars(1).Controls(1). - пункт меню "Файл"
CommandBars(1).Controls(1).CommandBar.Controls(5) - это пункт меню "Сохранить как..."

В общем экспериментируйте, только не забывайте возвращать меню обратно).
...
Рейтинг: 0 / 0
19.09.2006, 17:34:47
    #33997645
KL (XL)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как скрыть меню в Екселе?
Теоретически, ты можешь поместить след. код в модуль ThisWorkbook:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Private Sub Workbook_Activate()
    Dim cb As CommandBar
    On Error Resume Next
    For Each cb In Application.CommandBars
        cb.FindControl(,  748 , , , True).Enabled = False
        cb.FindControl(,  4 , , , True).Enabled = False
    Next cb
End Sub

Private Sub Workbook_Deactivate()
    Dim cb As CommandBar
    On Error Resume Next
    For Each cb In Application.CommandBars
        cb.FindControl(,  748 , , , True).Enabled = True
        cb.FindControl(,  4 , , , True).Enabled = True
    Next cb
End Sub

(см. ID для CommandBars здесь: http://support.microsoft.com/kb/213552/en-us )

Но полно обходных путей. Так что лучше подстраховаться, добавив туда же:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Private Sub Workbook_BeforePrint(Cancel As Boolean)
    'Cancel = True
    'MsgBox "You can't print this file!"
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    'If SaveAsUI Then Cancel = True
    'MsgBox "You can't make copies of this file!"
End Sub

Это были хорошие новости, а плохие - обойти эту защиту нефиг делать:
- откл. макросы
- копировать в Explorer
и т.п.



KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
19.09.2006, 17:37:38
    #33997656
KL (XL)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как скрыть меню в Екселе?
Уй, доп код должен быть без "'" (comments):

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Private Sub Workbook_BeforePrint(Cancel As Boolean)
    Cancel = True
    MsgBox "You can't print this file!"
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    If SaveAsUI Then Cancel = True
    MsgBox "You can't make copies of this file!"
End Sub

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
19.09.2006, 17:44:44
    #33997688
KL (XL)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как скрыть меню в Екселе?
mari_karoПри открытии файла...При закрытии файла...наверное все же при активации и дезактивации ;-)

mari_karoCommandBars(1).Controls(1).CommandBar.Controls(5) - это пункт меню "Сохранить как..."... чревато!!! что если юзер или установщик уже поиграли с данным меню, напр. перенесли нашу кнопку в др меню :-)
...
Рейтинг: 0 / 0
19.09.2006, 17:46:15
    #33997699
mari_karo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как скрыть меню в Екселе?
KL (XL)
(см. ID для CommandBars здесь: http://support.microsoft.com/kb/213552/en-us )


Спасибо за ссылку. :) Полезная информация.
...
Рейтинг: 0 / 0
19.09.2006, 17:52:05
    #33997719
mari_karo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как скрыть меню в Екселе?
KL (XL) mari_karoПри открытии файла...При закрытии файла...наверное все же при активации и дезактивации ;-)

Ага, точно. Думаешь об одном, а пишешь малость другое...
KL (XL)
mari_karoCommandBars(1).Controls(1).CommandBar.Controls(5) - это пункт меню "Сохранить как..."... чревато!!! что если юзер или установщик уже поиграли с данным меню, напр. перенесли нашу кнопку в др меню :-)
Да, поэтому если использовать ID - это универсальное решение. :)
P.S. Век живи, век учись).
...
Рейтинг: 0 / 0
19.09.2006, 18:01:00
    #33997744
KL (XL)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как скрыть меню в Екселе?
mari_karoпоэтому если использовать ID - это универсальное решение.

почти универсальное :-) бывают и тут проблемы, но реже хе-хе.
...
Рейтинг: 0 / 0
20.09.2006, 09:08:22
    #33998518
guess what
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как скрыть меню в Екселе?
Огромное спасибо за помощь
...
Рейтинг: 0 / 0
26.04.2007, 15:53:47
    #34490303
Guest1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как скрыть меню в Екселе?
guess whatОгромное спасибо за помощь
спасибо вам за отзывчивость, я нашла ответ по вашей ссылке на свой вопрос
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как скрыть меню в Екселе? / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]