Ci sono molte volte durante la scrittura di macro in cui sarà necessario determinare se l’utente ha effettuato una selezione. Ci sono molti modi per farlo in una macro. Il codice seguente illustra un possibile metodo per eseguire ciò in VBA. Imposta il valore di un flag, bInSelection, su True se è attualmente presente una selezione. In caso contrario, bInSelection è impostato su False.

Dim bInSelection As Boolean

bInSelection = False If Selection.Type=wdSelectionIP Then     bInselection=True End If

Potresti chiederti se potresti usare un approccio per controllare se la lunghezza della selezione è maggiore di zero, come in questo metodo:

Dim bInSelection As Boolean

bInSelection = False If Len(Selection) > 0 Then     bInselection=True End If

Questo approccio non funzionerà. Il motivo è perché quando non viene effettuata alcuna selezione (il punto di inserimento è compresso e lampeggia solo), Word restituisce comunque una lunghezza di selezione pari a 1. Questo è un po ‘fastidioso in quanto non ha senso logico. Pertanto, è necessario controllare la proprietà Type dell’oggetto Selection, come nel primo esempio sopra. Se vuoi accorciarlo ulteriormente, potresti usare quanto segue:

Dim bInSelection As Boolean

bInselection=(Selection.Type=wdSelectionIP)

_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 (12175) 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: