VBA Как вы копируете и вставляете в пользовательскую форму, используя правый клик? - PullRequest
2 голосов
/ 04 февраля 2010

Я хочу, чтобы пользователи могли вставлять значения в текстовые поля в пользовательской форме в VBA. Вы можете просто использовать Ctrl-v, но не все знают, как это сделать.

Как включить копирование и вставку с помощью контекстного меню?

Ответы [ 2 ]

2 голосов
/ 30 августа 2013

Я понимаю, что это старый пост, но я считаю, что есть более эффективный метод.
Userform Контекстное меню код класса

http://www.andypope.info/vba/uf_contextualmenu.htm

Есть даже примеры таблиц Excel для примеров кода.

Модуль класса управляет построением контекстного меню, захватом щелчка правой кнопкой мыши в текстовых полях и фактическим вырезом. Копирование и вставка действий. Класс использует объект ActiveControl пользовательской формы. Код даже обрабатывает элементы управления внутри элементов управления контейнера, таких как Frames и Multipage.

Следующий код инициализации от пользовательской формы показывает, насколько просто определить и использовать объект класса. Вам нужно только объявить переменную для объекта, а затем установить ссылку для каждого текстового поля, которое вы хотите иметь возможности контекстного меню. Вы можете просматривать все элементы управления и автоматически ссылаться на каждое текстовое поле.

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

1 голос
/ 04 февраля 2010

Это может представлять интерес: http://word.mvps.org/faqs/userforms/AddRightClickMenu.htm

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...