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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.05.2011, 19:28   #1
А)-(дрей
Пользователь
 
Аватар для А)-(дрей
 
Регистрация: 28.02.2011
Сообщений: 42
По умолчанию контекстное меню и примечания

Доброго времени суток уважаемые форумчане. Подскажите как лучше сделать - есть рабочая книга, при открытии которой требуется авторизация, после авторизации при вводе данных в ячейки создается примечание (не раскрытое в виде красного треугольника в углу) содежащее текст с данными об авторе (выбирается, как логин при авторизации), дате и времени ввода этих данных. Все это делается для того, чтобы было видно кто и когда вводил конкретные данные.
Собственно сам вопрос, как в данной рабочей книги из контекстного меню, вызываемого правой кнопкой при клике на ячейку, убрать пункт "удалить примечание"... либо есть какие либо другие существенные способы по запрету удаления таких примечаний?
А)-(дрей вне форума Ответить с цитированием
Старый 07.05.2011, 20:07   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Запускаем это:
Код:
Sub СписокПунктовКонтекстногоМеню()
    For Each Control In Application.CommandBars("Cell").Controls
        Debug.Print Control.ID, Control.Caption
    Next Control
End Sub
Видим это:
Цитата:
21 &Вырезать
19 &Копировать
22 Вст&авить
755 Сп&ециальная вставка...
3181 &Добавить ячейки...
292 &Удалить...
3125 Очистить содер&жимое
2056 &Изменить примечание
1592 Удалить при&мечание
1593 &Отобразить или скрыть примечание
855 Формат &ячеек...
1966 В&ыбрать из раскрывающегося списка...
5685 Добавить контрольное &значение
7193 &Создать список...
1576 Гиперсс&ылка...
1577 Изменить &гиперссылку...
1015 &Открыть гиперссылку
3626 &Удалить гиперссылку
7685 &Поиск...
Пишем макрос:
Код:
Sub УдалитьПунктИзКонтекстногоМеню()
    On Error Resume Next
    Application.CommandBars("Cell").FindControl(, 1592, , , True).Delete
End Sub
Проверяем:
EducatedFool вне форума Ответить с цитированием
Старый 07.05.2011, 22:12   #3
А)-(дрей
Пользователь
 
Аватар для А)-(дрей
 
Регистрация: 28.02.2011
Сообщений: 42
По умолчанию

Мда... как всегда исчерпывающий ответ от EducatedFool )) Спасибо! Для закрытия темы стоит лишь дабавить, что если будут проблемы с возвратом к прежнему состоянию меню нужно воспользоваться следующим кодом, предоставленным опять же EducatedFool :
Код:
Sub ВосстановитьВсеКонтекстноеМеню()
    Dim cb As CommandBar
    For Each cb In Application.CommandBars
        If cb.Type = msoBarTypePopup Then cb.Enabled = True: cb.Reset
    Next
End Sub
А)-(дрей вне форума Ответить с цитированием
Старый 26.11.2014, 17:49   #4
Оксана33
Форумчанин
 
Аватар для Оксана33
 
Регистрация: 24.11.2014
Сообщений: 156
По умолчанию

Код:
Sub СписокПунктовКонтекстногоМеню()
    For Each Control In Application.CommandBars("Cell").Controls
        Debug.Print Control.ID, Control.Caption
    Next Control
End Sub

EducatedFool, запускала Ваш макрос и не срабатывает. В чем дело - не подскажите?
Знание надмевает, а любовь назидает

Последний раз редактировалось Оксана33; 26.11.2014 в 17:55.
Оксана33 вне форума Ответить с цитированием
Старый 26.11.2014, 18:05   #5
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

а Вы откройте Immadiate Window (Ctrl+G) все, что происходило сосредоточено там.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 26.11.2014, 21:17   #6
Оксана33
Форумчанин
 
Аватар для Оксана33
 
Регистрация: 24.11.2014
Сообщений: 156
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
а Вы откройте Immadiate Window (Ctrl+G) все, что происходило сосредоточено там.
а где его найти?
Знание надмевает, а любовь назидает
Оксана33 вне форума Ответить с цитированием
Старый 26.11.2014, 22:50   #7
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

ага, извините Вы же макрос как-то запускали? в окне редоктора (БВЕ) жмите Ctrl+G увидите это самое окно, выполните макрос, в окне увидите результаты его работы
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 01.12.2014, 12:59   #8
Оксана33
Форумчанин
 
Аватар для Оксана33
 
Регистрация: 24.11.2014
Сообщений: 156
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
ага, извините Вы же макрос как-то запускали? в окне редоктора (БВЕ) жмите Ctrl+G увидите это самое окно, выполните макрос, в окне увидите результаты его работы
Cпасибо большущее, про Ctrl+G в окне редоктора не сообразила
Знание надмевает, а любовь назидает
Оксана33 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Контекстное меню detalik Помощь студентам 5 14.04.2011 09:34
контекстное меню J.Bond Помощь студентам 3 17.06.2010 21:18
Контекстное меню mar4elo Общие вопросы Delphi 19 18.09.2009 14:30
Контекстное меню. nikolai_P Microsoft Office Excel 1 05.05.2009 09:57
Контекстное меню Aндрей Помощь студентам 1 28.04.2009 17:56