Visualizzazione di un conteggio parole in tempo reale (Microsoft Word)
Word visualizza, sulla barra di stato, una serie di informazioni che possono aiutarti durante la scrittura. Ad esempio, la barra di stato mostra il numero di pagine nel documento e il numero di riga nella pagina corrente. Una cosa che sarebbe utile è se la barra di stato mostrasse il numero di parole nel documento, mentre digiti.
Tuttavia, tale funzionalità non è incorporata in Word. La barra di stato non è riconfigurabile tramite una macro, se non per mostrare o nascondere l’intera barra o scrivere un messaggio su di essa. Codificare una macro che scrive continuamente un messaggio sulla barra di stato significherebbe che le normali informazioni non sarebbero state mostrate, quindi una soluzione che utilizza la barra di stato probabilmente non è accettabile.
È possibile scrivere una macro che controlli continuamente il conteggio delle parole in un documento e quindi visualizzare il risultato in un’altra area del documento, come la barra del titolo o un pulsante della barra degli strumenti. A seconda del tipo di sistema in uso, una tale soluzione potrebbe non essere accettabile; dovrai condurre alcuni test per vedere se lo è. Il codice interno per calcolare il conteggio delle parole per un documento è piuttosto lento, soprattutto quando i documenti diventano più grandi. Ciò significa che controllare costantemente il conteggio delle parole potrebbe rallentare l’intero sistema, forse in misura inaccettabile.
Con questo avvertimento in mente, considera il seguente insieme di macro:
Sub AutoExec() NumberOfWords End Sub Sub NumberOfWords() Dim lngWords As Long Dim myRange As Range With Word.Application If .Windows.Count > 0 Then Set myRange = ActiveDocument.Content lngWords = myRange.ReadabilityStatistics(1).Value .Caption = Format(lngWords, "##,##0") & " words - Microsoft Word" Else .Caption = "Microsoft Word" End If .OnTime Now + TimeValue(OnTm(lngWords)), "NumberOfWords" End With End Sub Private Function OnTm(ByVal lngWd As Long) As String Select Case lngWd \ 1000 Case 0 To 10 OnTm = "00:00:01" Case 11 To 20 OnTm = "00:00:05" Case 21 To 30 OnTm = "00:00:10" Case 31 To 40 OnTm = "00:00:15" Case Else OnTm = "00:00:20" End Select End Function
Ci sono tre macro incluse in questo set, ognuna delle quali svolge un’attività diversa. La prima macro, denominata AutoExec, verrà eseguita automaticamente all’avvio di Word. Il suo unico scopo è chiamare la prossima macro, NumberOfWords, per la prima volta.
La macro NumberOfWords è il cavallo di battaglia di questo set. Verifica se ci sono finestre aperte in Word. In tal caso, chiama la codifica interna di Word per determinare il numero di parole nel documento. Quindi formatta l’output e lo visualizza sulla barra del titolo della finestra.
Se non ci sono finestre aperte, la macro visualizza semplicemente “Microsoft Word” sulla barra del titolo.
L’ultima cosa che fa NumberOfWords è dire a se stesso quando eseguire di nuovo. Lo fa utilizzando la funzione OnTime di VBA, impostando il tempo di riavvio entro i prossimi 20 secondi. È qui che entra in gioco la terza macro, OnTm. Esamina il numero di parole nel documento corrente e determina l’intervallo tra le esecuzioni della macro NumberOfWords. Se il documento contiene 10.000 parole o meno, la macro viene eseguita ogni secondo. Se ci sono da 11.000 a 20.000 parole, viene eseguito ogni cinque secondi e così via.
Il motivo di questo controllo è stato spiegato in precedenza in questo suggerimento: il calcolo del conteggio delle parole e la formattazione delle informazioni sulla barra del titolo possono richiedere del tempo (nella terminologia VBA) e se il documento è di grandi dimensioni, ciò può causare ritardi indesiderati e evidenti nell’aggiornamento del documento. Puoi, se lo desideri, giocare con la codifica nella funzione OnTm per determinare la migliore ripartizione del ritardo per i tipi di documenti che usi.
_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 (1608) si applica a Microsoft Word 97, 2000, 2002 e 2003.