Я хочу, чтобы пользователи могли вставлять значения в текстовые поля в пользовательской форме в VBA. Вы можете использовать Ctrl-v, но не все знают, как это сделать.
Как включить копирование и вставку с помощью контекстного меню?
Я хочу, чтобы пользователи могли вставлять значения в текстовые поля в пользовательской форме в VBA. Вы можете использовать Ctrl-v, но не все знают, как это сделать.
Как включить копирование и вставку с помощью контекстного меню?
Я понимаю, что это старый пост, но я считаю, что есть более эффективный метод.
Код класса контекстного меню пользовательской формы
http://www.andypope.info/vba/uf_contextualmenu.htm
Есть даже образцы электронных таблиц Excel для примеров кода.
Модуль класса обрабатывает построение контекстного меню, захват правой кнопкой мыши в текстовых полях и фактическое вырезание. Действия копирования и вставки. Класс использует объект ActiveControl пользовательской формы. Код даже обрабатывает элементы управления внутри элементов управления контейнера, таких как фреймы и многостраничные.
Следующий код инициализации из пользовательской формы показывает, насколько просто определить и использовать объект класса. Вам нужно только объявить переменную для объекта, а затем установить ссылку для каждого текстового поля, в котором вы хотите иметь возможности контекстного меню. Вы можете просмотреть все элементы управления и автоматически ссылаться на каждое текстовое поле.
Private m_colContextMenus As Collection
Private Sub UserForm_Initialize()
Dim clsContextMenu As CTextBox_ContextMenu
Dim cTRL as Control
Set m_colContextMenus = New Collection
For Each cTRL In Me.Controls
Select Case TypeName(cTRL)
Case "TextBox"
'MsgBox cTRL.Name & ": " & Me.Controls(cTRL.Name).Value
Set clsContextMenu = New CTextBox_ContextMenu
With clsContextMenu
Set .TBox = Me.Controls(cTRL.Name)
Set .Parent = Me
End With
m_colContextMenus.Add clsContextMenu, CStr(m_colContextMenus.Count + 1)
Case Else
'MsgBox TypeName(cTRL) & ": " & cTRL.Name
End Select
Next
End Sub
Загрузить пример книги, содержащей файлы .xls и .xlsm
Это может представлять интерес: http://word.mvps.org/faqs/userforms/AddRightClickMenu.htm