'文字のバイト数を取得 Debug.Print LenB(StrConv("あいうアイウ", vbFromUnicode))
文字列のバイト数を取得するには「LenB」関数と「StrConv」関数を組み合わせて取得します
StrConv関数に関しての解説は以下の記事で確認してください
関数の解説
VBAではUnicode形式が採用されているため、全角も半角も2バイトで表現されています
そのため、普通に文字列を指定してバイト数を取得しようとしても全て2バイトで取得されてしまいます
LenB("あいうアイウ")
→→→ 12
このように、全角と半角が混じっていても同じ2バイトで取得されるため、半角文字が判別できません
なので、この文字形式を変換する必要があります
その変換に使用するのがStrConv関数です
引数の設定により、システムの既定文字形式に変換します
StrConv("あいうアイウ", vbFromUnicode)
LenB関数の引数内にある、この変換により半角は1バイトで表現されるようになるため半角のバイト数も取得できるようになります
変換後のデータはVBAでは表現できませんので、StrConv関数だけ実行してもよくわからない結果が返ってくるだけです
LenB(StrConv("あいうアイウ", vbFromUnicode))
→→→ 9
例コードの実行結果として「あいう」は全角3文字で6バイト、「アイウ」は半角3文字で3バイトとなるので合計の「9」が返されます
このコードを使用することで、指定文字列に全角と半角が混在しているかを判定することが出来ます
その解説に関しては以下の記事を確認してください