Quando modifichi una cella in Excel, hai accesso a molti dei pulsanti della barra degli strumenti di formattazione che possono rendere un po’ più semplice la formattazione della cella. Ad esempio, puoi utilizzare gli strumenti Grassetto o Corsivo per modificare questi due attributi per qualsiasi testo selezionato in una cella. Ad un certo punto potresti voler creare altri pulsanti della barra degli strumenti per gestire altre formattazioni, come l’applicazione di apici o pedici.
Excel, tuttavia, non ti consente di creare i tuoi strumenti di formattazione e di averli accessibili durante la modifica di una cella. Questo perché Excel “disattiva” tutte le macro definite dall’utente mentre si esegue la modifica. Ti rimane la formattazione del contenuto della cella premendo Ctrl+1 per visualizzare direttamente la finestra di dialogo Formato celle.
Tuttavia, esiste un modo “subdolo” che puoi utilizzare per creare i tuoi strumenti di formattazione. Ciò comporta l’uso di moduli utente e VBA per creare la propria “finestra di dialogo” di formattazione (lo so, questa non è davvero una finestra di dialogo, ma un modulo). Creare il proprio modulo utente non è terribilmente difficile, ma non è per i deboli di cuore quando si tratta di macro. Segui questi passaggi per creare il tuo modulo:
- Premi Alt+F11 per visualizzare l’editor VBA.
- Nell’editor VBA, scegli UserForm dal menu Inserisci. Viene visualizzato un nuovo form vuoto, insieme alla casella degli strumenti del form.
- Seleziona il form e modifica la sua proprietà (Name) con “frmFormatoCarattere” e la sua proprietà Caption con “Formato carattere”.
- Utilizzando i controlli nella casella degli strumenti, aggiungi tre controlli CommandButton (Pulsante di comando) nella parte superiore del form.
- Modifica le proprietà per il controllo CommandButton sinistro in modo che il suo Nome sia “btnSuper” e la sua Caption sia “Apice”.
- Modifica le proprietà per il controllo CommandButton centrale in modo che il suo Nome sia “btnSub” e la sua Caption sia “Pedice”.
- Modifica le proprietà per il controllo CommandButton destro in modo che il suo Nome sia “btnNormal” e la sua Caption sia “Normale”.
- Appena sotto i tre pulsanti, aggiungi un controllo TextBox (Casella di testo). Non è necessario modificare alcuna proprietà per questo controllo.
- Appena sotto il controllo TextBox, aggiungi un quarto controllo CommandButton.
- Modifica le proprietà di quest’ultimo controllo CommandButton in modo che il suo Nome sia “btnExit” e la sua Caption sia “Esci”.
Questo è tutto; hai creato il tuo form utente e sei pronto per associare il codice della macro ai controlli appena inseriti. Con il form utente selezionato, premi F7 per visualizzare la finestra del codice per il form. La finestra può contenere una o due righe di codice generato automaticamente. Sostituiscilo con il seguente codice:
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)
Chiudi la finestra del codice per il form utente e chiudi la finestra del form stesso. Ora devi creare una macro molto breve che mostrerà lo UserForm. Questa macro va creata come la maggior parte delle macro di Excel, all’interno di un Modulo e dovrebbe assomigliare a questa:
Sub DoForm()
frmFormatoCarattere.Show
End Sub
Ora puoi chiudere la finestra dell’editor VBA. Per utilizzare la macro, seleziona la cella che desideri modificare, quindi esegui la macro DoForm. Excel mostra lo UserForm, che contiene il testo presente nella cella selezionata. È quindi possibile selezionare il testo all’interno del form e utilizzare i pulsanti (Apice, Pedice e Normale) per modificare la formattazione del contenuto effettivo della cella. La macro influisce sul contenuto della cella, non sul contenuto del form. Pertanto, è utile poter vedere contemporaneamente sia la cella selezionata che il form sullo schermo.
