XXXX-XX-XX-Xというように4文字入力したら"-"を自動挿入、さらに
2文字入力したらまた"-"挿入するようにしたいのですが
SelStartプロパティやSelTextプロパティをしようすればできる
ようなことが書いてあったのですがいまいちわかりません。。
宜しくお願いします。
環境はVB6.0です
SelStart,SelText云々はともかく、
ChangeイベントでTextプロパティを編集すれば可能ですが、
TextBoxの話なら、MaskEditコントロール使ったほうが簡単では?
Sayさん回答ありがとうございます。
上記の質問内容に書いていませんでしたが入力する所は
スプレッドです。
スプレッドの場合もMaskEditコントロールは使用できますか?
普通のテキストの場合だとMaskEditコントロールで簡単に
できますね。いろいろ勉強になります!ありがとうございます!
スプレッドの場合だと入力してENTER押下時にしかchangeイベントが
発生しなかったのでKeyDownイベントに
If .ActiveRow = 1 Then
Ret = .GetText(.ActiveCol, .ActiveRow, Kenshu)
If Len(A) = 4 Then
A= Replace(A, A, A & "-")
.SetText 1, 1, Kenshu
End If
End If
と書いてみたのですが"-"挿入時に文字列が選択状態になってしまい
続けて入力すると4桁の文字列がクリアされてしまいます。
選択状態にしないで続けて次の数字を入力させるにはどうしたらよいでしょうか。
Ret = .GetText(.ActiveCol, .ActiveRow, A)
If Len(A) = 4 Then
.SelStart = 4
.SelLength = 4
.SelText = "-"
End If
と記述すると4桁目と5桁目の間に"-"が挿入できるようになりましたが
今度はバックスペースで削除していくと4行目以前の文字が削除されなくなり
ます。
バックスペースのときは、なにもしなければ良いのでは?
If KeyCode = vbKeyBack Then Exit Sub
そうですね、バックスペースのとき"なにもしない"と
判定を追加したらうまくいきました。
LESIAさんありがとうございました!
ツイート | ![]() |