投稿者 るきお  (社会人) 投稿日時 2009/8/21 22:24:21
こんにちは。話を戻してしまいますが、
テキストボックスに数字と小数点のみ入力できるようにするコードは次のようになります。

Private Sub Text1_KeyPress(KeyAscii As Integer)

    Dim Letter As String
    Letter = Chr(KeyAscii)
    
    If Not (Letter Like "[0-9.]"Then
        KeyAscii = 0
    End If
    
End Sub


ただし、これだと .... や 1.2.3 など全体としておかしなものも入力できてしまいます。
またコピー&貼り付けを使えばなんでも入れられてしまいます。

ですでの、私は同じことをやりたいとき昔は
KeyPressイベントで頑張って .... や 1.2.3 となる入力を拒否するロジックを実装し、クラスとして共通で使っていました。WithEventsを使用すれば、クラス側に記述したロジックが共通のイベントとして呼ばれるので一度頑張って実装すれば使いまわすことが出来ます。
同じようにしてChangeイベントも実装しコピー&貼り付けも防ぎました。
一度作ってしまえば便利なので何度も利用しましたが、

これから作るのであれば、今後VB6の開発がそう増えるとも思えないので、
仕様を見直して、入力時はなんでも入力できるが[OK]ボタンや、[登録]ボタンなどをクリックしたタイミングで
チェックロジックを実行して、おかしなものが入力されている場合ユーザーに訂正を促すとするのがベターだと思います。(仕様が見直せればの話ですが)