[VBA] Asc・Chr (ASCIIコードと文字列の変換)

Asc関数

 Asc関数 は指定した文字を ASCII コード に対応する数値に変換します。たとえば小文字のアルファベットの a と z を表す文字コードを知りたいときは次のようなマクロを書きます。

'[VBA] Ascで小文字アルファベットのASCIIコードを調べる

Sub Asc_Lowercase()

  Debug.Print Asc("a"); Asc("z")

End Sub

 Asc_Lowercase() を実行すると「 97 122 」という数値が返ってくるので、小文字のアルファベットには 97 ~ 122 という数値が対応していると推測できるのです。ついでに大文字のアルファベットの文字コードも調べておきましょう。

'[VBA] Ascで大文字アルファベットのASCIIコードを調べる

Sub Asc_Uppercase()

  Debug.Print Asc("A"); Asc("Z")

End Sub

 Asc_Uppercase() を実行すると「 65 90 」という数値が返ってきます。なので大文字アルファベットには 65 ~ 90 の数値が割り当てられていることがわかります。次はひらがなの「あ」と「ん」を調べてみます。

'[VBA] Ascでひらがなの「あ」と「ん」のASCIIコードを調べる

Sub Asc_Hiragana()

  Debug.Print Asc("あ"); Asc("ん")

End Sub

 Asc_Hiragana() を実行すると「 -32096 -32015 」という数値が返ってきます。
 

Chr関数

 Chr関数 は Asc関数とは逆に、指定した ASCII コードを対応する文字列に変換します。

'VBA ChrでASCIIコード97に対応する文字を取得

Sub Chr_Test_1()

  Debug.Print Chr(97)

End Sub

 Chr_Test_1 を実行すると「 a 」という小文字アルファベットが返ってきます。さきほど Asc関数でひらがなには -32096 ~ -32015 という数値が対応していることを調べましたが、具体的にどんなふうに割り当てられているか知りたいときは、ヘルプの ASCII コードを眺めるか(目がちかちかするけどね)、次のようなマクロを書いて調べます。

'[VBA] ChrでASCIIコードに対応する文字を調べる

Sub Chr_Test_2()

  For i = -32096 To -32015
    Debug.Print i; Chr(i)
  Next i

End Sub

 Chr_Test_2 を実行すると

 -32096 あ
 -32095 ぃ
 -32094 い
 -32093 ぅ
 -32092 う
 -32091 ぇ
 -32090 え
 ・・・・・・

というように各コードに対応するひらがながずらずら並びます(やっぱり目がちかちかするけどね)。


 

コメントをどうぞ

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)