Conteggio parole per intestazioni e piè di pagina (Microsoft Word)
Kate ha bisogno di generare un conteggio delle parole solo per le intestazioni e i piè di pagina in un documento, e non sa come farlo.
Non esiste un modo automatico per farlo, ma puoi sviluppare una macro che calcolerà il conteggio. VBA ti consente di scorrere facilmente le intestazioni in ogni sezione del tuo documento e quindi puoi determinare quante parole ci sono in ciascuna intestazione. Un approccio consiste nell’usare una macro come la seguente:
Sub CntHeaderWords() Dim s As Section Dim h As HeaderFooter Dim sRaw As String Dim Cnt As Long Dim J As Integer Cnt = 0 For Each s In ActiveDocument.Sections For Each h In s.Headers For J = 1 To h.Range.Words.Count sRaw = h.Range.Words(J) sRaw = Trim(sRaw) If sRaw = vbCrLf Then sRaw = "" If sRaw = vbCr Then sRaw = "" If sRaw = vbLf Then sRaw = "" If Len(sRaw) > 0 Then Cnt = Cnt + 1 Next J Next h Next s MsgBox Cnt & " words in headers" End Sub
Quando si esegue questa macro, passa attraverso ogni sezione del documento e quindi ogni intestazione in quella sezione. Il conteggio delle parole viene determinato per ciascuna intestazione e viene aggiunto alla variabile Cnt. Quando la macro è completa, visualizza il conteggio delle parole per le intestazioni del documento.
Ci sono un paio di cose interessanti da notare su questa macro.
Innanzitutto, poiché puoi determinare una proprietà Count per la raccolta Words per ogni intestazione, potresti pensare di poter semplicemente aggiungere tutti quei conteggi insieme per determinare il conteggio delle parole complessivo. Il problema è che anche se non è presente alcuna intestazione per una sezione, Word restituisce un conteggio parole pari a 1 per un’intestazione “implicita”. Ecco perché la macro esamina effettivamente ogni parola nell’intestazione e se non è altro che un ritorno a capo o un avanzamento riga, non viene inclusa nel conteggio.
Un altro elemento da notare è che se hai segni di punteggiatura nell’intestazione, ogni segno di punteggiatura conta come una parola. Ad esempio, se hai l’intestazione “Tutti i diritti riservati”, Word considera che siano tre parole. Se l’intestazione è “Tutti i diritti riservati”. (con il punto finale), quindi Word considera che siano quattro parole. Il risultato è che se pensi che ci possa essere punteggiatura nelle tue intestazioni, allora potresti voler regolare il codice della macro per non contare la punteggiatura.
Questa macro restituisce solo un conteggio delle parole per le intestazioni in un documento. Se invece vuoi che una parola conti sia per le intestazioni che per i piè di pagina, puoi modificare la macro in questo modo:
Sub CntHFWords() Dim s As Section Dim h As HeaderFooter Dim f As HeaderFooter Dim sRaw As String Dim HdCnt As Long Dim FtCnt As Long Dim J As Integer HdCnt = 0 FtCnt = 0 For Each s In ActiveDocument.Sections For Each h In s.Headers For J = 1 To h.Range.Words.Count sRaw = h.Range.Words(J) sRaw = Trim(sRaw) If sRaw = vbCrLf Then sRaw = "" If sRaw = vbCr Then sRaw = "" If sRaw = vbLf Then sRaw = "" If Len(sRaw) > 0 Then HdCnt = HdCnt + 1 Next J Next h For Each f In s.Footers For J = 1 To f.Range.Words.Count sRaw = f.Range.Words(J) sRaw = Trim(sRaw) If sRaw = vbCrLf Then sRaw = "" If sRaw = vbCr Then sRaw = "" If sRaw = vbLf Then sRaw = "" If Len(sRaw) > 0 Then FtCnt = FtCnt + 1 Next J Next f Next s sRaw = "Header words: " & HdCnt & vbCrLf sRaw = sRaw & "Footer words: " & FtCnt & vbCrLf sRaw = sRaw & "Total words: " & HdCnt + FtCnt MsgBox sRaw End Sub
Questa versione della macro applica la stessa identica tecnica di conteggio a ogni piè di pagina come a ciascuna intestazione, visualizzando i conteggi individuali e totali alla fine della macro.
_Nota: _
Se desideri sapere come utilizzare le macro descritte in questa pagina (o in qualsiasi altra pagina dei siti WordTips), ho preparato una pagina speciale che include informazioni utili.
WordTips è la tua fonte di formazione economica su Microsoft Word.
(Microsoft Word è il software di elaborazione testi più popolare al mondo.) Questo suggerimento (10285) si applica a Microsoft Word 2007, 2010 e 2013.