03 – Le MACRO – Formattare celle e caratteri

Stampa l'articolo

Ciao a tutti in questo post vedremo come cambiarne il colore e modificare il carattere del testo tramite una macro.

Iniziamo col dire che se vogliamo colorare una cella, il bordo o il carattere in essa contenuto possiamo farlo in due modi:

  • Indicando un ColorIndex che è un valore compreso tra 1 e 56, a cui corrisponde una scala di colori
  • Tramite la codifica RGB che si compone di tre valori numerici tra 0 e 255 che corrispondono ai colori rosso, verde e blu, il colore risultante sarà la combinazione dei tre colori nella rispettiva intensità.

A titolo d’esempio ho riportato nel foglio di Excel i primi 8 colori, così saremo in grado durante la lezione di associare l’indice al suo colore.

Nell’area di sviluppo ho creato una nuova macro che ho chiamato FORMATTAZIONE.

Partiremo col colorare una cella sfruttando i due metodi appena elencati, il comando sarà:

 Cells(1, 1).Interior.ColorIndex = 6

in questo modo diciamo ad Excel di colorare la cella A1 di colore giallo, perché l’indice di colore numero 6 corrisponde al giallo.

Facciamo partire la macro tramite il comando F8, ed eseguiamo l’istruzione appena vista, come potete vedere la cella A1 si è colorata di giallo.

 

Passiamo alla riga successiva, il comando sarà

Cells(1, 2).Interior.Color = RGB(255, 0, 0)

avendo dato il valore 255 alla componente rossa, 0 a quella verde e 0 a quella blu, il colore risultante sarà il rosso.

Come fatto prima premiamo F8, ed eseguiamo l’istruzione appena vista.

 

Con i due metodi visti pocanzi visti possiamo cambiare il colore al carattere contenuto all’interno della cella, come vedremo la parte finale dell’istruzione sarà identica, ma ovviamente cambierà l’istruzione per indicare ad Excel di selezionare il testo, infatti lo faremo tramite il l’oggetto Font

La riga sarà:

Cells(1, 3).Font.ColorIndex = 5

in questo modo il testo della cella C1 diventerà di colore blu.

Premiamo F8 per verificare, e poiché l’indice di colore 5 corrisponde al blu ecco il risultato che volevamo ottenere.

 

Con l’istruzione successiva faremo la stessa operazione appena fatta ma indicando i colori RGB.

La riga di comando sarà:

Cells(1, 4).Font.Color = RGB(0, 255, 0), avendo dato il valore 255 solo alla componente verde, il colore risultante sarà il verde.

Sempre F8 per controllare ed ecco il risultato.

Una volta imparati gli oggetti da utilizzare e capita la logica di funzionamento non sarà così difficile scrive righe di codice per modificare l’estetica di celle e caratteri.

 

Il passo successivo sarà quello di colorare i bordi di una cella.

Portiamoci per un attimo nel gruppo di comando Carattere, sul foglio di Excel

come potete vedere possiamo scegliere quale bordo vogliamo mettere ad una cella, se quello superiore inferiore e via dicendo, bene la stessa cosa possiamo, anzi dobbiamo fare con il codice VBA, portiamoci quindi alla riga successiva.

L’oggetto in questione sarà Borders e all’interno della parentesi dovremo indicare quale bordo vogliamo colorare.

L’istruzione:

Range(“E2”).Borders(xlEdgeBottom).ColorIndex = 6

dirà ad Excel di colorare il bordo inferiore della cella E2 di colore giallo, facciamo sempre F8 per verificare ed ecco che il bordo inferiore è diventato giallo.

Seguendo un criterio logico se volessimo colorare di giallo il bordo superiore il comando sarà

Range(“E2”).Borders(xlEdgeTop).ColorIndex = 6

Se Bottom era il bordo inferiore, Top sarà il bordo superiore, F8 per verifica ed ora coloriamo il bordo destro con il comando:

Range(“E2”).Borders(xlEdgeRight).ColorIndex = 6

E quello sinistro con il codice:

Range(“E2”).Borders(xlEdgeLeft).ColorIndex = 6

Sempre F8 per far avanzare la nostra macro e così facendo abbiamo colorato tutti e 4 i bordi della cella E2

 

