

VBScriptである文字列に半角文字が含まれているかどうか調べる方法について、ネットで調べてソースコードを拾ってきたのですが...
IFの条件でなぜ全角、半角が判断できるか分かりません。教えてください。お願いします。
iLen = Len(str1)
iLenByte = 0
'--- 文字列のバイト数
For i = 2 To iLen
strField = Mid(str1, i, 1)
iCode = Asc(strField)
If iCode > 0 Then
'--- 半角文字
Else
'--- 全角文字
End If
Next
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
半角文字が含まれているかどうかだけだったら、
If LenB(str) = 2*Len(str) Then
'半角文字は含まれていない
Else
'半角文字が含まれている
End If
で判断できます。
No.1
- 回答日時:
ASC関数が返す文字コードはSJIS(VbScriptのマニュアルより)
日本語(全角)は、SJISだと第1バイトが必ず80H(16進…128)より大きいので、符号付16Bit整数(全角1文字=2バイト=16Bit)としてみると必ず負になる
逆に半角(特にアルファベット,数字など)は80Hより小さいので、符号付8Bit整数としてみても符号付16Bit整数に変換(拡張)してみても正になる
だから、正負で半角・全角が判断できる
注)説明のため、80H以上が全てSJISのような書き方になっていますが、SJISとして使用される(定義される)文字コードの範囲はもっと限定されます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessの文字数を調べたい
-
文字の入力で横バー上段、中断...
-
全角括弧と全角読点の間隔を狭...
-
エクセルのCOUNTIFが正しくカウ...
-
半角記号、全角記号を含む正規...
-
半角スペース の文字化け...
-
メッセージボックスで1025文字...
-
VBのソース検索で、コメントア...
-
全角半角あわせて3文字
-
全角英数文字が嫌われる理由を...
-
Phonetic関数を利用して文章中...
-
VBAのコマンドボタンの文字列の...
-
文字化け変換方法
-
エスケープ文字の復帰(¥r)と...
-
テキストボックス行の桁数を制...
-
texのchapterが改行される
-
コンボボックスの項目中に改行を
-
【PHP】mb_convert_encoding...
-
グレープシティのSPREAD...
-
JavaMail,本文中の改行について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PPT ファイルの文字カウント=...
-
文字の入力で横バー上段、中断...
-
エクセルのCOUNTIFが正しくカウ...
-
メッセージボックスで1025文字...
-
Excel関数「COUNTIF」で”文字”...
-
全角括弧と全角読点の間隔を狭...
-
Accessの文字数を調べたい
-
VBAで英数字入力チェックしたい。
-
XMLのタグ名の禁則文字
-
エクセルでの漢字、カタカナ、...
-
全角英数文字が嫌われる理由を...
-
Replace関数は文字数の制限ある...
-
なぜインターネットでは半角カ...
-
=code(" ") で値が160となる文...
-
記号は半角と全角どちらがよい...
-
VBのソース検索で、コメントア...
-
マクロできる方教えてください...
-
半角文字と全角文字の判別の仕方
-
全角半角混在の文字列から○文字...
-
ショートメールの文字数
おすすめ情報