Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Работа с правой кнопкой мыши - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Работа с правой кнопкой мыши (Макросы/Sub)
Работа с правой кнопкой мыши
flash708 Дата: Воскресенье, 07.12.2014, 21:41 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 37
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Всем доброго времени суток!
Файл не прилагаю потому что вопрос носит общий характер.
Подскажите как сделать чтобы после выделения текста внутри пользовательской формы (текст внутри TextBox) при нажатии на правую кнопку мыши выходило полнофункциональное меню типа Copy-Paste-Cut (что-то типа буфера обмена).
 
Ответить
СообщениеВсем доброго времени суток!
Файл не прилагаю потому что вопрос носит общий характер.
Подскажите как сделать чтобы после выделения текста внутри пользовательской формы (текст внутри TextBox) при нажатии на правую кнопку мыши выходило полнофункциональное меню типа Copy-Paste-Cut (что-то типа буфера обмена).

Автор - flash708
Дата добавления - 07.12.2014 в 21:41
gling Дата: Воскресенье, 07.12.2014, 21:47 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2525
Репутация: 678 ±
Замечаний: 0% ±

2010
А чем клавиатура не устраивает?


ЯД-41001506838083
 
Ответить
СообщениеА чем клавиатура не устраивает?

Автор - gling
Дата добавления - 07.12.2014 в 21:47
flash708 Дата: Воскресенье, 07.12.2014, 22:03 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 37
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Вы имеете ввиду Ctrl+C и т.д.? Лично меня устроит и такой вариант, но я пытаюсь создать такой файл, чтобы было удобней работать с ним не только мне
 
Ответить
СообщениеВы имеете ввиду Ctrl+C и т.д.? Лично меня устроит и такой вариант, но я пытаюсь создать такой файл, чтобы было удобней работать с ним не только мне

Автор - flash708
Дата добавления - 07.12.2014 в 22:03
alex77755 Дата: Понедельник, 08.12.2014, 00:57 | Сообщение № 4
Группа: Проверенные
Ранг: Обитатель
Сообщений: 362
Репутация: 64 ±
Замечаний: 0% ±

Попадался примерчик создания меню. Посмотрите может что пригодится:

[vba]
Код
Option Explicit

Dim p As CommandBar

Private Sub TextBox1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
     If Button = 2 Then СозданиеМеню_ЗаполнениеЭтогоМенюЭлементами_и_ЕгоОтображение
End Sub

'Создаём модуль, и вставляем в него такой код:

Sub СозданиеМеню_ЗаполнениеЭтогоМенюЭлементами_и_ЕгоОтображение()
Dim ctrl, NewMenu, DemoMode
On Error Resume Next: Application.CommandBars.Add "Моё контекстное меню", msoBarPopup
      
: Set p = Application.CommandBars("Моё контекстное меню")
     'p.Reset - почему-то не работает ' очистка меню от прежних пунктов (если каждый раз добавляем разные пункты)
     For Each ctrl In p.Controls: ctrl.Delete: Next    ' а вот так пункты меню удаляются

     AddItemIntoPopup p, 1, 161, "Make_Netflow_Report", "Обработка результатов запроса"
     AddItemIntoPopup p, 4, -1, "SearchNumber", "Поиск номеров"
     Set NewMenu = p.Controls.Add(Type:=msoControlPopup)    ' подменю Additional Tools
     With NewMenu: .Caption = "&Additional Tools": .BeginGroup = True: End With
     AddItemIntoPopup NewMenu, 1, IIf(DemoMode, 232, 231), "ToggleDemoMode", IIf(DemoMode, "В&ыключить безопасный режим", "&Включить безопасный режим"), True, "Demo3"
     AddItemIntoPopup NewMenu, 1, 3, "Save_AddIn_Copy_in_Settings", "Сохранить копию программы в папке Settings", True
     AddItemIntoPopup NewMenu, 1, 749, "Save_AddIn_Copy", "Сохранить копию программы с указанием даты и времени"
     AddItemIntoPopup NewMenu, 1, 2936, "PrepareAddInForUpdate", "Создать файл обновления", False
     AddItemIntoPopup NewMenu, 1, 964, "Write_MainSettingsFile", "Перезаписать файл Main.ini", True
     AddItemIntoPopup NewMenu, 1, 161, "MakeSummaryPage", "Создание сводной таблицы", False
     AddItemIntoPopup NewMenu, 1, 3, "WriteDefaultRegistryValuesOnFirstRun", "Применить настройки по умолчанию", True
     AddItemIntoPopup p, 1, 1088, "SetIsAddinTrue", "Скрыть листы файла программы", True
     AddItemIntoPopup p, 1, 1087, "SetIsAddinFalse", "Отобразить листы файла программы", False
     AddItemIntoPopup p, 1, 1809, "Install_Update_Local", "Install_Update_Local", True
   AddItemIntoPopup p, 1, 0, "QQQ", "Тест", True
     p.ShowPopup
End Sub