Continuiamo andando ora a modificare il tipo di carattere, sfrutteremo ancora una volta l’oggetto Font, con l’istruzione:

Range(“A3”).Font.Bold = True

diremo di applicare il grassetto al contenuto della cella A3.

Sempre F8 ed ecco come cambia la visualizzazione del carattere.

 

Se anziché applicare il grassetto volessimo mettere il corsivo o l’italico che dir si voglia? Beh niente di più facile, in questo caso scriveremo:

Range(“B3”).Font.Italic = True

ed il contenuto della cella B3 verrà scritto in corsivo. F8 per applicare il cambiamento.

Passiamo alla riga successiva, in questo caso andremo a cambiare il tipo di carattere, per fare ciò dovremo indicare il nome del carattere voluto, ma dove andare a prendere questa informazione? Portiamoci ancora una volta nel gruppo di comando Carattere e apriamo il contenuto della tendina Tipo di carattere

l’elenco che vedere corrisponde al nome del carattere che andrà copiato pari pari all’interno dell’istruzione ricordandosi di mettere il testo tra apici.

 

Se volessimo modificare il tipo di carattere della cella C3 da Calibri ad Arial il comando sarà: Range(“C3”).Font.Name = “Arial”

 

Supponiamo ora di volere modificare la dimensione del carattere, per farlo nella cella D3 scriveremo:

Range(“D3”).Font.Size = 10

Come avrete capito il comando Size seguito dal numero non farà altro che assegnare quella data dimensione al contenuto della cella.

F8 ed il carattere contenuto nella cella D3 diventa più piccolo assumendo la dimensione 10

 

Volendo cambiare l’allineamento orizzontale del testo, portandolo a sinistra, al centro o a destra scriveremo questi comandi:

Cells(4, 1).HorizontalAlignment = xlLeft

Cells(4, 1).HorizontalAlignment = xlCenter

Cells(4, 1).HorizontalAlignment = xlRight

Ancora una volta vediamo cosa succede premendo F8, l’allineamento prima verrà fatto a sinistra perché abbiamo dato il comando xlLeft, successivamente al centro con xlCenter, ed infine a destra con xlRight.

 

Se prima abbiamo visto l’allineamento orizzontale, modificando il comando da HorizontalAlignment a VerticaAlignment andremo ad agire sull’allineamento verticale del testo contenuto all’interno della cella D3, le righe di comando saranno quindi:

Cells(3, 4).VerticalAlignment = xlTop

Cells(3, 4).VerticalAlignment = xlCenter

Cells(3, 4).VerticalAlignment = xlBottom

 

Ancora una volta sfruttiamo il nostro amato F8 e l’allineamento prima verrà fatto in alto perché abbiamo dato il comando xlTop, successivamente al centro con xlCenter, ed infine in basso con xlBottom.

 

Nel video qui sotto trovate tutti i passaggi appena illustrati, buona visione.

Condividi il post

Facebook
Twitter
LinkedIn
Email
WhatsApp

2 commenti su “03 – Le MACRO – Formattare celle e caratteri

  1. Ciao, volendo mettere il bordo alle celle C D E e F per esempio per 200 righe, come dobbiamo fare ?
    Grazie

    1. Prova ad usare queste righe di codice all’interno della Sub:
      Range(“C1:F200”).Borders(xlEdgeBottom).ColorIndex = 0
      Range(“C1:F200”).Borders(xlEdgeTop).ColorIndex = 0
      Range(“C1:F200”).Borders(xlEdgeLeft).ColorIndex = 0
      Range(“C1:F200”).Borders(xlEdgeRight).ColorIndex = 0
      Range(“C1:F200”).Borders(xlInsideVertical).ColorIndex = 0
      Range(“C1:F200”).Borders(xlInsideHorizontal).ColorIndex = 0

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Articoli correlati

Tips & Tricks

Trovare l’ultimo valore in colonna

Volete trovare l’ultimo valore presente in una colonna? Se a priori non sapete quante celle popolano la colonna o volete un metodo dinamico per conoscere l’ultimo valore, seguite questi passaggi.

Read More »
Torna su