/ / Excel Application Object VBA

Excel Application Object VBA

WorksheetFunction | ScreenUpdating | DisplayAlerts | Obliczenie

Matką wszystkich obiektów jest sam Excel. Nazywamy to Obiekt aplikacji. Obiekt aplikacji daje dostęp do wielu opcji związanych z programem Excel.

WorksheetFunction

Możesz użyć właściwości WorksheetFunction w Excel VBA aby uzyskać dostęp do funkcji programu Excel.

1. Na przykład umieść przycisk polecenia w arkuszu i dodaj następującą linię kodu:

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

Po kliknięciu przycisku polecenia w arkuszu kalkulacyjnym Excel VBA oblicza średnią wartości z komórki A1 i komórki A2 i umieszcza wynik w komórce A3.

WorksheetFunction w Excel VBA

Uwaga: zamiast Application.WorksheetFunction.Średnia, po prostu użyj WorksheetFunction.Average. Jeśli spojrzysz na pasek formuły, zobaczysz, że sama formuła nie jest wstawiona do komórki A3. Aby wstawić samą formułę do komórki A3, użyj następującej linii kodu:

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

ScreenUpdating

Czasami może okazać się przydatne wyłączenie aktualizacji ekranu (aby uniknąć migotania) podczas wykonywania kodu. W rezultacie Twój kod będzie działał szybciej.

1. Na przykład umieść przycisk polecenia w arkuszu i dodaj następujące linie kodu:

Dim i As Integer

For i = 1 To 10000
    Range("A1").Value = i
Next i

Po kliknięciu przycisku polecenia w arkuszu kalkulacyjnym program Excel VBA wyświetla każdą wartość w ułamku sekundy, co może trochę potrwać.

ScreenUpdating

2. Aby przyspieszyć proces, zaktualizuj kod w następujący sposób.

Dim i As Integer

Application.ScreenUpdating = False

For i = 1 To 10000
    Range("A1").Value = i
Next i

Application.ScreenUpdating = True

W rezultacie twój kod będzie działał znacznie szybciej, a zobaczysz tylko wynik końcowy (10000).

DisplayAlerts

Możesz nakazać programowi Excel VBA, aby nie wyświetlał alertów podczas wykonywania kodu.

1. Na przykład umieść przycisk polecenia w arkuszu i dodaj następującą linię kodu:

ActiveWorkbook.Close

Po kliknięciu przycisku polecenia w arkuszu kalkulacyjnym program Excel VBA zamyka plik programu Excel i prosi o zapisanie wprowadzonych zmian.

DisplayAlerts

2. Aby polecenie Excel VBA nie wyświetlać tego alertu podczas wykonywania kodu, zaktualizuj kod w następujący sposób.

Application.DisplayAlerts = False

ActiveWorkbook.Close

Application.DisplayAlerts = True

W rezultacie program Excel VBA zamyka plik programu Excel bez pytania o zapisanie wprowadzonych zmian. Wszelkie zmiany zostaną utracone.

Obliczenie

Domyślnie obliczenie jest ustawione na automatyczne. W rezultacie program Excel ponownie oblicza skoroszyt automatycznie za każdym razem, gdy zmienia się wartość wpływająca na formułę. Jeśli Twój skoroszyt zawiera wiele złożonych formuł, możesz przyspieszyć działanie makra, ustawiając obliczenia na ręczne.

1. Na przykład umieść przycisk polecenia w arkuszu i dodaj następującą linię kodu:

Application.Calculation = xlCalculationManual

Po kliknięciu przycisku polecenia w arkuszu kalkulacyjnym Excel VBA ustawia obliczenia na ręczne.

2. Możesz to sprawdzić, klikając Plik, Opcje, Formuły.

Opcje obliczeń

3. Teraz, gdy zmienisz wartość komórki A1, wartość komórki B1 nie zostanie ponownie obliczona.

Ręczna kalkulacja

Możesz ponownie obliczyć skoroszyt, naciskając klawisz F9.

4. W większości sytuacji ustawisz automatyczne przeliczanie na końcu kodu. Po prostu dodaj następującą linię kodu, aby to osiągnąć.

Application.Calculation = xlCalculationAutomatic
Przeczytaj również: