Experimente a seguinte função definida pelo usuário:
Public Function PrettyOutput(sIN As String) As String
Dim hr As String, i As Long, maxL As Long
Dim U As Long
hr = Chr(10)
If InStr(1, sIN, hr) = 0 Then
PrettyOutput = sIN
Exit Function
End If
ary = Split(sIN, hr)
U = UBound(ary)
For i = 0 To U
ary(i) = Application.WorksheetFunction.Trim(ary(i))
Next i
maxL = 0
For i = 0 To U
bry = Split(ary(i), " ")
If Len(bry(0)) > maxL Then maxL = Len(bry(0))
Next i
For i = 0 To U
bry = Split(ary(i), " ")
PrettyOutput = PrettyOutput & bry(0) & Application.WorksheetFunction.Rept(" ", maxL - Len(bry(0))) & " " & bry(1) & hr
Next i
PrettyOutput = Mid(PrettyOutput, 1, Len(PrettyOutput) - 1)
End Function
Funções Definidas pelo Usuário (UDFs) são muito fáceis de instalar e usar:
- ALT-F11 exibe a janela do VBE
- ALT-I ALT-M abre um novo módulo
- cole o material e feche a janela do VBE
Se você salvar a pasta de trabalho, a UDF será salva com ela. Se você estiver usando uma versão do Excel posterior a 2003, deverá salvar o arquivo como .xlsm em vez de .xlsx
Para remover o UDF:
- abrir a janela do VBE como acima
- limpe o código
- feche a janela do VBE
Para usar o UDF do Excel:
= minha função (A1)
Para saber mais sobre macros em geral, consulte:
e
e para detalhes sobre UDFs, consulte:
As macros devem estar ativadas para que isso funcione!
Portanto, com dados em A1 , em B1 digite:
=PrettyOutput(A1)
e formatar B1 com uma fonte como Courier :