titulo.jpg

Home

Principal

Assinar

 

Dicas

Excel

Word

Outlook

Office/VBA

Suplementos

Vídeos

Outros

Busque neste site:

Loading
 

Alterar Início de Cada Palavra de um Texto para Maiúscula de uma Forma Melhor

Introdução

Referências

 

Introdução

Observe o texto abaixo, retirado da Internet e colado como texto no Word:

Suponha que queiramos usar letras maiúsculas apropriadas nesse texto, isto é, a primeira letra de cada palavra em maiúscula. Existe uma ferramenta nativa do Word que faz isso. Para tal, basta selecionar o texto desejado, ir no menu Página Inicial, grupo Fonte, botão Maiúsculas e Minúsculas, botão Colocar Cada Palavra em Maiúscula, como mostrado abaixo:

O resultado será como mostrado:

No entanto, observe que o Word converte a primeira letra em maiúscula de todas as palavras, sem distinguí-las se são pronomes, preposições, conjunções, etc.

A macro abaixo contorna esse problema, veja o código:

Sub ConsertarCase()
    
    'Adicione nesta expressão as palavras que deverão ficar em minúscula
    Const sMin As String = "|da|de|do|das|dos|a|e|o|as|às|os|em|na|no|nas|nos|para|que|por|"
    
    'Os inícios de frase devem ser em maiúscula:
    Const sFim As String = "|.|:|...|"

    Dim rng As Range
    Dim rngAnterior As Range
    Dim l As Long
    Dim wds As Words
    
    'Inicialmente, faz-se a conversão de palavras nativa do Word.
    Selection.Range.Case = wdTitleWord
    Set wds = Selection.Range.Words
    
    'Agora, põe-se a primeira letra das exceções em minúscula,
    'através de um laço em todas as palavras da seleção inicial.
    For l = 1 To wds.Count
        Set rng = wds(l)
        If Not rngAnterior Is Nothing Then
            If InStr(1, sFim, "|" & Trim(rngAnterior) & "|") = 0 Then
                If InStr(1, sMin, "|" & Trim(LCase(rng)) & "|") > 0 Then
                    rng = LCase(rng)
                End If
            End If
        End If
        Set rngAnterior = rng
    Next l

End Sub

A explicação se encontra no próprío código. Para aumentar a lista de exceções ou de pontuações final, basta acrescentá-las nas constantes sMin e sFim do modelo.

Para usar essa macro, basta selecionar o texto que deseja aplicar a formatação e executá-la:

 

Referências

Para fazer o download de um exemplo pronto, clique aqui.

 

---

Site de Felipe Costa Gualberto.

Belo Horizonte, Brasil, 2009-2013.

felipe@ambienteoffice.com.br