- ベストアンサー
文字をアクティブにする方法
テキストボックスを2つ作成(text1,text2)し、 text2にはあらかじめ文字を入れておきます。 text1からtext2へTabキーで移動したときに、 text2に入力されている文字がアクティブ(反転というのでしょうか) にすることはできますか? つまりアクティブになっていれば、文字の書き換えをしたいときに、 「BackSpace」キーなどで削除しなくても、 そのまま文字を打てば上書きされるようにしたいのです。 ご存知のかたがおりましたら教えてください。 Private Sub text1_Change() SendKeys "{tab}", False 'text2へ移動する End Sub
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。maruru01です。 text2のGotFocusイベントに次のように書きます。 Private Sub text2_GotFocus() With text2 .SelStart = 0 .SelLength = Len(.Text) End With End Sub ただし、この場合text2にいつフォーカスがあったても全選択になってしまいますので、text1から移動した時にTrueになるようなフラグを作って判別するといいと思います。 では。
その他の回答 (2)
- josyo_m
- ベストアンサー率63% (28/44)
お疲れ様です。 ごめんなさい。先ほどだとText1になっていたのでText2の間違いです。 Option Explicit Private Sub Text2_GotFocus() With Text2 .SelStart = 0 '// 選択開始位置 .SelLength = Len(Text2.Text) '// 選択する長さ End With End Sub です。
お礼
すばやい解答ありがとうございました。 アドバイス通りにやったらうまくいきました。m(._.)m
- josyo_m
- ベストアンサー率63% (28/44)
お疲れ様です。 こんな感じでどうでしょうか Option Explicit Private Sub Text1_GotFocus() With Text1 .SelStart = 0 '// 選択開始位置 .SelLength = Len(Text1.Text) '// 選択する長さ End With End Sub で反転状態になると思います。 間違っていたらごめんなさい。
お礼
フラグのアドバイスまでありがとうございました。 実行したらうまくいきました。