電子書籍の厳選無料作品が豊富!

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

ご存知のかたがおりましたら教えてください。


Private Sub text1_Change()
SendKeys "{tab}", False 'text2へ移動する
End Sub

A 回答 (3件)

こんにちは。

maruru01です。
text2のGotFocusイベントに次のように書きます。

Private Sub text2_GotFocus()

  With text2
    .SelStart = 0
    .SelLength = Len(.Text)
  End With

End Sub

ただし、この場合text2にいつフォーカスがあったても全選択になってしまいますので、text1から移動した時にTrueになるようなフラグを作って判別するといいと思います。
では。
    • good
    • 0
この回答へのお礼

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

お礼日時:2001/10/17 10:39

お疲れ様です。


ごめんなさい。先ほどだとText1になっていたのでText2の間違いです。

Option Explicit

Private Sub Text2_GotFocus()

  With Text2

    .SelStart = 0         '// 選択開始位置
    .SelLength = Len(Text2.Text) '// 選択する長さ

  End With

End Sub

です。
    • good
    • 0
この回答へのお礼

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

お礼日時:2001/10/17 10:38

お疲れ様です。


こんな感じでどうでしょうか

Option Explicit

Private Sub Text1_GotFocus()

  With Text1

    .SelStart = 0         '// 選択開始位置
    .SelLength = Len(Text1.Text) '// 選択する長さ

  End With

End Sub

で反転状態になると思います。

間違っていたらごめんなさい。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!