指定位置に"-"を挿入するには?

解決


サキ  2005-04-24 11:06:45  No: 121220

XXXX-XX-XX-Xというように4文字入力したら"-"を自動挿入、さらに
2文字入力したらまた"-"挿入するようにしたいのですが
SelStartプロパティやSelTextプロパティをしようすればできる
ようなことが書いてあったのですがいまいちわかりません。。

宜しくお願いします。
環境はVB6.0です


Say  2005-04-24 16:49:20  No: 121221

SelStart,SelText云々はともかく、
ChangeイベントでTextプロパティを編集すれば可能ですが、
TextBoxの話なら、MaskEditコントロール使ったほうが簡単では?


サキ  2005-04-24 17:21:24  No: 121222

Sayさん回答ありがとうございます。
上記の質問内容に書いていませんでしたが入力する所は
スプレッドです。
スプレッドの場合もMaskEditコントロールは使用できますか?
普通のテキストの場合だとMaskEditコントロールで簡単に
できますね。いろいろ勉強になります!ありがとうございます!


サキ  2005-04-24 19:07:09  No: 121223

スプレッドの場合だと入力して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桁の文字列がクリアされてしまいます。

選択状態にしないで続けて次の数字を入力させるにはどうしたらよいでしょうか。


サキ  2005-04-25 10:48:45  No: 121224

Ret = .GetText(.ActiveCol, .ActiveRow, A)
If Len(A) = 4 Then
    .SelStart = 4
    .SelLength = 4
    .SelText = "-"
End If

と記述すると4桁目と5桁目の間に"-"が挿入できるようになりましたが
今度はバックスペースで削除していくと4行目以前の文字が削除されなくなり
ます。


LESIA  2005-04-25 18:16:04  No: 121225

バックスペースのときは、なにもしなければ良いのでは?
If KeyCode = vbKeyBack Then Exit Sub


サキ  2005-04-25 18:59:29  No: 121226

そうですね、バックスペースのとき"なにもしない"と
判定を追加したらうまくいきました。

LESIAさんありがとうございました!


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加