2

ユーザーがVBAのuserFormのTextBoxに値を貼り付けられるようにしたいと思います。Ctrl-vは問題なく使用できますが、誰もがその方法を知っているわけではありません。

右クリックメニューを使用してコピーと貼り付けを有効にするにはどうすればよいですか?

4

2 に答える 2

3

これは古い投稿だと思いますが、もっと効率的な方法があると思います。
ユーザーフォーム コンテキスト メニューのクラス コード

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 ファイルの両方を含むサンプル ワークブックをダウンロードする

于 2013-08-30T19:47:40.780 に答える