Função Excel VBA Asc
A função Asc em VBA é usada para retornar um valor inteiro que representa um código de caractere correspondente ao primeiro caractere de uma string fornecida (string fornecida como argumento / parâmetro) para a função. Ele pode ser usado ou fornecido em um código de macro que geralmente é inserido por meio do Editor do Visual Basic.
O ambiente Excel no qual a macro é executada no Editor do Visual Basic (VBE), que pode ser usado para editar e depurar os códigos de macro. Ele contém o código da macro e o vincula à pasta de trabalho do Excel.
O valor inteiro retornado pela função Asc é o código de caractere ASCII correspondente em VBA. ASCII (American Standard Code for Information Interchange) é uma codificação de caracteres de 7 bits que tem um total de 128 caracteres definidos, incluindo alfabetos latinos, dez algarismos arábicos, alguns sinais de pontuação e caracteres de controle. Não inclui caracteres diacríticos, pois requerem um espaço mínimo de 8 bits para codificação. Esta codificação de 8 bits é feita com ANSI (American National Standards Institute) que possui um total de 256 caracteres definidos. ANSI também é chamado de ASCII estendido.

Sintaxe da função VBA Asc
A sintaxe geral para a função ASC é a seguinte:

A sintaxe da fórmula ASC tem o seguinte argumento:
String: Obrigatório, representa a string de texto cujo código de caractere correspondente do primeiro caractere é desejado e deve ser retornado.
Se a string fornecida tiver apenas um caractere, a função obviamente retornará o código de caractere numérico para aquele caractere.
Exemplos de Excel VBA Asc
Vamos ver abaixo como o Asc pode ser usado no Excel VBA.
Exemplo 1
Digamos que temos um arquivo Excel contendo algumas strings e desejamos usar a função Asc com essas strings. Vamos ver as strings contidas no arquivo:

Usamos a função Asc no VBA em uma macro que pode ser escrita no Editor Visual Basic e pode ser acessada da seguinte forma:
Vá para Desenvolvedor e clique em Macros:

Agora crie um nome de macro: Em 'Nome da macro' escreva um nome da macro que deseja criar e selecione PESSOAL.XLSB na lista suspensa de 'Macros em'. As macros podem ser armazenadas em uma pasta de trabalho pessoal, que é uma pasta de trabalho oculta que é aberta em segundo plano sempre que o Excel é iniciado. Selecionar PESSOAL.XLSB salvaria as macros na pasta de trabalho pessoal, tornando assim a macro sempre disponível, uma vez que a pasta de trabalho pessoal não é específica do sistema / arquivo.

Clique em 'Criar'.

Isso abriria uma janela com um subprocedimento VBA no Editor do Visual Basic da seguinte maneira:

Agora, defina a variável Result1
Código:
Sub-código () Dim Result1 End Sub

Agora atribua a variável Result1 com a fórmula para retornar o código de caractere da string:
Código:
Sub Código () Dim Result1 Result1 = Asc ("Raj") End Sub

Agora, o valor resultante de Result1 pode ser exibido e retornado usando uma caixa de mensagem VBA (MsgBox) da seguinte maneira:
Código:
Sub Code () Dim Result1 Result1 = Asc ("Raj") MsgBox Result1 End Sub

Agora, quando executamos esse código manualmente clicando em 'Executar' na parte superior da janela ou pressionando F5, obtemos o código do caractere da primeira letra da string: “Raj” exibido em uma caixa de mensagem como segue:

Portanto, podemos ver na imagem acima que ao executar a macro, '82' é retornado em uma caixa de mensagem. Isso implica que o código de caractere para 'R' é 82.
Agora, digamos no exemplo acima, desejamos encontrar o código do caractere para a string: “Karan”. Para fazer isso, seguimos os mesmos passos acima.
No código, em vez de Raj, escreveremos Karan para obter seu código de caractere.
Código:
Sub String2 () Dim Result2 Result2 = Asc ("Karan") MsgBox Result2 End Sub

Agora, executamos esse código manualmente ou pressionando F5 e obtemos o código do caractere da primeira letra da string: “Karan” exibido em uma caixa de mensagem da seguinte maneira:

Assim, podemos ver na imagem acima que ao executar a macro, '75' é retornado em uma caixa de mensagem. Isso implica que um código de caractere para 'K' é 75.
Agora vamos ver como o resultado muda para as strings 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
Ao executar estes subprocedimentos um por um, os seguintes códigos de caracteres são retornados na caixa de mensagem (um por vez, respectivamente). Esta é a lista de valores correspondentes retornados para as strings acima.

Assim, como a imagem acima ilustra, podemos ver que a função ASC retorna o código do caractere como 65 para a string: “Arun” e também para a string: “A.” Isso ocorre porque o código de caractere retornado é o VBA ASCII ou código de caractere equivalente para a primeira letra da string, caso a string tenha mais de um caractere. Portanto, 65 é retornado para ambos como o caractere inicial ou primeiro da string: “Arun” também é 'A.'
Exemplo # 2
Se a string fornecida como parâmetro / argumento para a função VBA ASC for uma string vazia / em branco (ou uma string sem caracteres), a função retornará um erro em tempo de execução.
O código a seguir explica o mesmo.
Sub em branco () Resultado Dim = Asc ("") MsgBox (resultado) End Sub

Quando executamos esse código, obtemos o erro em tempo de execução da seguinte maneira.

Portanto, podemos ver na captura de tela acima que quando a string fornecida como parâmetro ou argumento para a função ASC está em branco / vazia, a função retorna um erro em tempo de execução.
Coisas para lembrar
- A string fornecida para a função VBA ASC pode ser qualquer expressão de string válida.
- A função Asc é sensível a maiúsculas e minúsculas.
- O valor inteiro retornado pela função Asc está no intervalo de 0-255.
- Os códigos ASCII em VBA para AZ são 65-90 e para az são 97-122.
- O nome dado a uma macro ou subprocedimento não pode ser o nome de alguma função padrão no VBA. Se assim for, o subprocedimento mostrará um erro.