投稿日 | : 2004/12/21(Tue) 08:45 |
投稿者 | : LESIA |
Eメール | : |
URL | : |
タイトル | : Re^3: 数字列の長さについて |
> 返事ありがとうございます。
>
> LenB(StrConv("20040501", vbFromUnicode))の
> "20040501"は、実はText1(テキストボックス)に入力したもので、
> 実際は、LenB(StrConv(Text1, vbFromUnicode))になるのですが、
> この場合、
> Len(StrConv(Text1, vbFromUnicode)) = 4
> LenB(StrConv(Text1, vbFromUnicode)) = 8
> になります。
> テキストボックスに入力すると、何か違うのでしょうか。
> すいませんが、ご返答よろしくお願いします。
これは、テキストボックスでも変数に代入しても同じです。
最初の回答にも書きましたが、StrConv(Text1, vbFromUnicode) は
VBの内部で扱っているUNICODEからSHIFT-JISへ変換するものです。
したがって、そのバイト数を求めるLenB(StrConv(Text1, vbFromUnicode))には
意味がありますが、文字数を求めるLen(StrConv(Text1, vbFromUnicode))は
StrConv(Text1, vbFromUnicode)で変換したSHIFT-JISのデータを無理矢理
文字としてその長さを求めるもので、はっきりいって意味がないものです。
MsgBox StrConv(Text1, vbFromUnicode)としてみると、意味不明の文字が
表示されるのがわかると思います。