[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『テキストボックスへコピペしたい。』(ユーザーフォーム初心者)
ユーザーフォームでTextBox1を作成しています。
TextBox1へコピペしようとしたら入力できません。
何か設定方法があるのでしょうか?
宜しくお願い致します。
< 使用 Excel:Excel2013、使用 OS:Windows8 >
横から失礼します。
手動でコピペしてるのでしたら、 TextBoxのEnabledがFalseになっている可能性があります。 (OK) 2019/12/10(火) 08:29
(jk) 2019/12/10(火) 23:25
(ユーザーフォーム初心者) 2019/12/11(水) 00:41
>TextBox上にマウス右クリックでコピー」&「貼り付け」を出来るようにしたいです。
TextBox上にマウスカーソルがある状態? TextBoxにフォーカスがある状態? (OK) 2019/12/11(水) 07:23
TextBoxにフォーカスがなくても 右クリックでTextBoxにフォーカスが当たりますね。 失礼しました。 (OK) 2019/12/11(水) 07:26
参考過去ログです。
[[20110830165404]] 『テキストボックスでの右クリック』(ぺんぺん)
古い情報ですので、2013ではもっと簡単になってるかもしれませんが、 調べてません。 (OK) 2019/12/11(水) 07:30
MouseUpイベントを使用したコード紹介のHPです。 http://fanblogs.jp/vbahtmlmemo/archive/2/0
手動でCtrl+Cをやるか、SendKeysでやるか、という 違いですが。 (OK) 2019/12/11(水) 07:43
記事中のコードを組み込んでテスト(Windows10 Excel2007) しましたが、右クリックでメニューは出てきますが、メニューを選択しても コピーとか貼り付けができてない ですね。 原因が分かったらレスします。 ※いまからレスができなくなります。しかも今日は飲み会で夜もレス できません・・・。 (OK) 2019/12/11(水) 07:53
メニュー実行しても、それぞれのメニューから OnActionで紐づけたコードが呼び出されてないようです。 (OK) 2019/12/11(水) 07:58
私がばかでした。
呼び出すコード R_Copy R_Paste R_Cut R_SelAl
を標準モジュールに記述 したらきちんと実行してくれました。 (OK) 2019/12/11(水) 09:24
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As Long) As Long Private Declare Function CreatePopupMenu& Lib "user32" () Private Declare Function TrackPopupMenu& Lib "user32" (ByVal hMenu&, ByVal wFlags&, ByVal X&, ByVal Y&, ByVal nReserved&, ByVal hwnd&, lpReserved As Any) Private Declare Function DestroyMenu& Lib "user32" (ByVal hMenu&) Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long Private Declare Function AppendMenu& Lib "user32" Alias "AppendMenuA" (ByVal hMenu&, ByVal wFlags&, ByVal wIDNewItem&, ByVal lpNewItem As Any)
Private Const MF_STRING = &H0& Private Const TPM_LEFTALIGN = &H0& Private Const TPM_RETURNCMD = &H100&
Private Type POINTAPI X As Long Y As Long End Type
Private Sub TextBox1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) Dim hMenu As Long Dim PT As POINTAPI Dim ret As Long
If Button = 2 Then hMenu = CreatePopupMenu() AppendMenu hMenu, MF_STRING, 1&, "コピー" AppendMenu hMenu, MF_STRING, 2&, "貼り付け" AppendMenu hMenu, MF_STRING, 3&, "全てを選択" GetCursorPos PT ret = TrackPopupMenu(hMenu, TPM_LEFTALIGN Or TPM_RETURNCMD, PT.X - 8, PT.Y - 8, 0, Application.hwnd, 0&) DestroyMenu hMenu
Select Case ret Case 1 With CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") .SetText TextBox1.SelText .PutInClipboard End With Case 2 With CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") .GetFromClipboard TextBox1.SelText = Replace(.GetText, """", "") End With Case 3 With TextBox1 .SelStart = 0 .SelLength = Len(.Text) End With End Select End If End Sub
サンプルなので1つのテキストボックス用に書いていますが、複数あるのであれば、関数化するとか検討してみてください。
(???) 2019/12/11(水) 10:47
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.