【ACCESS VBA】文字列の長さ、バイト数を取得するには?

訪問して頂きありがとうございます。まさふくろーです。

この記事では、文字列の長さ、バイト数を取得する方法をご紹介します。

文字列の長さ、バイト数を取得する関数

Len関数

Len(string)

説明
Len関数は、引数 stringに指定した文字列の長さ(文字数)を返します。

LenB関数

LenB(string)

説明
LenB関数は、引数 stringに指定した文字列のバイト数を返します。
全角1文字のバイト数は2バイト、半角1文字のバイト数は1バイトです。
LenB関数のみでは、正しくバイト数を取得できません。正しくバイト数を取得するには、StrConv関数と組み合わせます。

StrConv関数

StrConv ( string, conversion [, LCID ] )

説明
StrConv関数は、引数 stringに指定した文字列を、引数 conversionに指定した文字の種類に変換します。
変換できる種類は、半角、全角、大文字、小文字、ひらがな、カタカナがあります。
引数 LCIDは、国別情報識別子を指定します。日本を表す LCIDは 1041 です。
引数 LCIDの指定が必要なのは、英語など日本語以外の環境で、ひらがなやカタカナなどの変換を行う場合です。
指定項目 必須 説明
string 変換させる文字列を指定します。
conversion 定数または値を指定します。
LCID 国別情報識別子を指定します。

引数「conversion」に指定する定数と値

定数 内容
vbUpperCase 1 文字列を大文字に変換。
vbLowerCase 2 文字列を小文字に変換。
vbProperCase 3 文字列の各単語の先頭の文字を大文字に変換。
vbWide 4 文字列内の半角文字を全角文字に変換。
vbNarrow 8 文字列内の全角文字を半角文字に変換。
vbKatakana 16 文字列内のひらがなをカタカナに変換。
vbHiragana 32  文字列内のカタカナをひらがなに変換。
vbUnicode 64
システムの既定のコードページを使って文字列をUnicodeに変換。
vbFromUnicode 128 文字列をUnicodeからシステムの既定のコードページに変換。
日本語版Windowsの場合の既定のコードページはANSIコードページ(932)で、これはシフトJIS(日本語文字コード)を表します。

サンプルプログラム(Len関数とLenB関数の比較)

1 Subプロシージャ「Sample」を作成。
3 全角「ABCDEF」の文字列の長さを取得し、文字列の長さをメッセージボックスに表示します。
5 半角「ABCDEF」の文字列の長さを取得し、文字列の長さをメッセージボックスに表示します。
7
全角「ABCDEF」の文字列のバイト数を取得し、文字列のバイト数をメッセージボックスに表示します。
バイト数を取得する際、StrConv関数で、シフトJIS(日本語文字コード)に変換します。
9
半角「ABCDEF」の文字列のバイト数を取得し、文字列のバイト数をメッセージボックスに表示します。
バイト数を取得する際、StrConv関数で、シフトJIS(日本語文字コード)に変換します。

実行結果

サンプルプログラム(濁点・半濁点の有無チェック)

1 Subプロシージャ「Sample」を作成。
3 チェックする値用変数「value」(文字列型)を宣言。
5 文字列「パワーポイント」を変数「value」に代入。
7 変数「value」の値を、半角変換した後の文字列の長さと、変換しない文字列の長さを比較し、文字列の長さが異なる場合、
8 「濁点・半濁点あり」とメッセージボックスに表示します。

補足説明

文字列「パワーポイント」を半角変換した場合の文字列の長さは「9」、変換しない場合の文字列の長さは「7」となります。

実行結果

最後まで読んでいただき、ありがとうございました!