VBA – Função Len – Obter o Comprimento da Cadeia de Caracteres
In this Article
Este tutorial demonstrará como usar a função Len do VBA para obter o comprimento de uma cadeia de caracteres.
Função Len
A função Len do VBA retorna o comprimento de uma cadeia de caracteres especificada.
Contagem de Caracteres Len do VBA
A função Len do VBA conta os caracteres em uma cadeia de caracteres.
Sub LenExamplo_1()
MsgBox Len("12345") 'O resultado é: 5
MsgBox Len("12") 'O resultado é: 2
MsgBox Len("1") 'O resultado é: 1
MsgBox Len(" ") 'O resultado é: 1
'Há um caractere de espaço ali.
MsgBox Len("") 'O resultado é: 0
MsgBox Len("AB Cd") 'O resultado é: 5
End Sub
VBA Len – Strings ou Variants
A função Len do VBA pode contar o número de caracteres em variáveis declaradas como Strings ou Variants. Na verdade, o VBA Len tratará uma Variant como uma String. Se a função Len do VBA for usada com um Integer (inteiro), Long (longo), Single (simples) ou Double (duplo), ela contará o número de bytes necessários para armazenar a variável.
Sub LenExamplo_2()
Dim VarEx1 As String
VarEx1 = 12345
MsgBox Len(VarEx1) 'O resultado é: 5
'Len está contando o número de caracteres na variável
Dim VarEx2 As Variant
VarEx2 = 12345
MsgBox Len(VarEx2) 'Result is: 5
'Len está contando o número de caracteres na variável
Dim VarEx3 As Integer
VarEx3 = 12345
MsgBox Len(VarEx3) 'Resultado é: 2
'Len está contando o número de bytes usados para armazenar a variável
Dim VarEx4 As Long
VarEx4 = 12345
MsgBox Len(VarEx4) 'Resultado é: 4
'Len está contando o número de bytes usados para armazenar a variável
Dim VarEx5 As Single
VarEx5 = 12345
MsgBox Len(VarEx5) 'Result is: 4
'Len está contando o número de bytes usados para armazenar a variável
Dim VarEx6 As Double
VarEx6 = 12345
MsgBox Len(VarEx6) 'Resultado é: 8
'Len está contando o número de bytes usados para armazenar a variável
End Sub
VBA Len – Contagem de Ocorrências de um Caractere
A função Len do VBA pode ser usada com a função Replace do VBA para contar quantas vezes um caractere é encontrado em uma cadeia de caracteres.
A função Replace do VBA pode substituir uma substring por outra substring em um texto:
MsgBox Replace("XBCX", "X", "7") 'O resultado é: "7BC7"
Podemos usar Replace para remover os caracteres que queremos contar com “” e, em seguida, encontrar a diferença de comprimento antes e depois da substituição.
Sub LenExamplo_3()
Dim StrEx As String 'Definir uma variável de cadeia de caracteres
StrEx = "Jack,John,Jim,Jordan"
MsgBox Len(StrEx) - Len(Replace(StrEx, ",", "")) 'O resultado é: 3
'Decompondo o código acima
MsgBox Len(StrEx) 'O resultado é: 20
MsgBox Replace(StrEx, ",", "") 'O resultado é: "JackJohnJimJordan"
MsgBox Len(Replace(StrEx, ",", "")) 'O resultado é: 17
MsgBox Len(StrEx) - Len(Replace(StrEx, ",", "")) 'O resultado é: 20-17=3
End Sub
VBA Len – Contagem de Ocorrências de uma Substring
A função Len do VBA pode ser usada com a função Replace do VBA para contar quantas vezes uma substring é encontrada em uma string.
A função Replace do VBA pode substituir uma substring por outra substring em um texto:
MsgBox Replace("XB cX", "X", "7") 'O resultado é: "7B c7"
Podemos usar Replace para remover as substrings que queremos contar com “” e, em seguida, encontrar a diferença de comprimento antes e depois da substituição. Por fim, precisamos dividir a diferença com o comprimento da substring que substituímos.
Sub LenExamplo_4()
Dim StrEx As String 'Defina uma variável de cadeia de caracteres
StrEx = "Jack, John, Jim, Jordan"
Dim SubStr As String 'Defina uma variável de substring
SubStr = ", "
'Descobriremos quantas vezes SubStr é encontrada dentro de StrEx
MsgBox (Len(StrEx) - Len(Replace(StrEx, SubStr, "")))/Len(SubStr) 'O resultado é: 3
'Decompondo o código acima
MsgBox Len(StrEx) 'O resultado é: 23
MsgBox Replace(StrEx, SubStr, "") 'O resultado é: "JackJohnJimJordan"
MsgBox Len(Replace(StrEx, SubStr, "")) 'O resultado é: 17
MsgBox Len(StrEx) - Len(Replace(StrEx, SubStr, "")) 'O resultado é: 23-17=6
MsgBox (Len(StrEx) - Len(Replace(StrEx, SubStr, ""))) / Len(SubStr)
'O resultado é: (23-17)/2=3
End Sub