名前なし
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))
のような処理をさせます。
通報 ...
ありがとうございます。とても参考になったのですが、うまく行きません。
すみません。書きかけでエンターを押してしまいました。
下記コードで半角化すると文字化けしますが、こちらは今までどおりの式にして
カウントだけ変更すればよいでしょうか、今から試してみます。
半角化じゃなかった、文字コードの変更をすると文字化け、の間違いです。スミマセン。