Controllo delle virgolette mancanti (Microsoft Word)
David è uno scrittore e usa molto l’ortografia, lo stile e i correttori grammaticali di Word. A volte scopre che i suggerimenti di Word, per correggere la grammatica, sono sbagliati e ha imparato a ignorarli. Una cosa con cui ha problemi è l’uso delle virgolette intorno al dialogo.
Word non riconosce se David ha lasciato le virgolette alla fine o all’inizio di una frase. Si ricorda di aver utilizzato un programma di elaborazione testi anni fa che ha lasciato virgolette verdi sul documento per indicare una virgoletta mancante. Si chiede se è possibile fare in modo che Word riconosca le virgolette mancanti.
Non c’è modo di farlo in modo nativo all’interno di Word. Il motivo probabilmente si riduce al fatto che è quasi impossibile determinare dove dovrebbe iniziare e finire una citazione. Ad esempio, se hai un paragrafo che contiene quattro frasi e inserisci una virgoletta da qualche parte all’interno di quel paragrafo, come può Word determinare se quel segno designa l’inizio o la fine di una citazione? Se è l’inizio, come saprebbe Word se il segno di fine dovrebbe essere alla fine della frase, alla fine della seconda frase o alla fine del paragrafo? (Lo stesso enigma si verifica se la citazione è la citazione finale, ma la perplessità sul posizionamento si estende a sinistra invece che a destra.)
Combina questa potenziale confusione con il fatto che le virgolette di chiusura potrebbero non essere nemmeno nel paragrafo corrente – potrebbe essere alla fine di qualche paragrafo successivo quando la finestra di dialogo contrassegnata termina effettivamente.
Potresti, tuttavia, sviluppare una macro che farebbe almeno alcuni controlli elementari per te. La seguente macro salta all’inizio del documento e cerca la prima virgoletta. Quindi esamina tutto, da quel personaggio alla fine del paragrafo. Se stai usando virgolette non intelligenti, fondamentalmente controlla se c’è un numero pari di virgolette. Se stai usando le virgolette intelligenti, controlla se c’è una citazione finale per ogni citazione iniziale. Se una delle due condizioni risulta falsa, il testo viene evidenziato.
Sub MarkUnevenQuotes() Dim sRaw As String Dim iNorm As Integer Dim iSmart As Integer Dim J As Long Selection.HomeKey Unit:=wdStory Application.ScreenUpdating = False Selection.Find.ClearFormatting With Selection.Find .Text = """" .Replacement.Text = "" .Forward = True .Wrap = wdFindStop .Format = True .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute While Selection.Find.Found Selection.MoveDown Unit:=wdParagraph, Count:=1, Extend:=wdExtend Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend sRaw = Selection.Text iNorm = 0 iSmart = 0 For J = 1 To Len(sRaw) If Mid(sRaw, J, 1) = Chr(34) Then If iNorm > 0 Then iNorm = iNorm - 1 Else iNorm = iNorm + 1 End If End If If Mid(sRaw, J, 1) = Chr(147) Then iSmart = iSmart + 1 End If If Mid(sRaw, J, 1) = Chr(148) Then iSmart = iSmart - 1 End If Next J If iNorm > 0 Or iSmart > 0 Then Selection.Range.HighlightColorIndex = wdYellow End If Selection.Collapse Direction:=wdCollapseEnd Selection.Find.Execute Wend Selection.HomeKey Unit:=wdStory Application.ScreenUpdating = True End Sub
Quando la macro è terminata, ciò che si ottiene è un mucchio di selezioni di testo evidenziate se devono essere controllate visivamente. La macro, tuttavia, non troverà le virgolette finali esterne al paragrafo in cui ricorre la prima virgoletta.
_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 (13293) si applica a Microsoft Word 2007, 2010, 2013, 2016 e Word in Office 365.