

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で質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) capeofdragonと申します Excel2016を使っておりまして 半角又は全角の任意文字列が 2 2022/10/31 13:51
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- その他(データベース) Accessのクエリで1フィールドの抽出条件設定をNullでなく全角半角含む空白のみの文字列でない文 1 2023/04/24 15:20
- その他(Microsoft Office) WordやExcelで英数字のみ半角または全角にしたい 6 2022/08/03 08:18
- Access(アクセス) Accessのテキストボックスの入力文字制限 1 2023/01/18 20:43
- Excel(エクセル) エクセルの数式で教えてください。 3 2022/10/25 10:52
- Visual Basic(VBA) エクセルの数式で教えてください。 1 2023/07/31 15:49
- その他(プログラミング・Web制作) 2つのテキストファイルを比べて文字列を特定する方法を教えて下さい 5 2022/05/01 15:22
- Excel(エクセル) PowerQueryに詳しい方教えてください(Office365) 1 2022/07/24 21:11
- Visual Basic(VBA) 指定列最終行までのスペースを改行するVBAについて 2 2022/06/01 19:50
このQ&Aを見た人はこんなQ&Aも見ています
-
[VBScript]バイト長の判定
Visual Basic(VBA)
-
VBで、String型のデータが、全角か、半角かを判断する関数は・・・
Visual Basic(VBA)
-
VBScriptで半角カナと半角英数字を判断する方法
その他(プログラミング・Web制作)
-
-
4
ある文字列が全て数字であるかどうかをチェックするには?
Visual Basic(VBA)
-
5
VBScript から JavaScript を呼び出すには
Visual Basic(VBA)
-
6
VBScriptでMsgBoxのYesNoボックスを自動的にクリックしたい
その他(プログラミング・Web制作)
-
7
VBScript 全角英数記号→半角英数記号に
Microsoft ASP
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel関数「COUNTIF」で”文字”...
-
全角括弧と全角読点の間隔を狭...
-
文字の入力で横バー上段、中断...
-
エクセルのCOUNTIFが正しくカウ...
-
全角英数文字が嫌われる理由を...
-
メッセージボックスで1025文字...
-
Replace関数は文字数の制限ある...
-
VBAで英数字入力チェックしたい。
-
半角記号、全角記号を含む正規...
-
VBScriptである文字列に半角文...
-
エクセルでデータを30バイト...
-
全角半角変換 C++/CLI
-
PHPでMySQLに入力した半角スペ...
-
1文字のStrConv fromUnicode
-
2つ以上の連続する空白文字を除去
-
文字列中の両丸括弧を取り除くV...
-
日本語(2byte文字)の判別方法...
-
@ezweb.ne.jpについて教えて下...
-
入力データ「英数字」と「アン...
-
秀丸マクロについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
文字の入力で横バー上段、中断...
-
メッセージボックスで1025文字...
-
全角括弧と全角読点の間隔を狭...
-
エクセルのCOUNTIFが正しくカウ...
-
Excel関数「COUNTIF」で”文字”...
-
VBAで英数字入力チェックしたい。
-
XMLのタグ名の禁則文字
-
全角英数文字が嫌われる理由を...
-
半角記号、全角記号を含む正規...
-
2つ以上の連続する空白文字を除去
-
Replace関数は文字数の制限ある...
-
記号は半角と全角どちらがよい...
-
エクセルでの漢字、カタカナ、...
-
特定の文字を簡単な操作で半角...
-
SEO タイトルに「&」を使用
-
パソコンで全角、半角文字の切...
-
文字列中の両丸括弧を取り除くV...
-
Excel2002 一桁数字だけ全角に置換
-
IT企業の技術屋にとって全角英...
-
Phonetic関数を利用して文章中...
おすすめ情報