Jennifer ha bisogno di un modo, in una macro, per trovare una stringa circondata da virgolette intelligenti o semplici (o un mix delle due). Non riesce a trovare il giusto mix di comandi per il metodo Find per individuare tutte le istanze di tale testo in tutte le versioni di Word.

È importante essere chiari su ciò che viene cercato. Il presupposto in questo suggerimento è che la tua macro richieda di cercare una stringa specific racchiusa tra virgolette, non una stringa any racchiusa tra virgolette. Ad esempio, in un documento che contiene due stringhe tra virgolette come “il mio testo tra virgolette” e “testo più tra virgolette”, vuoi trovare solo una delle stringhe di cui conosci il testo, prima del tempo, non entrambe le stringhe .

In questo caso, va bene usare il metodo Trova, come noti. La domanda è come accogliere la possibilità di citazioni sia intelligenti che semplici in ciò che cerchi. Fortunatamente, il metodo Find, per impostazione predefinita, abbina in modo intercambiabile sia le virgolette semplici che quelle intelligenti. Il punto chiave è sapere come specificare che si desidera includere le virgolette nella ricerca. Il seguente frammento di codice dovrebbe fare il trucco:

Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find     .Text = """my quoted text"""

.Format = False     .MatchWildcards = False End With Selection.Find.Execute

La chiave in questo codice è il modo in cui le informazioni vengono assegnate alla proprietà .Text. Nota che qualunque cosa tu stia cercando (in questo caso, “il mio testo citato”) è circondato da tre virgolette su ciascun lato. Il motivo è piuttosto arcano: la stringa che stai cercando deve essere racchiusa tra virgolette; questo è richiesto da VBA. Questo è mostrato qui:

"my quoted text"

Poiché si desidera un carattere di virgoletta effettivo all’inizio di ciò che si sta cercando, è necessario includere una seconda virgoletta come “delimitatore” per indicare che si desidera trovare il carattere di virgoletta. Ciò significa che ora ci sono tre virgolette all’inizio:

"""my quoted text"

La stessa tecnica di virgolette aggiuntive come delimitatore si applica anche alla fine della stringa, quindi si finisce con ciò che viene mostrato nello snippet di codice.

Quando il codice viene eseguito, Word trova diligentemente la stringa, circondata da qualsiasi combinazione di virgolette semplici o intelligenti, come desiderato.

Va inoltre notato che questo approccio funziona solo se si esegue una ricerca regolare, con la proprietà .MatchWildcards impostata su False.

_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 (11638) si applica a Microsoft Word 97, 2000, 2002 e 2003. È possibile trovare una versione di questo suggerimento per l’interfaccia a nastro di Word (Word 2007 e più tardi) qui: