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, in anticipo, non entrambe .

In questo caso, va bene usare il metodo Find, 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 le virgolette sia semplici che intelligenti in modo intercambiabile. 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 un secondo segno di 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 (11639) si applica a Microsoft Word 2007, 2010, 2013, 2016, 2019 e Word in Office 365. Puoi trovare una versione di questo suggerimento per vecchia interfaccia del menu di Word qui: