• 解説

    Accessは32ビットアプリケーションになった時点から文字列をUnicodeとして扱うようになりました。
    その弊害として半角・全角文字が混在する文字データの正確なバイト数が単純には取得できなくなりました。

    たとえば、

    LenB("ABCあいうえお")
    

    とすると戻り値は 16 となります。
    これはUnicodeがどんな文字であっても1文字を2バイトとして扱ってしまうのでこのような現象になります。

    この現象を回避するには下記のようなコードを書きます。

    LenB(StrConv("ABCあいうえお", vbFromUnicode))
    

    まずStrConv関数にてUnicodeからAnsiに変換します。
    次に変換した文字のバイト数を取得します。

説明がわからないなどありましたらお問い合わせでお知らせください。

ここに掲載された情報を使用したことによって発生した、いかなる損害に対しても
管理者である雅は一切責任を負いません。