/ / Oggetto applicazione VBA di Excel

Oggetto applicazione VBA di Excel

WorksheetFunction | ScreenUpdating | DisplayAlerts | Calcolo

La madre di tutti gli oggetti è Excel stesso. Noi lo chiamiamo il Oggetto dell'applicazione. L'oggetto dell'applicazione consente di accedere a molte delle opzioni correlate a Excel.

WorksheetFunction

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

1. Ad esempio, posiziona un pulsante di comando sul foglio di lavoro e aggiungi la seguente riga di codice:

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

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

Foglio di lavoroFunzione in VBA di Excel

Nota: invece di Application.WorksheetFunction.Media, usa semplicemente WorksheetFunction.Average. Se osservi la barra della formula, puoi vedere che la formula stessa 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 potresti trovare utile disabilitare l'aggiornamento dello schermo (per evitare lo sfarfallio) durante l'esecuzione del codice. Di conseguenza, il tuo codice verrà eseguito più velocemente.

1. Ad esempio, posiziona un pulsante di comando sul foglio di lavoro e aggiungi le seguenti linee 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 nel foglio di lavoro, VBA di Excel visualizza ogni valore una piccola frazione di secondo e questo può richiedere del tempo.

ScreenUpdating

2. 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 vedrai solo il risultato finale (10000).

DisplayAlerts

Puoi indicare a VBA di Excel di non visualizzare gli avvisi durante l'esecuzione del codice.

1. Ad esempio, posiziona un pulsante di comando sul foglio di lavoro e aggiungi la seguente riga di codice:

ActiveWorkbook.Close

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

DisplayAlerts

2. Per indicare a VBA di Excel di non visualizzare questo avviso durante l'esecuzione del codice, aggiornare il codice come segue.

Application.DisplayAlerts = False

ActiveWorkbook.Close

Application.DisplayAlerts = True

Di conseguenza, Excel VBA chiude il tuo file Excel, senza chiedere di salvare le modifiche apportate. Eventuali modifiche sono perse.

Calcolo

Per impostazione predefinita, il calcolo è impostato su automatico. Di conseguenza, Excel ricalcola automaticamente la cartella di lavoro ogni volta che cambia un valore che influenza una formula. Se la tua cartella di lavoro contiene molte formule complesse, puoi velocizzare la tua macro impostando il calcolo su manuale.

1. Ad esempio, posiziona un pulsante di comando sul foglio di lavoro e aggiungi la seguente riga di codice:

Application.Calculation = xlCalculationManual

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

2. È possibile verificare ciò facendo clic su File, Opzioni, Formule.

Opzioni di calcolo

3. Ora quando si modifica il valore della cella A1, il valore della cella B1 non viene ricalcolato.

Calcolo manuale

È possibile ricalcolare manualmente la cartella di lavoro premendo F9.

4. Nella maggior parte dei casi, si imposterà nuovamente il calcolo alla fine del codice. Basta aggiungere la seguente riga di codice per ottenere ciò.

Application.Calculation = xlCalculationAutomatic
Leggi anche: