VBA Asc

Función Excel VBA Asc

La función Asc en VBA se usa para devolver un valor entero que representa un código de carácter correspondiente al primer carácter de una cadena proporcionada (cadena proporcionada como argumento / parámetro) a la función. Puede usarse o incluirse en un código de macro que generalmente se ingresa a través del Editor de Visual Basic.

El entorno de Excel en el que se ejecuta la macro en el Editor de Visual Basic (VBE) que se puede utilizar para editar y depurar los códigos de macro. Contiene el código de la macro y lo vincula al libro de Excel.

El valor entero devuelto por la función Asc es el código de carácter ASCII correspondiente en VBA. ASCII (Código estándar americano para el intercambio de información) es una codificación de caracteres de 7 bits que tiene un total de 128 caracteres definidos, incluidos alfabetos latinos, diez números arábigos, algunos signos de puntuación y caracteres de control. No incluye caracteres diacríticos ya que requieren un espacio mínimo de 8 bits para la codificación. Esta codificación de 8 bits se realiza con ANSI (Instituto Nacional Estadounidense de Estándares) que tiene un total de 256 caracteres definidos. ANSI también se denomina ASCII extendido.

Sintaxis de la función VBA Asc

La sintaxis general para la función ASC es la siguiente:

La sintaxis de la fórmula ASC tiene el siguiente argumento:

Cadena: Requerida, representa la cadena de texto cuyo código de carácter correspondiente al primer carácter se desea y se debe devolver.

Si la cadena proporcionada tiene solo un carácter, entonces la función obviamente devuelve el código de carácter numérico para ese carácter en sí.

Ejemplos de Excel VBA Asc

Veamos a continuación cómo se puede utilizar el Asc en Excel VBA.

Puede descargar esta plantilla de Excel de función VBA Asc aquí - Plantilla de Excel de función VBA Asc

Ejemplo 1

Digamos que tenemos un archivo de Excel que contiene algunas cadenas y deseamos usar la función Asc con estas cadenas. Veamos las cadenas contenidas en el archivo:

Usamos la función Asc en VBA en una macro que se puede escribir en el Editor de Visual Basic y se puede acceder de la siguiente manera:

Vaya a Desarrollador y luego haga clic en Macros:

Ahora cree un nombre de macro: en 'Nombre de macro' escriba el nombre de la macro que desea crear y seleccione PERSONAL.XLSB en el menú desplegable de 'Macros en'. Las macros se pueden almacenar en un libro de trabajo personal que es un libro de trabajo oculto que se abre en segundo plano cada vez que se inicia Excel. Seleccionar PERSONAL.XLSB guardaría las macros en el libro de trabajo personal, por lo que la macro siempre estará disponible, ya que el libro de trabajo personal no es específico del sistema / archivo.

Haga clic en 'Crear'.

Esto abriría una ventana con un subprocedimiento de VBA en el Editor de Visual Basic de la siguiente manera:

Ahora, defina la variable Resultado

Código:

Subcódigo () Dim Result1 End Sub

Ahora asigne la variable Result1 con la fórmula para devolver el código de carácter de la cadena:

Código:

Subcódigo () Dim Result1 Result1 = Asc ("Raj") End Sub

Ahora, el valor resultante de Result1 se puede mostrar y devolver usando un cuadro de mensaje VBA (MsgBox) de la siguiente manera:

Código:

Subcódigo () Dim Result1 Result1 = Asc ("Raj") MsgBox Result1 End Sub

Ahora, cuando ejecutamos este código manualmente haciendo clic en 'Ejecutar' en la parte superior de la ventana o presionando F5, obtenemos el código de carácter de la primera letra de la cadena: "Raj" que se muestra en un cuadro de mensaje de la siguiente manera:

Entonces, podemos ver en la captura de pantalla anterior que al ejecutar la macro, se devuelve '82' en un cuadro de mensaje. Esto implica que el código de carácter para 'R' es 82.

Ahora, digamos en el ejemplo anterior que deseamos encontrar el código de carácter para la cadena: "Karan". Para hacer esto, seguimos los mismos pasos anteriores.

En el código, en lugar de Raj, escribiremos Karan para obtener su código de carácter.

Código:

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

Ahora ejecutamos este código manualmente o presionando F5, y obtenemos el código de carácter de la primera letra de la cadena: "Karan" que se muestra en un cuadro de mensaje de la siguiente manera:

Entonces, podemos ver en la captura de pantalla anterior que al ejecutar la macro, se devuelve '75' en un cuadro de mensaje. Esto implica que un código de carácter para 'K' es 75.

Ahora veamos cómo cambia el resultado para las cadenas restantes:

Código:

 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 

Al ejecutar estos subprocedimientos uno por uno, los siguientes códigos de caracteres se devuelven en el cuadro de mensaje (uno a la vez, respectivamente). Esta es la lista de valores correspondientes devueltos para las cadenas anteriores.

Entonces, como ilustra la captura de pantalla anterior, podemos ver que la función ASC devuelve el código de carácter como 65 para la cadena: "Arun", y también para la cadena: "A". Esto se debe a que el código de carácter devuelto es VBA ASCII o un código de carácter equivalente para la primera letra de la cadena en caso de que la cadena tenga más de un carácter. Por lo tanto, se devuelve 65 para ambos como el primer carácter o inicial de la cadena: “Arun” también es 'A'.

Ejemplo # 2

Si la cadena proporcionada como parámetro / argumento a la función VBA ASC es una cadena vacía / en blanco (o una cadena sin caracteres), la función devuelve un error en tiempo de ejecución.

El siguiente código explica lo mismo.

 Sub blanco () Dim resultado resultado = Asc ("") MsgBox (resultado) End Sub 

Cuando ejecutamos este código, obtenemos el error de tiempo de ejecución de la siguiente manera.

Entonces, podemos ver en la captura de pantalla anterior que cuando la cadena proporcionada como parámetro o argumento a la función ASC está en blanco / vacía, entonces la función devuelve un error en tiempo de ejecución.

Cosas para recordar

  • La cadena suministrada a la función VBA ASC puede ser cualquier expresión de cadena válida.
  • La función Asc distingue entre mayúsculas y minúsculas.
  • El valor entero devuelto por la función Asc está en el rango de 0-255.
  • Los códigos ASCII en VBA para AZ son 65-90 y para az son 97-122.
  • El nombre dado a una macro o subprocedimiento no puede ser el nombre de alguna función predeterminada en VBA. Si se llama así, el subprocedimiento mostrará un error.