2017-12-06 34 views
-3

私はVBAでいくつかのユーザーフォームを持っています。ユーザーが最初にテキストボックスをクリック(フォーカスを変更)したときに内部のテキストが選択されるという機能を追加したいとします。私は、あなたが最初にURLバーをクリックすると、いくつかの会計アプリケーションとあなたのWebブラウザでこの機能を見てきました。その基本的な意味は、ユーザーがすぐにテキストフィールドを上書きできるようにすることです。私がVBAでどうやって同じことをするのだろうと思っていましたが、私はまだ初心者です。私はいくつかのサブトリガを見ましたが(正しい用語は分かりませんが)、見たことはありません。テキストボックスをクリックしたときに見つかったが、フィールドをクリックするたびにテキストが常に選択されないようにしたい。おかげさまで Excel VBA Userformフォーカス変更トリガーの場合

+1

これまでに行ったコードを投稿することはできますか? – PrestonM

+0

申し訳ありませんが、私はこれを始める方法を知らない、私はSetfocusコマンドを参照してください、しかし、IsItFocusedはありません。私はtextbox1のDblClickとMouseDownプライベートサブを見るが、FocusedやSingleClickのサブタイトルは見えない。任意の提案は素晴らしいだろう –

答えて

0

は、あなたのテキストボックスのイベントに

Dim checked As Boolean 

Private Sub TextBox1_Change() 
    If checked = True Then 
     TextBox1.SelStart = 0 
     TextBox1.SelLength = 0 
    checked = True 
    End If 
End Sub 


Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) 
    checked = False 
End Sub 

Private Sub TextBox1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) 
    If checked = False Then 
     TextBox1.SelStart = 0 
     TextBox1.SelLength = Len(TextBox1) 
     checked = True 
    End If 
End Sub 

これを入れて、あなたのテキストボックスをクリックしたら、それはあなたがテキストをクリックすると、それが変更されたテキストにあなたをunhightlightとできるようになります、テキストを強調されますそのテキストボックスの外側をクリックし、その中をクリックすると、テキスト全体がハイライトされます。

+0

かなり良い、lolzは2行だけだったと信じることはできません。ただし、ダブルクリックすると選択解除されません。テキストボックスの最後の文字をダブルクリックすると選択解除されますが、中央をダブルクリックすると選択解除されません。そのための回避策はありますか? –

+0

ちょうど矢印キーを使用してテキスト内の欲望の場所に移動します。 –

+0

@pokemin_Man ikrは、あなたと私には意味がありますが、他の人には意味をなさないでしょう。最初のマウスクリックよりも何かを働かせるために他の人に叫んでしまうことになります。私はExcelがこれらのちょっとしたことをすることができるかどうかも知りません。ありがとう。 –

関連する問題