Come utilizzare l'istruzione with vba nidificata?

Punti chiave

  • Utilizzare l’istruzione VBA With per ridurre al minimo il codice.
  • È possibile utilizzare un solo oggetto alla volta quando si utilizza l’istruzione With.

Cos’è VBA con dichiarazione

VBA With è un’istruzione per specificare un oggetto una volta e quindi eseguire più istruzioni per esso. In parole semplici, utilizzando l’istruzione “WITH” per specificare un oggetto, dopodiché è possibile accedere a tutte le proprietà e ai metodi in una volta sola. Inizia con “Con” e termina con “Finisci con”.

Sintassi di VBA con istruzione

Ecco la sintassi che devi utilizzare per utilizzare l’istruzione With in VBA:

 With [OBJECT] [Statement] End With
vba-sintassi-con-istruzione
  1. With : questa è la parola chiave iniziale dell’istruzione che indica a VBA che stai specificando l’oggetto menzionato.
  2. Oggetto : qui devi specificare l’oggetto che desideri utilizzare.
  3. Istruzione : una o più istruzioni che si desidera eseguire con l’oggetto specificato.
  4. End With : questa è la parola chiave finale dell’istruzione.

Esempio per comprendere VBA con Statement

Facciamo un esempio per capire con l’approfondimento. Supponiamo che tu voglia cambiare il colore, la dimensione e il nome del carattere della cella A1. Per fare queste tre cose devi accedere a tre diverse proprietà dei caratteri VBA e il codice sarebbe:

 Range("A1").Font.Color = RGB(0, 0, 255) Range("A1").Font.Size = 16 Range("A1").Font.Name = "Consolas"

Ma qui utilizzeremo l’istruzione With invece del codice precedente. Per utilizzare l’istruzione With VBA, è possibile seguire i seguenti passaggi:

  1. Per prima cosa digita sulla tastiera “Con”.
  2. Successivamente, utilizza l’intervallo VBA per specificare la cella A1 utilizzando l’oggetto carattere per specificare l’oggetto carattere.
    use-the-vba-range
  3. Successivamente, devi inserire il codice per le tre proprietà e i valori che desideri applicare.
    code-for-all-three-properties
  4. Alla fine, usa la parola chiave “End With” per terminare l’affermazione.
    end-with-to-end-the-statement

Ecco il codice che hai appena scritto.

 Sub MyMacro() With Range("A1").Font .Color = RGB(0, 0, 255) .Size = 16 .Name = "Consolas" End With End Sub

Ora diamo un’occhiata ad entrambi i codici e proviamo a capire qual è la differenza che abbiamo usando l’istruzione “With”.

guarda-i-due-codici

Nel primo codice hai utilizzato l’oggetto font tre volte e poi hai utilizzato la proprietà a cui desideri accedere e a cui desideri apportare modifiche.

Ma nel secondo codice hai utilizzato l’istruzione With e hai immediatamente specificato l’oggetto font. E poi tre righe di codice nell’istruzione “With” per accedere alle tre proprietà.

Quando usi l’istruzione “With” e specifichi un oggetto, dice a VBA che tutte le istruzioni che hai scritto dovrebbero essere eseguite con l’oggetto menzionato. Questo non solo ti dà un codice strutturato, ma accelera anche l’esecuzione di una macro e le conferisce una maggiore efficienza.

Nidificato con istruzione

All’inizio ti ho detto che puoi specificare solo un oggetto per utilizzare l’istruzione With. Ma c’è un modo per utilizzare più di uno o anche più elementi con esso. Questo utilizza VBA LOOPS e utilizzeremo FOR EACH LOOP per scorrere più oggetti e utilizzare il “Con”.

Lasciate che vi faccia un esempio; devi esaminare tutti i fogli di lavoro e applicare tutte le seguenti cose a tutte le celle di ciascun foglio di lavoro.

  • Dimensione carattere: 16
  • Carattere: Verdena

E nella cartella di lavoro hai cinque fogli di lavoro, come nell’esempio seguente:

annidato con istruzione

Utilizzare la procedura seguente per scrivere un’istruzione “With” nidificata.

  1. Innanzitutto, devi dichiarare una variabile per utilizzare un oggetto del foglio di lavoro.
    steps-to-write-nested
  2. Dopodiché, come ho detto, devi usare For Each Loop . Quindi è necessario scrivere un codice con il ciclo che possa scorrere tutti i fogli di lavoro .
    write-code-with-the-loop
  3. Ora inserisci l’istruzione with che può applicare l’impostazione del carattere di cui abbiamo discusso in precedenza. Per fare riferimento a tutte le celle del foglio di lavoro, è possibile utilizzare “Celle” mentre si specifica l’oggetto.
    use-cells-while-specifing-the-object

Ecco il codice completo che hai appena scritto.

 Sub MyMacro() Dim ws As Worksheet For Each ws In ActiveWorkbook.Worksheets With Cells .Font.Size = 16 .Font.Name = "Verdena" End With Next ws End Sub

Aggiungi un commento

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