
Criar uma função em VBA que converte números em valores por extenso pode ser um pouco complexo, devido às regras de numeração em português. Abaixo, segue uma função básica que pode converter números inteiros até 999. Se você precisar de uma função mais abrangente, que lide com números maiores e decimais, recomendo procurar uma biblioteca específica ou expandir o código.
Function NumeroPorExtenso(ByVal Numero As Integer) As String
Dim Unidades As Variant
Dim Dezenas As Variant
Dim Centenas As Variant
Dim NumExtenso As String
Dim Resto As Integer
' Arrays de strings para as unidades, dezenas e centenas
Unidades = Array("", "um", "dois", "três", "quatro", "cinco", "seis", "sete", "oito", "nove")
Dezenas = Array("", "dez", "vinte", "trinta", "quarenta", "cinquenta", "sessenta", "setenta", "oitenta", "noventa")
Centenas = Array("", "cento", "duzentos", "trezentos", "quatrocentos", "quinhentos", "seiscentos", "setecentos", "oitocentos", "novecentos")
' Verificar centenas
If Numero = 100 Then
NumExtenso = "cem"
Else
NumExtenso = Centenas(Numero \ 100)
End If
Resto = Numero Mod 100
' Verificar dezenas
If Resto >= 10 And Resto <= 19 Then
NumExtenso = NumExtenso & " " & Array("dez", "onze", "doze", "treze", "quatorze", "quinze", "dezesseis", "dezessete", "dezoito", "dezenove")(Resto - 10)
Else
NumExtenso = NumExtenso & " " & Dezenas(Resto \ 10)
Resto = Resto Mod 10
End If
' Verificar unidades
NumExtenso = NumExtenso & " " & Unidades(Resto)
' Remover espaços extras
NumeroPorExtenso = Trim(Replace(NumExtenso, " ", " "))
End Function
Sub ConverterNumeroPorExtenso()
Dim Numero As Integer
Dim Extenso As String
' Lê o número da célula A1
Numero = ThisWorkbook.Sheets(1).Range("A1").Value
' Converte para extenso
Extenso = NumeroPorExtenso(Numero)
' Escreve o resultado na célula A2
ThisWorkbook.Sheets(1).Range("A2").Value = Extenso
End Sub

Abra o Excel e pressione ALT + F11 para abrir o Editor do VBA.
No menu “Inserir”, escolha “Módulo” para criar um novo módulo.
Cole o código acima no módulo.
Execute a sub-rotina ConverterNumeroPorExtenso com um número na célula A1 da primeira planilha.
Este código irá ler o número da célula A1, converter para por extenso e colocar o resultado na célula A2. Note que este código é limitado a números inteiros até 999. Para números maiores ou com decimais, a função precisaria ser significativamente expandida.
Caso queira receber esse arquivo Excel, contendo essa função, é só enviar um e-mail
solicitando para o endereço
marmitanao@gmail.com