Primeiro, instale as seguintes funções definidas pelo usuário em um módulo padrão:
Public Function Properize(s As String) As String
Dim temp As String, i As Long, L As Long, U As Long
ary = Split(UCase(s), " ")
U = UBound(ary)
L = LBound(ary)
With Application.WorksheetFunction
For i = L To U
If IsRoman(ary(i)) Then
Else
ary(i) = .Proper(ary(i))
End If
Next i
End With
Properize = Join(ary, " ")
End Function
Public Function IsRoman(s As Variant) As Boolean
Dim i As Long, L As Long
For i = 1 To Len(s)
ch = Mid(s, i, 1)
If InStr(1, "IVXLCDM", Mid(s, i, 1)) = 0 Then
IsRoman = False
Exit Function
End If
Next i
IsRoman = True
End Function
Depois, com o texto na célula A1 , B1 digite:
=Properize(A1)
Asfunçõesnumeraisromanos"maiúsculos" e palavras que "parecem" números romanos (por exemplo, 1CCCCCCCCCCCCCCCCCCCCCCCC)
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:
= myfunction (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!