人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

VBScriptで全角文字と半角文字を判別する方法を教えてください

●質問者: noface
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:VBScript
○ 状態 :終了
└ 回答数 : 5/5件

▽最新の回答へ

1 ● きゃづみぃ
●5ポイント

http://www.tohoho-web.com/lng/199912/99120238.htm

こちらに記載されている文字数とバイト数を比較してという方法は いかがでしょうか?

◎質問者からの返答

WScript.echo LenB("a")

でわかるかと思いますが、UNICODEのためか半角文字も2byte扱いになるようで、ご紹介の方法は有効ではないようです。


2 ● K_SUKE
●5ポイント

こちらのサイトが参考になると思います

http://www.tohoho-web.com/lng/199912/99120238.htm

◎質問者からの返答

回答1と同様です


3 ● llusall
●50ポイント ベストアンサー

Option Explicit

Dim moji

moji = "a"

If Len(moji) = LenByte(moji) Then

   MsgBox "ぜんぶ半角"

Else

    MsgBox "全角がまじってますな"

End If

moji = "あ"

If Len(moji) = LenByte(moji) Then

    MsgBox "ぜんぶ半角"

Else

    MsgBox "全角がまじってますな"

End If


Function LenByte(ByVal s)

    Dim c, i, k

    c = 0

    For i = 0 To Len(s) - 1

        k = Mid(s, i + 1, 1)

        If (Asc(k) And &HFF00) = 0 Then

            c = c + 1

        Else

            c = c + 2

        End If

    Next

    LenByte = c

End Function

◎質問者からの返答

希望の動作ができました。有り難うございます。

追加質問になってしまうのですが、

(Asc(k) And &HFF00) = 0

の式はどのような条件を示しているのでしょうか


4 ● きゃづみぃ
●25ポイント

http://www.res-system.com/weblog/item/241/

こちらのやり方でできます。

◎質問者からの返答

こちらでも希望の動作ができました

ありがとうございます


5 ● llusall
●30ポイント

VBScript でシフト JIS の文字列のバイト数を数える (unibon)

http://www.geocities.co.jp/SiliconValley/4334/unibon/asp/len.htm...

そういえば以前、unibonさんのところから頂いたロジックでした。

このことについてunibonさんは次のように解説しています。

http://72.14.235.104/search?q=cache:rUGWWv7pWYoJ:tryasp.winscom....



参考になりますでしょうか?

◎質問者からの返答

勉強が足りず完全に理解できておりませんが、

いただいたページを元に調べてみようと思います

ありがとうございました

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