Microsoft Access Club >Access一日一見 >このページ >次頁 <前項  サイト内検索


Len関数 と LenB関数 : 一日一見



Len関数は、文字数を求める時に重宝します。LenB関数は、バイト数を求める時に使用します。例えば、Len("東京都") では、3 が戻り値として返されます。LenB("東京都") なら 6 が戻り値として返されます。

バイト

情報量の単位で、1バイトは8ビットに相当します。コンピュータは情報の記憶や処理、伝達をバイト単位で行なうケースが多々あります。

Unicode と ANSI

Access2000からUnicodeが採用されました。これは、全ての文字(全角、半角、漢字)を2バイトであらわします。逆に、ANSI形式は、全角文字と漢字は2バイト、半角文字は1バイトで表します。

Access2000以降のLenB関数

よく、解説書で「LenB関数は、半角なら1バイト、全角なら2バイトで戻り値を返します」と記載されていますが、Access2000以降、この記述は誤りです。

しかし、Unicode形式の文字をANSI形式の文字を変換する関数が用意されているので、これを利用すると無事うまくいきます。

StrConv関数

Accessで用意されている関数として、StrConv関数があります。この関数は、下記の引数が用意されています。

定数

内容
vbUpperCase

1

文字列を大文字に変換します。
vbLowerCase

2

文字列を小文字に変換します。
vbProperCase

3

文字列の各単語の先頭の文字を大文字に変換します。
vbWide

4

文字列内の半角文字 (1 バイト) を全角文字 (2 バイト) に変換します。
vbNarrow

8

文字列内の全角文字 (2 バイト) を半角文字 (1 バイト) に変換します。
vbKatakana

16

文字列内のひらがなをカタカナに変換します。
vbHiragana

32

文字列内のカタカナをひらがなに変換します。
vbUnicode

64

文字列を Unicode に変換します。
vbFromUnicode

128

文字列を Unicode からシステムの既定のコード ページに変換します。
  • strconv("文字列TEST中",vbFromUnicode) のように引数を記述して下さい。

サンプルプロシージャその1

下記のようなサンプルプロシージャをイミディエイトウィンドウで実行します。

Function samplepro()

    Debug.Print Len("ABc") '---A
    Debug.Print LenB("ABc") '---B
    Debug.Print LenB(StrConv("ABc", vbFromUnicode)) '---C
    
End Function
実行結果

:プロシージャの実行結果は、以下のとおりです。

  • Aの場合、3が戻り値になります。
  • Bの場合、6が戻り値になります。(全文字を2バイトで計算)
  • Cの場合、5が戻り値になります。(ANSI形式では、cが半角英数字のために1バイト)

サンプルプロシージャその2

下記のようなサンプルプロシージャをイミディエイトウィンドウで実行します。

Function samplepro2()

    Debug.Print Len("今年の目玉は、Accessです。") '---D
    Debug.Print LenB("今年の目玉は、Accessです。") '--E
    Debug.Print LenB(StrConv("今年の目玉は、Accessです。", vbFromUnicode)) '--F
    
End Function
実行結果

:プロシージャの実行結果は、以下のとおりです。

  • Dの場合、16が戻り値になります。
  • Eの場合、32が戻り値になります。(全文字を2バイトで計算)
  • Fの場合、26が戻り値になります。(Accessが半角英数字のために6バイト)

関連ページ

2004/04/15

ページの先頭へ 前ページへ戻る

 


Len関数 と LenB関数 : 一日一見


-Microsoft Access Club-

cPanelとPLESKインストール済みのアダルトサイト対応レンタルサーバーをご提供しています。もちろん、海外大手のデータセンターにサーバー機器を収納します。
cPanelやPLESKをインストールしたレンタルサーバー。
アダルトサイトにも対応済み。
海外大手データセンターにサーバー機器を収納。