Como contar as palavras do corpo do texto (texto principal), mas sem considerar títulos, subtítulos e legendas de imagens?

Anônima
2024-10-17T11:39:08+00:00

Olá pessoal. Preciso medir o tamanho dos meus textos, porém, ao selecionar o corpo do texto, naturalmente sou obrigado a selecionar títulos, subtítulos, legendas de imagens. Isso faz com que eu não consiga saber ao certo o tamanho do meu conteúdo.

Já pedi ajuda por aqui e um bom moço criou uma macro para resolver isso. Entretanto, embora muito ágil e fácil, ela tem trazido resultados superiores ao número de palavras que realmente existem no texto.

Microsoft 365 e Office | Word | Para Educação | Windows

Pergunta bloqueada. Essa pergunta foi migrada da Comunidade de Suporte da Microsoft. É possível votar se é útil, mas não é possível adicionar comentários ou respostas ou seguir a pergunta.

0 comentários Sem comentários
Resposta aceita pelo autor da pergunta
Anônima
2024-10-17T14:24:33+00:00

Esta resposta foi traduzida automaticamente. Como resultado, pode haver erros gramaticais ou palavras estranhas.

Olá Lucas,

Obrigado por postar na comunidade. Estamos felizes em ajudá-lo.

De acordo com sua descrição, é melhor usar o Office VBA (macro) para atender às suas necessidades. Como nossa equipe se concentra nos recursos internos do Word, temos um canal específico do Stack Overflow para lidar com problemas relacionados ao Office VBA (consulte este artigo: Suporte e comentários do Office VBA | Microsoft Docs), você pode postar um novo tópico (usando a marca VBA) lá para obter ajuda especializada.

Ao mesmo tempo, com base no meu teste, sugiro que você tente a seguinte macro (pressione F5 para executar a macro no Editor). Essa macro atualizada verifica especificamente os estilos e exclui Título 1, Título 2, Título 3 e Legenda da contagem de palavras do corpo do texto. Veja se funciona bem do seu lado. Se a macro abaixo não funcionar conforme o esperado, recomendo que você poste um novo tópico na Comunidade do Stack Overflow para obter mais ajuda.

Sub CountBodyTextWords()
    Dim doc As Document
    Dim para As Paragraph
    Dim wordCount As Long
    Dim captionWords As Long
    Dim titleWords As Long
    Dim tocWords As Long

    Set doc = ActiveDocument
    wordCount = 0
    captionWords = 0
    titleWords = 0
    tocWords = 0

    ' Loop through all paragraphs in the document
    For Each para In doc.Paragraphs
        ' Check if the paragraph is part of the TOC
        If para.Range.Fields.Count > 0 Then
            If para.Range.Fields(1).Type = wdFieldTOCEntry Then
                tocWords = tocWords + para.Range.ComputeStatistics(wdStatisticWords)
            End If
        ' Check if the paragraph style is not a title, subtitle, or caption
        ElseIf para.Style <> doc.Styles(wdStyleHeading1) And _
               para.Style <> doc.Styles(wdStyleHeading2) And _
               para.Style <> doc.Styles(wdStyleHeading3) And _
               para.Style <> doc.Styles(wdStyleCaption) Then
            wordCount = wordCount + para.Range.ComputeStatistics(wdStatisticWords)
        ElseIf para.Style = doc.Styles(wdStyleCaption) Then
            captionWords = captionWords + para.Range.ComputeStatistics(wdStatisticWords)
        ElseIf para.Style = doc.Styles(wdStyleHeading1) Or _
               para.Style = doc.Styles(wdStyleHeading2) Or _
               para.Style = doc.Styles(wdStyleHeading3) Then
            titleWords = titleWords + para.Range.ComputeStatistics(wdStatisticWords)
        End If
    Next para

    ' Display the word count
    MsgBox "Body text word count: " & wordCount & vbCrLf & _
           "Title and subtitle word count: " & titleWords & vbCrLf & _
           "Caption word count: " & captionWords & vbCrLf & _
           "TOC word count: " & tocWords
End Sub

Obrigado por sua cooperação e compreensão!

Sinceramente

Jorge - Brasil | Moderador da Comunidade Microsoft

Esta resposta foi útil?

1 pessoa achou esta resposta útil.
0 comentários Sem comentários

2 respostas adicionais

Classificar por: Mais útil
  1. Anônima
    2024-10-19T17:50:09+00:00

    Esta resposta foi traduzida automaticamente. Como resultado, pode haver erros gramaticais ou palavras estranhas.

    Olá Lucas,

    Obrigado por postar de volta.

    Com base na captura de tela, isso não é causado pela macro. Parece que você pode pressionar acidentalmente Alt + F9 para mostrar / alternar todos os códigos de campo do Word. Observe que o Word usa campos para fazer com que os TOCs e os links incorporados funcionem. Eu sugiro que você pressione Alt + F9 ou Shift + F9 novamente para alternar o campo. Veja se o documento agora é exibido corretamente.

    Aguardamos sua resposta. Obrigado pela vossa cooperação.

    Sinceramente

    Jorge - Brasil | Moderador da Comunidade Microsoft

    Esta resposta foi útil?

    0 comentários Sem comentários
  2. Anônima
    2024-10-17T15:00:06+00:00

    Boa tarde, amigo,

    Eu usei sua macro. A princípio pareceu funcionar, mas depois surgiu um problema no Word, que nem fechando e reinicializando resolveu. Alguns elementos do Word estão aparecendo em formato de códigos agora, como o sumário, número da página e hyperlinks.

    Esta resposta foi útil?

    0 comentários Sem comentários