[リストへもどる]
一括表示

投稿時間:2004/05/16(Sun) 21:14
投稿者名:やまめ
URL :
タイトル:
文字列のチェック(全角/半角)
テキストボックスへの入力について、
半角文字列のみ受け付けるようにしたいのですが、
どのようにすればよいのでしょうか?
文字列の種別(全角/半角)をチェックするような関数はあるのでしょうか?

どなたか教えてください。よろしくお願いします。

投稿時間:2004/05/16(Sun) 21:31
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: 文字列のチェック(全角/半角)
> 文字列の種別(全角/半角)をチェックするような関数はあるのでしょうか?
> どなたか教えてください。よろしくお願いします。

ここの逆引きヘルプを見て下さい。

投稿時間:2004/05/16(Sun) 21:54
投稿者名:やまめ
URL :
タイトル:
Re^2: 文字列のチェック(全角/半角)
> ここの逆引きヘルプを見て下さい。

StrConv関数を利用するのでしょうか?

txtInji(ctrNo) = StrConv(txtInji(ctrNo).Text, vbNarrow)

としてみましたが、これだと"ABCD"→"ABCD"となりますが、
"あいうえお"→"あいうえお"のままとなってしまいました。

初歩的な質問で恐縮です・・・。

投稿時間:2004/05/16(Sun) 21:57
投稿者名:やまめ
URL :
タイトル:
補足
>
> としてみましたが、これだと"ABCD"→"ABCD"となりますが、
> "あいうえお"→"あいうえお"のままとなってしまいました。
>
半角英数字のみを受け付け、上記のように”あいうえお”やカタカナの場合は、
エラー表示したいです。

投稿時間:2004/05/17(Mon) 08:17
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: 補足
VB簡易リファレンス の Asc()関数
文字列処理関係 の 全角文字を半角文字に変換 半角のカタカナだけを全角に変換する
文字列の長さを得る の ANSI(旧Basic・シフトJIS)流文字列長を得る
等はご覧になられましたか?それらを見れば半角か全角かの判断ができます。
それを、テキストボックスのChangeイベントでチェックして下さい。

    Debug.Print Asc("A")
    Debug.Print Asc("あ")
    Debug.Print LenB(StrConv("A", vbFromUnicode))
    Debug.Print LenB(StrConv("あ", vbFromUnicode))

投稿時間:2004/05/17(Mon) 09:36
投稿者名:黒影
Eメール:
URL :
タイトル:
Re: 補足
> 半角英数字のみを受け付け、上記のように”あいうえお”やカタカナの場合は、
> エラー表示したいです。

半角英数字のみを受け付けるのであれば、
テキストボックスのプロパティで、
IMEModeを「オフ固定」にすれば可能ですが...

このチェックのコードを自作したいというのであれば、
回答にはなりませんね...(^^;)

投稿時間:2004/05/17(Mon) 11:07
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^2: 補足
> IMEModeを「オフ固定」にすれば可能ですが...

ペーストした場合や半角カタカナを有効にしたい場合は、個別にチェックする必要があるのでは。

投稿時間:2004/05/17(Mon) 12:46
投稿者名:黒影
Eメール:
URL :
タイトル:
Re^3: 補足
> ペーストした場合や半角カタカナを有効にしたい場合は、個別にチェックする必要があるのでは。

あ〜そうですね!
そこまで頭がまわりませんでした...f^^;)

では、こんな感じでどうでしょう?(長くなってしまったので改行してます)

If LenB(StrConv(Mid(Text1.Text, 1, Len(Text1.Text)), vbFromUnicode)) <> _
   Len(Text1.Text)  Then
    MsgBox "全角文字があります。"
End If

投稿時間:2004/05/18(Tue) 10:45
投稿者名:やまめ
URL :
タイトル:
ありがとうございました
みなさん、ありがとうございました。

テキストボックスのプロパティで、対応しようと思います。

知っていればなんでもないことなのでしょうが、
探しきれず、お恥ずかしいかぎりです・・・。