powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / excel 2003, как задать макрос в меню правой клавишей мыши
13 сообщений из 13, страница 1 из 1
excel 2003, как задать макрос в меню правой клавишей мыши
    #37588287
Фотография Stepler
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Задача - надо выбрать в меню правой клавиши мыши макрос, который будет работать, если ячейка НЕ защищена, иначе макрос не активен.
на панели инструментов могу, но не знаю как обратится к меню (по клику правой клавиши мыши).
Спасибо

Stepler (щёлк-щёлк!!)

Код: plaintext
 P.S.Чтобы наступила смерть - необходима жизненная сила !!!  
...
Рейтинг: 0 / 0
excel 2003, как задать макрос в меню правой клавишей мыши
    #37588450
Дмит
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вариант со своим меню
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Dim cmBar As CommandBar, cmb As CommandBarControl
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
On Error GoTo Errlab
If CellProtect Then 'проверка на возможность редактирования
    Set cmBar = Application.CommandBars.Add("MyPopupMenu", msoBarPopup, False, True)
    With cmBar
        Set cmb = .Controls.Add(Type:=msoControlButton, Temporary:=True)
        With cmb
            .Caption = "qwer"
            .Style = msoControlButton
'           .FaceId =
'           .OnAction =
        End With
    End With
Errlab:
    Cancel = True
    CommandBars("Shrift").ShowPopup
End If
End Sub
...
Рейтинг: 0 / 0
excel 2003, как задать макрос в меню правой клавишей мыши
    #37588507
Фотография Stepler
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмит,

спасибо, но что-то у меня МойПопМеню не добавляет...
...
Рейтинг: 0 / 0
excel 2003, как задать макрос в меню правой клавишей мыши
    #37588702
Дмит
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stepler, у Вас нет функции CellProtect, которая должна возвратить True, если ячейка разрешена для редактирования.
Me.Protection.AllowEditRanges(i).Range - отправная точка для этой функции.
...
Рейтинг: 0 / 0
excel 2003, как задать макрос в меню правой клавишей мыши
    #37588858
Фотография Stepler
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмит,

Делаю примитивно:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Selection.Locked = False
'On Error GoTo Errlab
'If Selection.Locked = True Then 'ïðîâåðêà íà âîçìîæíîñòü ðåäàêòèðîâàíèÿ
    Set cmBar = Application.CommandBars.Add("m")
    With cmBar
        Set cmb = .Controls.Add(Type:=msoControlButton, Temporary:=True)
        With cmb
            .Caption = "kyky"
            .Style = msoControlButton
'           .FaceId =
'           .OnAction =
        End With
    End With
Errlab:
    'Cancel = True
    'CommandBars("shum").ShowPopup
'End If

End Sub



НЕ добавляет в список меню
Модератор: надо писать не src, а src vba или пользоваться соответствующей кнопочкой. Поправил
...
Рейтинг: 0 / 0
excel 2003, как задать макрос в меню правой клавишей мыши
    #37588910
Дмит
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ошибки как у Вас так и у меня :)
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Set cmBar = Application.CommandBars.Add("shum", msoBarPopup, False, True)
    With cmBar
        Set cmb = .Controls.Add(Type:=msoControlButton, Temporary:=True)
        With cmb
            .Caption = "kyky"
            .Style = msoControlButton
'           .FaceId =
'           .OnAction =
        End With
    End With
Errlab:
    Cancel = True
    CommandBars("shum").ShowPopup


список меню - как Вы получаете список? Popup не отображается в обычных меню.
...
Рейтинг: 0 / 0
excel 2003, как задать макрос в меню правой клавишей мыши
    #37589033
Фотография Stepler
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмит,

теперь проходит, но при повторном обращении дает ошибку из-за "shum" (если переназвать, то пройдет, но 1 раз)

Вообще то я хотел другое : записать ентот "куку" в перечень уже имеющихся иконок в списке правой мыши...
...
Рейтинг: 0 / 0
excel 2003, как задать макрос в меню правой клавишей мыши
    #37589070
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нужно изучить Application.CommandBars и найти там CommandBar, отвечающий за контекстное меню. Как-то типа "context" он и называется.
...
Рейтинг: 0 / 0
excel 2003, как задать макрос в меню правой клавишей мыши
    #37589169
Дмит
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Список popup меню:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
Dim cmBar As CommandBar, cmb As CommandBarControl
Dim i As Long
For Each cmBar In Application.CommandBars
    If cmBar.Type = msoBarTypePopup Then
        i = i + 1
        ActiveSheet.Cells(i, 2) = cmBar.Name
        ActiveSheet.Cells(i, 1) = cmBar.Index
    End If
Next


Вызов меню для проверки - Application.CommandBars.Item(31).ShowPopup
Вставка пункта меню:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Set cmBar = Application.CommandBars.Item(25)
    With cmBar
        Set cmb = .Controls.Add(Type:=msoControlButton, Temporary:=True)
        With cmb
            .Caption = "qwer"
            .Style = msoControlButton
'           .FaceId =
'           .OnAction = "мойМакрос"
        End With
    End With
...
Рейтинг: 0 / 0
excel 2003, как задать макрос в меню правой клавишей мыши
    #37589329
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
31 — плохая идея, на разных машинах может быть разный офис с разными меню. Нужно по имени.
...
Рейтинг: 0 / 0
excel 2003, как задать макрос в меню правой клавишей мыши
    #37589449
Фотография Stepler
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy,

Спасибо, ребята, благодаря вам задачу решил.
Исчо вопрос : есть код на определение файл открыт для чтения или нет ? Понимаю, что в св-вах искать - может есть уже прописанный...
Спасибо
...
Рейтинг: 0 / 0
excel 2003, как задать макрос в меню правой клавишей мыши
    #37589574
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stepler,
If ActiveDocument.ReadOnly = True Then MsgBox$ "Файл открыт только для чтения"
...
Рейтинг: 0 / 0
excel 2003, как задать макрос в меню правой клавишей мыши
    #37589600
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ThisWorkbook.ReadOnly
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / excel 2003, как задать макрос в меню правой клавишей мыши
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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