Determinare se una cella è in grassetto

Dario si chiede se esista una funzione di Excel per indicare se il contenuto di una cella è in grassetto. Può trovare altre funzioni informative, come VAL.VUOTO, ma non riesce a trovarne una che indichi se la cella è in grassetto.

Non esiste una funzione VAL.GRASSETTO integrata in Excel.

Un approccio possibile sarebbe quello di creare una funzione definita dall’utente in VBA che potrebbe essere chiamata dal foglio di lavoro. Ecco una versione semplice di tale UDF:

Questo contenuto è riservato agli abbonati

Solo gli utenti con Abbonamento VBA Coder oppure Ultimate possono visionarlo.

Se sei già abbonato Accedi per sbloccare il contenuto!

In caso contrario abbonati qui! L'abbonamento è conveniente.

E puoi interromperlo in ogni momento e in completa autonomia.

(puoi renderti conto di quanti siano i contenuti riservati

raggiungendo questa pagina)

Per usarla nel tuo foglio di lavoro, dovresti procedere in questo modo:

=SE(CheckBold(A1); "Grassetto"; "Non Grassetto")

La funzione CheckBold si aggiornerà solo quando il foglio di lavoro viene ricalcolato, non se applichi semplicemente la formattazione in grassetto o lo rimuovi dalla cella A1.

Questo approccio può funzionare per la maggior parte delle istanze, ma è necessario comprendere che la proprietà Bold può effettivamente avere tre possibili impostazioni: True, False e Null. La proprietà è impostata su False se nessuno dei caratteri nella cella è in grassetto. È impostata su True se sono tutti in grassetto. Infine, è impostato su Null se solo alcuni dei caratteri nella cella sono in grassetto. Se pensi di poterti imbattere in questa situazione, dovrai modificare la funzione CheckBold:

Questo contenuto è riservato agli abbonati

Solo gli utenti con Abbonamento VBA Coder oppure Ultimate possono visionarlo.

Se sei già abbonato Accedi per sbloccare il contenuto!

In caso contrario abbonati qui! L'abbonamento è conveniente.

E puoi interromperlo in ogni momento e in completa autonomia.

(puoi renderti conto di quanti siano i contenuti riservati

raggiungendo questa pagina)

Si noti che la funzione ora restituisce un valore, da 0 a 2. Se restituisce 0, non è presente il grassetto nella cella. Se restituisce 1, l’intera cella è in grassetto. Se restituisce 2, nella cella è presente un grassetto parziale.

Tags: , , ,

Ti è stato utile?