Page 40 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼倍角文字の桁数 山プ〜 02/9/21(土) 20:34 ┗Re:倍角文字の桁数 よろずや 02/9/21(土) 22:04 ┗Re:倍角文字の桁数 山プ〜 02/9/24(火) 16:44 ─────────────────────────────────────── ■題名 : 倍角文字の桁数 ■名前 : 山プ〜 ■日付 : 02/9/21(土) 20:34 -------------------------------------------------------------------------
入力項目の桁数チェックを行っているのですが、 半角文字と倍角文字でバイト数は違うのに Len関数を使ってみると文字数で判断している ようでうまくいきません。いい方法はないでしょうか。 「アアア」はLen関数で”3”となるが、 「あああ」もLen関数で”3”となってしまう。 (本当は6バイト使っているので”6”となってほしい) よろしくお願いします。 |
▼山プ〜 さん: >入力項目の桁数チェックを行っているのですが、 >半角文字と倍角文字でバイト数は違うのに >Len関数を使ってみると文字数で判断している >ようでうまくいきません。いい方法はないでしょうか。 > >「アアア」はLen関数で”3”となるが、 >「あああ」もLen関数で”3”となってしまう。 >(本当は6バイト使っているので”6”となってほしい) 「倍角文字」というのは別の意味で使います。 ・・・・縦倍角、横倍角、四倍角 この場合は「全角文字」といいます。 Len関数は文字数を返す関数です。バイト数ではありません。 バイト数を返すのはLenB関数です。 でも、VBAでは文字コードはUnicodeが使われています。 Unicodeでは、半角でも全角でも1文字は2バイトです。 半角は1バイトというのは、ANSIコードの場合ですね。 ですから、そういう文字コードでの長さを得るためには、変換する必要があります。 StrConv関数を使って変換します。 LenB(StrConv("あああ", vbFromUnicode)) |
御回答ありがとうございました。 早速ためしてみます。 |