投稿者 ワシズ  (社会人) 投稿日時 2009/8/21 01:32:49
?-?さん、流れ者さん、るしぇさん

多くの方のたくさんのアドバイス、感謝しております。

るしぇさんのアドバイスに基づき

   '「1-9」[.]以外の入力はじき、5桁以上は入力不可 
    If Not IsNumeric(Chr$(KeyAscii)) And KeyAscii <> vbKeyBack And KeyAscii <> vbKeyDelete Or _
    (Len(Text1.Text) >= 4 And KeyAscii <> vbKeyBack And KeyAscii <> vbKeyDelete) Then
        KeyAscii = 0
    Else
        '全角を半角に変換する 
        KeyAscii = Asc(StrConv(Chr$(KeyAscii), vbNarrow))
    End If
End Sub


で実行したところ、確かに小数点はいりました。
これには正直驚きです。
デバッグでステップ実行をしていくと、小数点が入っているにもかかわらず、
vbKeyDelete「46」が表示されてます。

いま、ASCIIコード表をもとに、16進法の小数点「2E」を関数電卓で10進法に変換したところ、
46という数字が出てきました。
ここからきてるのでしょうかね?