• ベストアンサー

文字をアクティブにする方法

テキストボックスを2つ作成(text1,text2)し、 text2にはあらかじめ文字を入れておきます。 text1からtext2へTabキーで移動したときに、 text2に入力されている文字がアクティブ(反転というのでしょうか) にすることはできますか? つまりアクティブになっていれば、文字の書き換えをしたいときに、 「BackSpace」キーなどで削除しなくても、 そのまま文字を打てば上書きされるようにしたいのです。 ご存知のかたがおりましたら教えてください。 Private Sub text1_Change() SendKeys "{tab}", False 'text2へ移動する End Sub

質問者が選んだベストアンサー

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.3

こんにちは。maruru01です。 text2のGotFocusイベントに次のように書きます。 Private Sub text2_GotFocus()   With text2     .SelStart = 0     .SelLength = Len(.Text)   End With End Sub ただし、この場合text2にいつフォーカスがあったても全選択になってしまいますので、text1から移動した時にTrueになるようなフラグを作って判別するといいと思います。 では。

mashiro78
質問者

お礼

フラグのアドバイスまでありがとうございました。 実行したらうまくいきました。

その他の回答 (2)

  • josyo_m
  • ベストアンサー率63% (28/44)
回答No.2

お疲れ様です。 ごめんなさい。先ほどだとText1になっていたのでText2の間違いです。 Option Explicit Private Sub Text2_GotFocus()   With Text2     .SelStart = 0         '// 選択開始位置     .SelLength = Len(Text2.Text) '// 選択する長さ   End With End Sub です。

mashiro78
質問者

お礼

すばやい解答ありがとうございました。 アドバイス通りにやったらうまくいきました。m(._.)m

  • josyo_m
  • ベストアンサー率63% (28/44)
回答No.1

お疲れ様です。 こんな感じでどうでしょうか Option Explicit Private Sub Text1_GotFocus()   With Text1     .SelStart = 0         '// 選択開始位置     .SelLength = Len(Text1.Text) '// 選択する長さ   End With End Sub で反転状態になると思います。 間違っていたらごめんなさい。

関連するQ&A

専門家に質問してみよう