Microsoft Access 掲示板

Lenbについて / 1

20 コメント
views
4 フォロー
1
名前なし 2020/11/27 (金) 16:14:07 d8dfb@f966d

Len 関数
その文字に何バイト使うか?というのは文字コードに依存します。(LenB関数の埒外)

String Data Type (Visual Basic)
VBAで文字を扱おうとすると基本、Unicodeで扱われます。Unicodeは半角、全角関係なく1文字を2バイトで表現する文字コードです。

半角カナ
いろいろあって、濁音や半濁音を表すときは2文字使うというのが現在です。

以上のことから質問の、

このページの下の「新しいトピックを作る」ボタンをクリックして質問を入力してください。あるいは下記のリンクをクリックしてください。

の例では4文字×2バイト増えた数字が表示されるのです。

半角1文字を1、全角1文字を2とカウントするためには、そう表現する文字コードに変換してLenB()を使う必要があります。最初のリンク先にある通り

LenB(StrConv(str, vbFromUnicode))

のような処理をさせます。

通報 ...
  • 2
    シソンヌ 2020/11/27 (金) 17:07:52 0029a@1c915 >> 1

    ありがとうございます。とても参考になったのですが、うまく行きません。

    
    
    3
    シソンヌ 2020/11/27 (金) 17:13:39 0029a@1c915 >> 2

    すみません。書きかけでエンターを押してしまいました。

    Private Sub btn半角化_Click()
        Me.Refresh
        txt変更テキスト = StrConv([元テキスト], vbFromUnicode)
        Me.Refresh
    End Sub
    

    下記コードで半角化すると文字化けしますが、こちらは今までどおりの式にして
    カウントだけ変更すればよいでしょうか、今から試してみます。

    4
    シソンヌ 2020/11/27 (金) 17:15:59 0029a@1c915 >> 2

    半角化じゃなかった、文字コードの変更をすると文字化け、の間違いです。スミマセン。