VBA – application object excel – το αντικείμενο “μητέρα”

VBA – application object excel – το αντικείμενο “μητέρα”

VBA – application object excel

Η μητέρα όλων των αντικειμένων είναι η ίδια Excel. Aυτό το αντικείμενο το αποκαλούμε application object το οποίο δίνει πρόσβαση σε πολλές επιλογές που σχετίζονται με το Excel.

Αυτό το άρθρο προϋποθέτει ότι ο αναγνώστης διαθέτει κάποιες βασικές γνώσεις προγραμματισμού καθώς και χρήσης του Microsoft Excel.

VBA – application object – WorksheetFunction

Μπορείτε να χρησιμοποιήσετε την ιδιότητα WorksheetFunction στην VBA για Excel για να αποκτήσετε πρόσβαση σε συναρτήσεις και μεθόδους του Excel. Για παράδειγμα, δημιουργήστε ένα κουμπί εντολών στο φύλλο εργασίας σας και προσθέσετε τον παρακάτω κώδικα:

Rem υπολογισμός μέσου όρου σε μια περιοχή τιμών
Range("A3").Value = Application.WorksheetFunction.Average(Range("A1:A2"))

 Όταν κάνετε κλικ στο κουμπί εντολής στο φύλλο εργασίας, η Excel VBA υπολογίζει το μέσο όρο των τιμών στο κελί A1 και το κελί A2 και τοποθετεί το αποτέλεσμα στο κελί A3. Το αποτέλεσμα θα είναι:

vba excel - application object

Σημείωση: αντί Application.WorksheetFunction.Average, μπορείτε απλά να χρησιμοποιήστε μόνο WorksheetFunction.Average. Αν κοιτάξετε τη γραμμή τύπων στο Excel, μπορείτε να δείτε ότι ο ίδιος ο τύπος δεν εισάγεται στο κελί A3. Για να τοποθετήσετε το ίδιο τον τύπο στο κελί A3, χρησιμοποιήστε τον παρακάτω κώδικα:

Rem καταχώρηση του κώδικα εκτέλεσης
Range("A3").Value = "=AVERAGE(A1:A2)"

VBA – application object – ScreenUpdating

Μερικές φορές μπορείτε να το βρείτε χρήσιμο να απενεργοποιήσετε την ενημέρωση της οθόνης (για να αποφευχθεί π.χ. να αργεί ή να τρεμοπαίζει) κατά την εκτέλεση κώδικα.  Ως αποτέλεσμα, ο κωδικός σας θα εκτελεστεί πιο γρήγορα. Δείτε το παρακάτω παράδειγμα:

Dim i As Integer

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

Όταν κάνετε κλικ στο κουμπί εντολής στο φύλλο εργασίας, η Excel VBA εμφανίζει κάθε τιμή στο κελί για ένα μικρό κλάσμα του δευτερολέπτου και αυτό μπορεί να πάρει κάποιο τελικό συνολικό χρόνο. Για παράδειγμα, στο παρακάτω στιγμιότυπο:

vba excel - application object
Κατά την εκτέλεση θα δείτε στο κελί, να περνάνε όλα τα νούμερα από το 1 έως το 10000. Για να επιταχυνθεί η διαδικασία, ενημερώστε τον κώδικα ως εξής:

Dim i As Integer

Application.ScreenUpdating = False

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

Application.ScreenUpdating = True

Η ιδιότητα ScreenUpdating (ανανέωση απεικόνισης οθόνης) πλέον είναι απενεργοποιημένη (false). Ως αποτέλεσμα, ο κώδικα σας θα τρέξει πολύ πιο γρήγορα και θα δείτε μόνο το τελικό αποτέλεσμα (10000). Στην συνέχεια ενεργοποιείται και πάλι.

VBA – application object – DisplayAlerts

Μπορείτε να αναθέσετε στην Excel VBA να μην εμφανίζει ειδοποιήσεις κατά την εκτέλεση κώδικα. Για παράδειγμα, δημιουργήστε ένα κουμπί εντολών στο φύλλο εργασίας σας και προσθέστε τον εξής κώδικα:

Rem κλείσιμο του αρχείου
ActiveWorkbook.Close

Όταν κάνετε κλικ στο κουμπί εντολής στο φύλλο εργασίας, η Excel VBA κλείνει το αρχείο Excel και σας ζητά να αποθηκεύσετε τις αλλαγές που κάνατε:

vba excel - application object
Για να αναθέσετε στο Excel VBA να μην εμφανίζει αυτή την ειδοποίηση κατά την εκτέλεση κώδικα, ενημερώστε τον κώδικα σας, ως εξής:

Rem κλείσιμο του αρχείου
Application.DisplayAlerts = False

ActiveWorkbook.Close

Application.DisplayAlerts = True

Ως αποτέλεσμα, η Excel VBA κλείνει το αρχείο Excel, χωρίς να σας ζητά να αποθηκεύσετε τις αλλαγές που κάνατε. ΠΡΟΣΟΧΗ: Τυχόν αλλαγές χάνονται.

VBA – application object – Calculation

Από προεπιλογή, ο υπολογισμός των κελιών έχει οριστεί σε αυτόματη κατάσταση. Ως αποτέλεσμα, το Excel υπολογίζει εκ νέου το βιβλίο εργασίας αυτόματα κάθε φορά που μια τιμή επηρεάζει έναν τύπο ή άλλα κελιά ως αλλαγές. Εάν το βιβλίο εργασίας σας περιέχει πολλές σύνθετες φόρμουλες, μπορείτε να επιταχύνετε την εργασία σας με τον καθορισμό Calculation (υπολογισμού) ως ενεργό ή όχι στο Excel. Δείτε το παρακάτω παράδειγμα:

Rem απενεργοποίηση αυτόματων υπολογισμών
Application.Calculation = xlCalculationManual

Όταν κάνετε κλικ στο κουμπί εντολής στο φύλλο εργασίας, η Excel VBA θέτει τον αυτόματο υπολογισμό σε manual κατάσταση. Μπορείτε να το επιβεβαιώσετε κάνοντας κλικ στα: Αρχείο, Επιλογές, Τύποι:

vba excel - application object

Τώρα, όταν αλλάζετε την τιμή του κελιού A1, η τιμή του κελιού B1 δεν υπολογίζεται εκ νέου.

Μπορείτε να υπολογίσετε οτιδήποτε εκ νέου, πιέζοντας το πλήκτρο F9. Τέλος, στις περισσότερες περιπτώσεις, θα ορίσετε τον υπολογισμό σε αυτόματη κατάσταση και πάλι, στο τέλος του κώδικα σας. Απλά προσθέστε την ακόλουθη γραμμή κώδικα για να επιτευχθεί αυτό:

Rem εργοποίηση αυτόματων υπολογισμών
Application.Calculation = xlCalculationAutomatic

Απάντηση

Αυτός ο ιστότοπος χρησιμοποιεί το Akismet για να μειώσει τα ανεπιθύμητα σχόλια. Μάθετε πώς υφίστανται επεξεργασία τα δεδομένα των σχολίων σας.