過去ログ

                                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”となってほしい)

よろしくお願いします。

 ───────────────────────────────────────  ■題名 : Re:倍角文字の桁数  ■名前 : よろずや  ■日付 : 02/9/21(土) 22:04  -------------------------------------------------------------------------
   ▼山プ〜 さん:
>入力項目の桁数チェックを行っているのですが、
>半角文字と倍角文字でバイト数は違うのに
>Len関数を使ってみると文字数で判断している
>ようでうまくいきません。いい方法はないでしょうか。
>
>「アアア」はLen関数で”3”となるが、
>「あああ」もLen関数で”3”となってしまう。
>(本当は6バイト使っているので”6”となってほしい)

「倍角文字」というのは別の意味で使います。
 ・・・・縦倍角、横倍角、四倍角
この場合は「全角文字」といいます。

Len関数は文字数を返す関数です。バイト数ではありません。
バイト数を返すのはLenB関数です。
でも、VBAでは文字コードはUnicodeが使われています。
Unicodeでは、半角でも全角でも1文字は2バイトです。
半角は1バイトというのは、ANSIコードの場合ですね。
ですから、そういう文字コードでの長さを得るためには、変換する必要があります。
StrConv関数を使って変換します。

LenB(StrConv("あああ", vbFromUnicode))

 ───────────────────────────────────────  ■題名 : Re:倍角文字の桁数  ■名前 : 山プ〜  ■日付 : 02/9/24(火) 16:44  -------------------------------------------------------------------------
   御回答ありがとうございました。
早速ためしてみます。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 40