Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: Контекстное меню - как сделать Добавлено: 15.05.07 22:03  

Автор вопроса:  VisualPaul  | ICQ: 402519798 
Ну да такой дурацкий вопрос возник и всё тут

Ответить

  Ответы Всего ответов: 11  

Номер ответа: 1
Автор ответа:
 Skywalker



ICQ: 300-70-6пятьЪ 

Вопросов: 62
Ответов: 545
 Web-сайт: iSkywalker.ru
 Профиль | | #1
Добавлено: 15.05.07 22:24
сделай новую форму, и при клике мышкой показывай ее с координатами левого верхнего угла = координатам мыши

Ответить

Номер ответа: 2
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #2
Добавлено: 16.05.07 00:12
Делаешь обычное меню, делаешь его скрытым, а потом используешь что-то типа Me.PopupMenu, где один из параметров - имя меню, а другой - координаты точки, где его надо показать.

Ответить

Номер ответа: 3
Автор ответа:
 Pavel



Вопросов: 0
Ответов: 82
 Профиль | | #3 Добавлено: 16.05.07 00:45
http://www.progz.ru/forum/lofiversion/index.php/t27856.html
http://www.vbstreets.ru/VBA/Articles/65843.aspx
http://msoffice.nm.ru/faq/macros/commandbars.htm

Ответить

Номер ответа: 4
Автор ответа:
 Pavel



Вопросов: 0
Ответов: 82
 Профиль | | #4 Добавлено: 16.05.07 01:03
Этот код надо добавить в модуль общего назначения (т.е. в Module1)


[/code]Sub CreateShortcut()
    ;Dim myBar As CommandBar
    ;Dim myItem As CommandBarControl
    Call DeleteShortcut
    'создаём контекстное меню
    Set myBar = CommandBars.Add _
        ;(Name:="MyShortcut", Position:=msoBarPopup, Temporary:=True)
    'создаём объектную переменную для будущих строк меню
    'первая строка
    Set myItem = myBar.Controls.Add(Type:=msoControlButton)
    With myItem
        .Caption = "Привет1" 'название
        .OnAction = "Hi1" 'что делать по нажанию
        .FaceId = 1554 'иконка
    End With
    'вторая строка
    Set myItem = myBar.Controls.Add(Type:=msoControlButton)
    With myItem
        .Caption = "Привет2" 'название
        .OnAction = "Hi2" 'что делать по нажанию
        .FaceId = 291 'иконка
    End With
    'и т.д.
End Sub

Private Sub Hi1()
    MsgBox "Привет 1"
End Sub

Private Sub Hi2()
    MsgBox "Привет 2"
End Sub

Private Sub DeleteShortcut()
    On Error Resume Next
    CommandBars("MyShortcut";).Delete
End Sub
[/code]

Этот код в модуль ЭтаКнига (ThisWorkbook), чтобы меню создавалось во время открытия книги

Private Sub Workbook_Open()
    Call CreateShortcut
End Sub


А этот код добавляем, например, в модуле "Лист1"

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
    CommandBars("MyShortcut";).ShowPopup
    Cancel = True
End Sub

Ответить

Номер ответа: 5
Автор ответа:
 Pavel



Вопросов: 0
Ответов: 82
 Профиль | | #5 Добавлено: 16.05.07 10:20
Интересно, когда сделают возможность редактирования своего сообщения ? Кто даст e-mail админа ? )

Ответить

Номер ответа: 6
Автор ответа:
 VisualPaul



ICQ: 402519798 

Вопросов: 12
Ответов: 111
 Профиль | | #6 Добавлено: 16.05.07 12:36
Ага, тёзка.

Ответить

Номер ответа: 7
Автор ответа:
 VisualPaul



ICQ: 402519798 

Вопросов: 12
Ответов: 111
 Профиль | | #7 Добавлено: 16.05.07 12:39
И ещё а под VB6 как

Ответить

Номер ответа: 8
Автор ответа:
 VisualPaul



ICQ: 402519798 

Вопросов: 12
Ответов: 111
 Профиль | | #8 Добавлено: 16.05.07 15:24
У меня :
Compile error:

User-defined type not defined
(
Ошибка компилирования:

Определяемый пользователем тип не определён
). Всё это - про тип CommandBar если я комментирую строку
Dim myBar As CommandBar
то тоже самое про тип CommandBarControl

Ответить

Номер ответа: 9
Автор ответа:
 Pavel



Вопросов: 0
Ответов: 82
 Профиль | | #9 Добавлено: 16.05.07 19:02
Как будет в VB6 я не знаю (
Всё тестровалось на Excel 2003
Я писал вчера из дома и сейчас проверил у себя на работе всё прекрасно работает. Проверьте:
1)правильно ли вы разместили кода (в нужных ли модулях)
2)может там ссылки на библиотеки нужны
у меня сейчас подключены след. библиотеки
1) Visual Basic For Applications
2) Microsoft Excel 11.0 Object Library
3) OLE Automation
4) Microsoft Office 11.0 Object Library

Ответить

Номер ответа: 10
Автор ответа:
 VisualPaul



ICQ: 402519798 

Вопросов: 12
Ответов: 111
 Профиль | | #10 Добавлено: 16.05.07 23:28
Понял проверю 17-го

Ответить

Номер ответа: 11
Автор ответа:
 VisualPaul



ICQ: 402519798 

Вопросов: 12
Ответов: 111
 Профиль | | #11 Добавлено: 18.05.07 11:09
Критична - Microsoft Office 11.0 Object Library

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам