VBA Asc

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 (código padrão americano para intercâmbio de informações) é uma codificação de caracteres de 7 bits que possui 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.

Você pode baixar este modelo do Excel da função VBA Asc aqui - Modelo do Excel da função VBA Asc

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 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 Resultado

Código:

Sub Code () 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 da seguinte forma:

Assim, 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 que 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:

Portanto, 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.