AscB関数:文字のバイトコードを取得する

AscB 関数は Excel VBA で用意されている関数の一つで、引数に指定した文字のバイトコードを取得することができます。ここでは Excel VBA における AscB 関数の使い方について解説します。

(Last modified: )

AscB関数の定義と使い方

AscW 関数は引数に指定した文字のバイトコードを返します。取得するバイトコードは最初のバイトだけです。

AscB(string)

引数に指定する文字列は複数の文字列を指定することもできますが、引数に指定した文字列の先頭の文字のバイトコードを返します。

AscB 関数とは逆に、文字のバイトコードから文字を取得するには ChrB 関数を使います。詳しくは「ChrB関数:文字のバイトコードから文字を取得する」を参照されてください。

次の例を見てください。

Debug.Print AscB("東")      '113
Debug.Print AscB("東京都")  '113

AscB 関数は引数の文字列の 1 文字目のバイトコードだけを返すので、どちらも 113 とイミディエイトウィンドウに出力されます。

なお VBA では文字コードとして Unicode(UTF-16) を使用しており、 AscB 関数は、引数の文字に対する Unicode(UTF-16) のコードの最初のバイトを返します。

サンプルコード

それでは簡単なサンプルを作成して試してみます。

Option Explicit

Sub AscB関数()
    Range("C3").Value = AscB(Range("B3").Value)
    Range("C4").Value = AscB(Range("B4").Value)
    Range("C5").Value = AscB(Range("B5").Value)

    Range("D3").Value = "&H" & Hex(AscB(Range("B3").Value))
    Range("D4").Value = "&H" & Hex(AscB(Range("B4").Value))
    Range("D5").Value = "&H" & Hex(AscB(Range("B5").Value))
End Sub

AscB関数の定義と使い方(1)

このプログラムを実行すると AscB 関数の引数に B3 セルから B5 セルに入力されている値を 指定したときの戻り値を取得します。そして取得した戻り値を C3 セルから C5 セルにそれぞれ代入します。また同じ値に対する AscB 関数の戻り値を Hex 関数を使って 16 進数に変換した値を D3 セルから D6 セルに代入します。

AscB関数の定義と使い方(2)

Hex 関数の使い方については「Hex関数:数値を16進数に変換した値を取得する」を参照されてください。

AscB関数が返すバイトコードについて

AscB 関数は引数に指定した文字の最初のバイトのバイトコードを返しますが、実際に何のバイトコードが返されているのか確認してみます。次のようなサンプルを実行しました。

Option Explicit

Sub AscB関数()
    Range("C3").Value = "&H" & Hex(Asc(Range("B3").Value))
    Range("C4").Value = "&H" & Hex(Asc(Range("B4").Value))
    Range("C5").Value = "&H" & Hex(Asc(Range("B5").Value))

    Range("D3").Value = "&H" & Hex(AscW(Range("B3").Value))
    Range("D4").Value = "&H" & Hex(AscW(Range("B4").Value))
    Range("D5").Value = "&H" & Hex(AscW(Range("B5").Value))

    Range("E3").Value = "&H" & Hex(AscB(Range("B3").Value))
    Range("E4").Value = "&H" & Hex(AscB(Range("B4").Value))
    Range("E5").Value = "&H" & Hex(AscB(Range("B5").Value))
End Sub

AscB関数が返すバイトコードについて(1)

このプログラムを実行すると B3 セルから B5 セルに入力されている値を Asc 関数、 AscW 関数、 AscB 関数の引数にそれぞれ指定したときの戻り値を取得し、その戻り値を Hex 関数を使って 16 進数に変換した値を各セルに代入します。

AscB関数のAscB関数が返すバイトコードについて定義と使い方(2)

AscB 関数で得られるバイトコードは AscW で得られる Unicode コードポイントの最初のバイトに対するバイトコードと同じです。これは VBA で使用する文字コードの Unicode(UTF-16) は Unicode のコードポイントと同じ値になるためです(サロゲートペアを除く)。なおデータが格納されるときは下位バイトのあとに上位バイトが格納されるため、下位バイトの方のバイトコードが取得されます。

-- --

Excel VBA における AscB 関数の使い方について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。