Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.05.2010, 10:14   #1
Mint86
Пользователь
 
Аватар для Mint86
 
Регистрация: 17.07.2008
Сообщений: 81
По умолчанию Заблокировать пункт контекстного меню в excel 2007

Товарищи, возникла необходимость в запрещении пункта "исходный текст" который появляется при нажатии правой кнопки мыши на листе (на названии листа) в Excel 2007. Вроде с помощью xml это запретить нельзя, остается макросом. Подскажите как? (в xml код <command idMso="ViewCode" enabled = "false"/> запрещает кнопку "просмотр кода" на вкладке разработчик, а в контекстном меню данный пункт остается).
Mint86 вне форума Ответить с цитированием
Старый 21.05.2010, 10:33   #2
Skif-F
Форумчанин
 
Регистрация: 24.03.2010
Сообщений: 349
По умолчанию

Я использую такое:
Код:
    For Each newPopUp In Application.CommandBars("Cell").Controls
        If newPopUp.Caption = "Имя меню или панели" Then
            For Each a In newPopUp.Controls
                If a.Caption = "Имя пункта меню в панели" Then
                    a.Enabled = Flag 'или True'
                End If
            Next
            Exit For
        End If
    Next
это можно вставить в Workbook_Open()
Нет нерешаемых задач - есть недостаток времени и данных!
Skif-F вне форума Ответить с цитированием
Старый 21.05.2010, 11:02   #3
Mint86
Пользователь
 
Аватар для Mint86
 
Регистрация: 17.07.2008
Сообщений: 81
По умолчанию

Skif-F не получаестя...
что значит "Имя меню или панели" ? Я "его" не знаю. Попробовал разные вариации названия, не получается. Названия различных пунктов меню брал здесь
Mint86 вне форума Ответить с цитированием
Старый 21.05.2010, 11:17   #4
Skif-F
Форумчанин
 
Регистрация: 24.03.2010
Сообщений: 349
По умолчанию

А может, не стоит париться? Поставь пороль на макросы:
Tools/VBAProject Properties.../Protection/Password
Нет нерешаемых задач - есть недостаток времени и данных!
Skif-F вне форума Ответить с цитированием
Старый 21.05.2010, 11:29   #5
Mint86
Пользователь
 
Аватар для Mint86
 
Регистрация: 17.07.2008
Сообщений: 81
По умолчанию

Цитата:
Сообщение от Skif-F Посмотреть сообщение
А может, не стоит париться? Поставь пороль на макросы:
Tools/VBAProject Properties.../Protection/Password
Спасибо конечно, но нужно именно запретить и именно данный пункт контекстного меню, причины разные и не важно какие. Судя по этой статье контекстные меню с помощью xml в 2007-м excel нельзя изменять. Если кто знает прошу помощи.
Mint86 вне форума Ответить с цитированием
Старый 21.05.2010, 11:42   #6
Mint86
Пользователь
 
Аватар для Mint86
 
Регистрация: 17.07.2008
Сообщений: 81
По умолчанию

В Excel 2003 данный пункт можно было запретить так:

Цитата:
Sub Disable_Bar()

EnableControl 1561, False 'Исходный текст

End Sub
Цитата:
Sub EnableControl(iId As Integer, blnState As Boolean)

Dim ComBar As CommandBar, ComBarCtrl As CommandBarControl
On Error Resume Next
For Each ComBar In Application.CommandBars
Set ComBarCtrl = ComBar.FindControl(ID:=iId, recursive:=True)
If Not ComBarCtrl Is Nothing Then ComBarCtrl.Enabled = blnState
Next

End Sub
При этом запрещались все аналогичные кнопки где бы они не находились. А с 2007-м дело обстоит по другому...
Mint86 вне форума Ответить с цитированием
Старый 21.05.2010, 11:53   #7
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Почему? Посмотрите вложение. Так нужно?
Вложения
Тип файла: rar Книга1.rar (11.8 Кб, 61 просмотров)
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 21.05.2010, 12:13   #8
Mint86
Пользователь
 
Аватар для Mint86
 
Регистрация: 17.07.2008
Сообщений: 81
По умолчанию

SAS888 именно так, благодарю!
Mint86 вне форума Ответить с цитированием
Старый 21.05.2010, 13:27   #9
Aent
Форумчанин
 
Аватар для Aent
 
Регистрация: 17.07.2009
Сообщений: 519
По умолчанию

Вопрос конечно был про Excel 2007. Но вскользь замечу: В Excel 2010 ID другой ...
Aent вне форума Ответить с цитированием
Старый 21.05.2010, 13:35   #10
Mint86
Пользователь
 
Аватар для Mint86
 
Регистрация: 17.07.2008
Сообщений: 81
По умолчанию

Да и в Excel 2007 ID 1561 недекларирован или я ошибаюсь? По крайней мере в документе по ссылке которую я приводил выше ID 1561 нет. Возможно он оставлен для совместимости.
Mint86 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с контекстном меню в Excel 2007 Shlyapnik Microsoft Office Excel 6 10.03.2010 13:28
И сново sendMessage =) Как нажать пункт верхнего меню и меню правой кнопки? TwiX Win Api 9 15.10.2009 01:57
Как запретить отображение контекстного меню kovalevskivf Microsoft Office Excel 2 10.05.2009 15:18
Отключить пункт меню (Программно) ScreN Общие вопросы Delphi 1 27.12.2008 13:40
При создание edit, в режиме run-time, нет стандартного контекстного меню slips Общие вопросы Delphi 6 08.11.2008 17:05