Function AddItemIntoPopup(ByRef Comm_Bar, _
                 ByVal B_Type As Integer, _
                 ByVal B_Face As Integer, _
                 ByVal On_Action As String, _
                 ByVal B_Caption As String, _
                 Optional ByVal Begin_Group As Boolean = False, _
                 Optional Tag As String = "") As CommandBarControl
' добавляет контролы в меню Comm_Bar ' type=1 - это кнопка, type=4 - это комбобокс, 10 - popup
     Dim Add_Control
     On Error Resume Next
     Set Add_Control = Comm_Bar.Controls.Add(Type:=B_Type)
     With Add_Control
         If B_Face > 0 Then .FaceId = B_Face:
         .Tag = Tag:
         .OnAction = On_Action:
         .Caption = B_Caption:
         If Begin_Group Then .BeginGroup = True
         'If надо_сделать_пункт_недоступным Then .Enabled = False
     End With
End Function
[/vba]


Могу помочь в VB6, VBA
Alex77755@mail.ru
 
Ответить
СообщениеПопадался примерчик создания меню. Посмотрите может что пригодится:

[vba]
Код
Option Explicit

Dim p As CommandBar

Private Sub TextBox1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
     If Button = 2 Then СозданиеМеню_ЗаполнениеЭтогоМенюЭлементами_и_ЕгоОтображение
End Sub

'Создаём модуль, и вставляем в него такой код:

Sub СозданиеМеню_ЗаполнениеЭтогоМенюЭлементами_и_ЕгоОтображение()
Dim ctrl, NewMenu, DemoMode
On Error Resume Next: Application.CommandBars.Add "Моё контекстное меню", msoBarPopup
      
: Set p = Application.CommandBars("Моё контекстное меню")
     'p.Reset - почему-то не работает ' очистка меню от прежних пунктов (если каждый раз добавляем разные пункты)
     For Each ctrl In p.Controls: ctrl.Delete: Next    ' а вот так пункты меню удаляются

     AddItemIntoPopup p, 1, 161, "Make_Netflow_Report", "Обработка результатов запроса"
     AddItemIntoPopup p, 4, -1, "SearchNumber", "Поиск номеров"
     Set NewMenu = p.Controls.Add(Type:=msoControlPopup)    ' подменю Additional Tools
     With NewMenu: .Caption = "&Additional Tools": .BeginGroup = True: End With
     AddItemIntoPopup NewMenu, 1, IIf(DemoMode, 232, 231), "ToggleDemoMode", IIf(DemoMode, "В&ыключить безопасный режим", "&Включить безопасный режим"), True, "Demo3"
     AddItemIntoPopup NewMenu, 1, 3, "Save_AddIn_Copy_in_Settings", "Сохранить копию программы в папке Settings", True
     AddItemIntoPopup NewMenu, 1, 749, "Save_AddIn_Copy", "Сохранить копию программы с указанием даты и времени"
     AddItemIntoPopup NewMenu, 1, 2936, "PrepareAddInForUpdate", "Создать файл обновления", False
     AddItemIntoPopup NewMenu, 1, 964, "Write_MainSettingsFile", "Перезаписать файл Main.ini", True
     AddItemIntoPopup NewMenu, 1, 161, "MakeSummaryPage", "Создание сводной таблицы", False
     AddItemIntoPopup NewMenu, 1, 3, "WriteDefaultRegistryValuesOnFirstRun", "Применить настройки по умолчанию", True
     AddItemIntoPopup p, 1, 1088, "SetIsAddinTrue", "Скрыть листы файла программы", True
     AddItemIntoPopup p, 1, 1087, "SetIsAddinFalse", "Отобразить листы файла программы", False
     AddItemIntoPopup p, 1, 1809, "Install_Update_Local", "Install_Update_Local", True
   AddItemIntoPopup p, 1, 0, "QQQ", "Тест", True
     p.ShowPopup
End Sub

Function AddItemIntoPopup(ByRef Comm_Bar, _
                 ByVal B_Type As Integer, _
                 ByVal B_Face As Integer, _
                 ByVal On_Action As String, _
                 ByVal B_Caption As String, _
                 Optional ByVal Begin_Group As Boolean = False, _
                 Optional Tag As String = "") As CommandBarControl
' добавляет контролы в меню Comm_Bar ' type=1 - это кнопка, type=4 - это комбобокс, 10 - popup
     Dim Add_Control
     On Error Resume Next
     Set Add_Control = Comm_Bar.Controls.Add(Type:=B_Type)
     With Add_Control
         If B_Face > 0 Then .FaceId = B_Face:
         .Tag = Tag:
         .OnAction = On_Action:
         .Caption = B_Caption:
         If Begin_Group Then .BeginGroup = True
         'If надо_сделать_пункт_недоступным Then .Enabled = False
     End With
End Function
[/vba]

Автор - alex77755
Дата добавления - 08.12.2014 в 00:57
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Работа с правой кнопкой мыши (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!