La madre di tutti gli oggetti è Excel stesso. Noi lo chiamiamo l’oggetto Application. L’oggetto applicazione dà accesso a un sacco di opzioni correlate Excel.

WorksheetFunction

È possibile utilizzare la proprietà WorksheetFunction in Excel VBA per accedere alle funzioni di Excel.

  1. Ad esempio, inserire un link : / VBA-Create-a-macro # Comando-tasto [pulsante di comando] nel foglio di lavoro e aggiungere la seguente riga di codice:

Range("A3").Value = Application.WorksheetFunction.Average(Range("A1:A2"))

Quando si fa clic sul pulsante di comando del foglio di lavoro, Excel VBA calcola la media dei valori nella cella A1 e la cella A2 e colloca il risultato nella cella A3.

WorksheetFunction in Excel VBA

Nota: invece di Application.WorksheetFunction.Average, è sufficiente utilizzare WorksheetFunction.Average. Se si guarda la barra della formula, si può vedere che la formula in sé non è inserita nella cella A3. Per inserire la formula stessa nella cella A3, utilizzare la seguente riga di codice:

Range("A3").Value = "=AVERAGE(A1:A2)"

ScreenUpdating

A volte può risultare utile disabilitare l’aggiornamento dello schermo (per evitare lo sfarfallio) durante l’esecuzione del codice. Di conseguenza, il codice verrà eseguito più velocemente.

  1. Ad esempio, inserire un link : / VBA-Create-a-macro # Comando-tasto [pulsante di comando] nel foglio di lavoro e aggiungere le seguenti righe di codice:

Dim i As Integer

For i = 1 To 10000

Range("A1").Value = i

Next i

Quando si fa clic sul pulsante di comando del foglio di lavoro, Excel VBA visualizza ogni valore di una piccola frazione di secondo e questo può richiedere un certo tempo.

ScreenUpdating

  1. Per accelerare il processo, aggiornare il codice come segue.

Dim i As Integer

Application.ScreenUpdating = False

For i = 1 To 10000

Range("A1").Value = i

Next i

Application.ScreenUpdating = True

Di conseguenza, il codice verrà eseguito molto più velocemente e si vedrà solo il risultato finale (10000).

DisplayAlerts

È possibile indicare Excel VBA non avvisi di visualizzazione durante l’esecuzione del codice.

  1. Ad esempio, inserire un link : / VBA-Create-a-macro # Comando-tasto [pulsante di comando] nel foglio di lavoro e aggiungere la seguente riga di codice:

ActiveWorkbook.Close

Quando si fa clic sul pulsante di comando del foglio di lavoro, Excel VBA chiude il file di Excel e chiede di salvare le modifiche apportate.

DisplayAlerts

  1. di incaricare Excel VBA di non rendere pubbliche questo avviso durante l’esecuzione di codice, aggiornare il codice come segue.

Application.DisplayAlerts = False

ActiveWorkbook.Close

Application.DisplayAlerts = True

Di conseguenza, Excel VBA chiude il file di Excel, senza chiedere di salvare le modifiche apportate. Tutte le modifiche vengono perse.

Calcolo

Per impostazione predefinita, il calcolo è impostato su automatico. Di conseguenza, Excel ricalcola la cartella di lavoro automaticamente ogni volta che un valore che colpisce una formula modifiche. Se la cartella di lavoro contiene molte formule complesse, è possibile accelerare la macro impostando calcolo manuale.

  1. Ad esempio, inserire un link : / VBA-Create-a-macro # Comando-tasto [pulsante di comando] nel foglio di lavoro e aggiungere la seguente riga di codice:

Application.Calculation = xlCalculationManual

Quando si fa clic sul pulsante di comando del foglio di lavoro, Excel VBA imposta calcolo manuale.

  1. È possibile verificare questo facendo clic su File, Opzioni, formule.

Calculation Options

  1. Ora, quando si modifica il valore di cella A1, il valore della cella B1 non è ricalcolato.

Manual Calculation

È possibile ricalcolare manualmente la cartella di lavoro premendo F9.

  1. Nella maggior parte delle situazioni, si imposterà il calcolo in automatico di nuovo alla fine del codice. Basta aggiungere la seguente riga di codice per raggiungere questo obiettivo.

Application.Calculation = xlCalculationAutomatic