VBA Asc | Excel VBAでAsc関数を使用する方法は?(ASCII文字コード)

Excel VBAAsc関数

VBAのAsc関数は、指定された文字列(引数/パラメーターとして提供された文字列)の最初の文字に対応する文字コードを表す整数値を関数に返すために使用されます。これは、通常Visual BasicEditorを介して入力されるマクロコードで使用または指定できます。

マクロコードの編集とデバッグに使用できるVisualBasic Editor(VBE)でマクロが実行されるExcel環境。マクロコードを保持し、Excelブックにリンクします。

Asc関数によって返される整数値は、VBAの対応するASCII文字コードです。ASCII(情報交換のためのアメリカ標準コード)は、ラテンアルファベット、10アラビア数字、いくつかの句読点、および制御文字を含む合計128文字が定義されている7ビットの文字エンコードです。エンコードに最低8ビットのスペースが必要なため、発音区別符号は含まれません。この8ビットコーディングは、合計256文字が定義されているANSI(米国規格協会)を使用して行われます。ANSIは拡張ASCIIとも呼ばれます。

VBAAsc関数の構文

ASC関数の一般的な構文は次のとおりです。

ASC式の構文には、次の引数があります。

文字列:必須。最初の文字に対応する文字コードが必要であり、返されるテキスト文字列を表します。

指定された文字列に1文字しかない場合、関数は明らかにその文字自体の数値文字コードを返します。

Excel VBAAscの例

以下では、ExcelVBAでAscを使用する方法を見てみましょう。

このVBAAsc関数Excelテンプレートはここからダウンロードできます– VBAAsc関数Excelテンプレート

例1

いくつかの文字列を含むExcelファイルがあり、これらの文字列でAsc関数を使用したいとします。ファイルに含まれている文字列を見てみましょう。

VBAのAsc関数は、Visual Basic Editorで記述でき、次のようにアクセスできるマクロで使用します。

開発者に移動し、マクロをクリックします。

次に、マクロ名を作成します。[マクロ名]の下に、作成するマクロの名前を入力し、[マクロ入力]のドロップダウンで[PERSONAL.XLSB]を選択します。マクロは、Excelが起動されるたびにバックグラウンドで開く非表示のブックである個人用ブックに保存できます。PERSONAL.XLSBを選択すると、マクロがパーソナルワークブックに保存され、パーソナルワークブックはシステム/ファイル固有ではないため、マクロを常に使用できるようになります。

「作成」をクリックします。

これにより、次のようにVisual BasicEditorでVBAサブプロシージャを含むウィンドウが開きます。

次に、変数Resultを定義します

コード:

サブコード()薄暗い結果1終了サブ

次に、変数Result1に式を割り当てて、文字列の文字コードを返します。

コード:

Sub Code()Dim Result1 Result1 = Asc( "Raj")End Sub

これで、Result1の結果の値を、次のようにVBAメッセージボックス(MsgBox)を使用して表示および返すことができます。

コード:

Sub Code()Dim Result1 Result1 = Asc( "Raj")MsgBox Result1 End Sub

ウィンドウの上部にある[実行]をクリックするか、F5キーを押してこのコードを手動で実行すると、文字列の最初の文字「Raj」の文字コードがメッセージボックスに次のように表示されます。

したがって、上のスクリーンショットでは、マクロを実行すると、メッセージボックスに「82」が返されることがわかります。これは、「R」の文字コードが82であることを意味します。

ここで、上記の例で、文字列「Karan」の文字コードを検索するとします。これを行うには、上記と同じ手順に従います。

Rajの代わりのコードでは、文字コードを取得するためにKaranを記述します。

コード:

 Sub String2()Dim Result2 Result2 = Asc( "Karan")MsgBox Result2 End Sub 

このコードを手動で実行するか、F5キーを押すと、文字列の最初の文字の文字コード「Karan」がメッセージボックスに次のように表示されます。

したがって、上のスクリーンショットでは、マクロを実行すると、メッセージボックスに「75」が返されることがわかります。これは、「K」の文字コードが75であることを意味します。

次に、残りの文字列の結果がどのように変化するかを見てみましょう。

コード:

 Sub String3()Dim Result2 Result2 = Asc( "Heena")MsgBox Result2 End Sub 

 Sub String4()Dim Result2 Result2 = Asc( "Arun")MsgBox Result2 End Sub 

 Sub String5()Dim Result2 Result2 = Asc( "A")MsgBox Result2 End Sub 

 Sub String6()Dim Result2 Result2 = Asc( "a")MsgBox Result2 End Sub 

このサブプロシージャを1つずつ実行すると、次の文字コードがメッセージボックスに返されます(それぞれ一度に1つずつ)。これは、上記の文字列に対して返される対応する値のリストです。

したがって、上のスクリーンショットが示すように、ASC関数は文字列「Arun」および文字列「A」に対して65として文字コードを返すことがわかります。これは、文字列が複数の文字である場合、返される文字コードが文字列の最初の文字のVBAASCIIまたは同等の文字コードであるためです。したがって、文字列の最初の文字または最初の文字の両方に対して65が返されます。「Arun」も「A」です。

例2

VBA ASC関数にパラメーター/引数として提供された文字列が空/空白の文字列(または文字のない文字列)である場合、関数は実行時エラーを返します。

次のコードは同じことを説明しています。

 Sub blank()Dim result result = Asc( "")MsgBox(result)End Sub 

このコードを実行すると、次のような実行時エラーが発生します。

したがって、上のスクリーンショットでは、ASC関数にパラメーターまたは引数として指定された文字列が空白/空の場合、関数が実行時エラーを返すことがわかります。

覚えておくべきこと

  • VBA ASC関数に提供される文字列は、任意の有効な文字列式にすることができます。
  • Asc関数では大文字と小文字が区別されます。
  • Asc関数によって返される整数値は、0〜255の範囲です。
  • AZのVBAのASCIIコードは65〜90で、azのASCIIコードは97〜122です。
  • マクロまたはサブプロシージャに付けられた名前は、VBAのデフォルト関数の名前にすることはできません。そのように名前が付けられている場合、サブプロシージャはエラーを表示します。