Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / скрыть из меню "Изменить комментарии" / 8 сообщений из 8, страница 1 из 1
28.03.2007, 15:35:16
    #34422116
Guest1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
скрыть из меню "Изменить комментарии"
а какой командой можно программно скрыть из контекстного меню ячейки
команды

-"Изменить примечания"
-"Удалить примечания"
- "Отобразить или скрыть примечания"

спасибо
...
Рейтинг: 0 / 0
28.03.2007, 16:08:59
    #34422250
lena_####
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
скрыть из меню "Изменить комментарии"
Guest1

Если речь идет об Excel и контекстном меню "Cell", то такой код выведет в окно отладки названия пунктов меню и их ID:

Код: plaintext
1.
2.
For Each ctr In Application.CommandBars("Cell").Controls
  Debug.Print ctr.Caption; Tab; ctr.ID
Next

В моем случае получилось следующее:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
&Вырезать                             21  
&Копировать                           19  
Вст&авить                             22  
Сп&ециальная вставка...              755  
&Добавить ячейки...                 3181  
&Удалить...                          292  
Очистить содер&жимое                3125  
Добавить приме&чание                2031  
Удалить при&мечание                 1592  
&Отобразить примечание              1593  
Формат &ячеек...                     855  
В&ыбрать из списка...               1966  
Добавить контрольное &значение      5685  
Гиперсс&ылка...                     1576  
Изменить &гиперссылку...            1577  
&Открыть гиперссылку                1015  
&Удалить гиперссылку                3626 

Ну а теперь можно скрыть нужный пункт либо так:
Код: plaintext
Application.CommandBars("Cell").Controls("Добавить приме&чание").Visible = False
либо найдя его по ID:
Код: plaintext
1.
2.
For Each ctr In Application.CommandBars("Cell").Controls
  If ctr.ID =  2031  Then ctr.Visible = False
Next
Вот это тоже может пригодиться. Восстанавливаем контекстное меню после эксперимантов:
Код: plaintext
Application.CommandBars("Cell").Reset
Множно пункты меню не скрывать, а делать недоступными:
Код: plaintext
Application.CommandBars("Cell").Controls("Добавить приме&чание").Enabled = False
...
Рейтинг: 0 / 0
28.03.2007, 17:15:46
    #34422572
vkodor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
скрыть из меню "Изменить комментарии"
lena_####
либо найдя его по ID:
Код: plaintext
1.
2.
For Each ctr In Application.CommandBars("Cell").Controls
  If ctr.ID =  2031  Then ctr.Visible = False
Next

не для критики
зная ID можно не бегать по коллекции достаточно воспользоваться FindControl
Код: plaintext
    CommandBars.FindControl(ID:= 2031 ).Enabled = True
...
Рейтинг: 0 / 0
28.03.2007, 17:22:20
    #34422601
lena_####
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
скрыть из меню "Изменить комментарии"
vkodor

И действительно никакой беготни не надо. Спасибо :)
...
Рейтинг: 0 / 0
26.04.2007, 14:32:47
    #34489886
Guest1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
скрыть из меню "Изменить комментарии"
надо ещё скрыть из меню Сервис пункт "Доступ к книге"
какое имя у этого commandbars
и если не трудно, укажите где в Help это написано ?
...
Рейтинг: 0 / 0
26.04.2007, 15:28:59
    #34490207
999999
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
скрыть из меню "Изменить комментарии"
...
Рейтинг: 0 / 0
26.04.2007, 15:38:01
    #34490236
vkodor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
скрыть из меню "Изменить комментарии"
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Sub ShowCommandBarNames()
    Dim Row As Integer
    Dim cbar
    Dim cbar2
    Cells.Clear
    Row =  1 
    For Each cbar In CommandBars( 1 ).Controls
        Cells(Row,  1 ) = cbar.Index
        Cells(Row,  2 ) = cbar.Caption
        Cells(Row,  3 ) = cbar.ID
        Row = Row +  1 
        For Each cbar2 In cbar.Controls
            Cells(Row,  2 ) = cbar2.Index
            Cells(Row,  3 ) = cbar2.Caption
            Cells(Row,  4 ) = cbar2.ID
            Row = Row +  1 
        Next
        Row = Row +  1 
    Next cbar
End Sub
...
Рейтинг: 0 / 0
28.04.2007, 11:51:11
    #34494985
Guest1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
скрыть из меню "Изменить комментарии"
vkodor
спасибо, как раз то что надо, на все случаи жизни :)
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / скрыть из меню "Изменить комментарии" / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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