Παραδείγματα χρήσης vba. Δείγματα προβλημάτων Visual Basic for Application Βοήθεια εκπαιδευτή VBA

Τα ακόλουθα απλά παραδείγματα μακροεντολών του Excel επεξηγούν ορισμένες από τις δυνατότητες και τις τεχνικές που περιγράφονται στο σεμινάριο του Excel VBA.

Μακροεντολή Excel: Παράδειγμα 1

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

"Η διαδικασία Sub αναζητά ένα κελί που περιέχει την καθορισμένη συμβολοσειρά "στην περιοχή των κελιών A1:A100 του ενεργού φύλλου Sub Find_String(sFindText As String) Dim i As Integer "Ένας ακέραιος αριθμός τύπου Integer, που χρησιμοποιείται σε έναν βρόχο For Dim iRowNumber Ως ακέραιος "Ένας ακέραιος τύπου Integer για την αποθήκευση του αποτελέσματος iRowNumber = 0 "Ψάχνει μέσα από τα κελιά A1:A100 ένα προς ένα μέχρι να βρεθεί η συμβολοσειρά sFindText For i = 1 έως 100 If Cells(i, 1).Value = sFindText Then " Εάν βρεθεί αντιστοίχιση με την καθορισμένη συμβολοσειρά " αποθηκεύστε τον αριθμό της τρέχουσας σειράς και βγείτε από τον βρόχο Για iRowNumber = i Έξοδος για Τέλος Εάν Επόμενο i "Ενημερώστε τον χρήστη σε ένα αναδυόμενο παράθυρο εάν έχει βρεθεί η απαιτούμενη σειρά "Εάν βρέθηκε η καθορισμένη σειρά, υποδείξτε σε ποιο κελί βρίσκεται η αντιστοίχιση Εάν iRowNumber = 0 Τότε MsgBox "Row" & sFindText & " not found" Else MsgBox "Row" & sFindText & " βρέθηκαν στο κελί A" & iRowNumber End If End Sub

Μακροεντολή Excel: Παράδειγμα 2

Επόμενη διαδικασία Υπο– παράδειγμα χρήσης βρόχου Κάνετε Ενώ. Μπορείτε επίσης να δείτε πώς δηλώνονται οι μεταβλητές, δουλεύοντας με αναφορές κελιών του Excel και χρησιμοποιώντας μια πρόταση υπό όρους. Αν.

"Η διαδικασία Sub εξάγει αριθμούς Fibonacci που δεν υπερβαίνουν το 1000 Sub Fibonacci() Dim i As Integer "Ένας μετρητής που δείχνει τη θέση ενός στοιχείου στην ακολουθία Dim iFib As Integer "Αποθηκεύει την τρέχουσα τιμή της ακολουθίας Dim iFib_Next ως ακέραιος "Αποθηκεύει το επόμενη τιμή της ακολουθίας Dim iStep As Integer "Αποθηκεύει το μέγεθος της επόμενης προσαύξησης "Αρχικοποίηση των μεταβλητών i και iFib_Next i = 1 iFib_Next = 0 "Ο βρόχος Do while θα εκτελεστεί έως ότου η τιμή του "τρέχοντος αριθμού Fibonacci υπερβεί το 1000 Do while iFib_Next< 1000 If i = 1 Then "Особый случай для первого элемента последовательности iStep = 1 iFib = 0 Else "Сохраняем размер следующего приращения перед тем, как перезаписать "текущее значение последовательности iStep = iFib iFib = iFib_Next End If "Выводим текущее число Фибоначчи в столбце A активного рабочего листа "в строке с индексом i Cells(i, 1).Value = iFib "Вычисляем следующее число Фибоначчи и увеличиваем индекс позиции элемента на 1 iFib_Next = iFib + iStep i = i + 1 Loop End Sub

Μακροεντολή Excel: Παράδειγμα 3

Αυτή η διαδικασία Υποσαρώνει τα κελιά μιας στήλης ΕΝΑενεργό φύλλο μέχρι να συναντήσει ένα κενό κελί. Οι τιμές γράφονται σε έναν πίνακα. Αυτή η απλή μακροεντολή του Excel δείχνει την εργασία με δυναμικούς πίνακες, καθώς και τη χρήση βρόχου Κάντε μέχρι. Σε αυτό το παράδειγμα, δεν θα εκτελέσουμε καμία ενέργεια με τον πίνακα, αν και στην πραγματική πρακτική προγραμματισμού, μετά την εγγραφή των δεδομένων στον πίνακα, τέτοιες ενέργειες συνήθως εκτελούνται σε αυτούς.

"Η διαδικασία Sub αποθηκεύει τις τιμές κελιών της στήλης Α του ενεργού φύλλου στον πίνακα Sub GetCellValues() Dim iRow As Integer "Αποθηκεύει τον αριθμό της τρέχουσας σειράς Dim dCellValues() Ως Διπλό "Πίνακας για την αποθήκευση των τιμών των κελιών iRow = 1 ReDim dCellValues(1 έως 10) "Do Loop Μέχρι να επαναληφθεί διαδοχικά μέσα από τα κελιά της στήλης A του ενεργού φύλλου" και να εξαγάγει τις τιμές τους σε έναν πίνακα μέχρι να εμφανιστεί ένα κενό κελί Do Until IsEmpty(Cells( iRow, 1)) "Βεβαιωθείτε ότι ο πίνακας dCellValues ​​έχει επαρκές μέγεθος "Εάν όχι, αυξήστε τον πίνακα μεγέθους κατά 10 χρησιμοποιώντας το ReDim If UBound(dCellValues)< iRow Then ReDim Preserve dCellValues(1 To iRow + 9) End If "Сохраняем значение текущей ячейки в массиве dCellValues dCellValues(iRow) = Cells(iRow, 1).Value iRow = iRow + 1 Loop End Sub

Μακροεντολή Excel: Παράδειγμα 4

Σε αυτό το παράδειγμα, η διαδικασία Υποδιαβάζει τιμές από μια στήλη ΕΝΑφύλλο εργασίας Φύλλο2και εκτελεί αριθμητικές πράξεις πάνω τους. Τα αποτελέσματα εισάγονται στα κελιά της στήλης ΕΝΑστο ενεργό φύλλο εργασίας. Αυτή η μακροεντολή δείχνει τη χρήση αντικειμένων του Excel. Ειδικότερα, η προσφυγή διενεργείται με τη διαδικασία Υποστο αντικείμενο Στήλες, και δείχνει πώς γίνεται πρόσβαση σε αυτό το αντικείμενο μέσω του αντικειμένου Φύλλο εργασίας. Δείχνεται επίσης ότι κατά την πρόσβαση σε ένα κελί ή μια περιοχή κελιών στο ενεργό φύλλο, δεν είναι απαραίτητο να προσδιορίσετε το όνομα αυτού του φύλλου κατά τη σύνταξη του συνδέσμου.

"Η διαδικασία Sub, χρησιμοποιώντας έναν βρόχο, διαβάζει τις τιμές στη στήλη Α του φύλλου εργασίας Sheet2, "εκτελεί αριθμητικές πράξεις με κάθε τιμή και γράφει το αποτέλεσμα στη "στήλη Α του ενεργού φύλλου εργασίας (Sheet1) Sub Transfer_ColA() Dim i Ως ακέραιος Dim Col ως εύρος Dim dVal Ως διπλό "Αντιστοίχιση στη μεταβλητή Col στήλη A του φύλλου εργασίας Φύλλο 2 Set Col = Sheets("Sheet2"). Στήλες("A") i = 1 "Χρησιμοποιώντας έναν βρόχο, διαβάζουμε τις τιμές ​​των κελιών της στήλης Col μέχρι "μέχρι να εμφανιστεί ένα κενό κελί Do Until IsEmpty(Col.Cells(i)) "Εκτελέστε αριθμητικές πράξεις στην τιμή του τρέχοντος κελιού dVal = Col.Cells(i).Τιμή * 3 - 1 "Η ακόλουθη εντολή γράφει το αποτέλεσμα στη στήλη Α του ενεργού φύλλου εργασίας "Δηλώστε το όνομα του φύλλου στον σύνδεσμο που δεν είναι απαραίτητο, καθώς αυτό είναι το ενεργό φύλλο Cells(i, 1) = dVal i = i + 1 Loop End Sub

Μακροεντολή Excel: Παράδειγμα 5

Αυτή η μακροεντολή δείχνει ένα παράδειγμα κώδικα VBA που παρακολουθεί ένα συμβάν του Excel. Το συμβάν στο οποίο είναι προσαρτημένη η μακροεντολή συμβαίνει κάθε φορά που επιλέγεται ένα κελί ή μια περιοχή κελιών στο φύλλο εργασίας. Στην περίπτωσή μας, όταν επιλέγουμε ένα κελί Β1, εμφανίζεται ένα παράθυρο μηνύματος στην οθόνη.

"Αυτός ο κωδικός εμφανίζει ένα πλαίσιο μηνύματος εάν το κελί B1 είναι επιλεγμένο στο τρέχον φύλλο εργασίας. Private Sub Worksheet_SelectionChange(ByVal Target As Range) "Ελέγξτε εάν το κελί B1 είναι επιλεγμένο εάν Target.Count = 1 And Target.Row = 1 And Target.Column = 2 Στη συνέχεια, "Εάν είναι επιλεγμένο το κελί B1, εκτελέστε την απαιτούμενη ενέργεια MsgBox "Έχετε επιλέξει το κελί B1" End If End Sub

Μακροεντολή Excel: Παράδειγμα 6

Αυτή η διαδικασία απεικονίζει τη χρήση τελεστών ΣφάλμαΚαι ΒΙΟΓΡΑΦΙΚΟγια χειρισμό σφαλμάτων. Αυτός ο κώδικας δείχνει επίσης ένα παράδειγμα ανοίγματος και ανάγνωσης δεδομένων από ένα αρχείο.

"Η διαδικασία Sub εκχωρεί στα ορίσματα Val1 και Val2 τις τιμές των κελιών A1 και B1" από το βιβλίο εργασίας Data.xlsx που βρίσκεται στο φάκελο C:\Documents and Settings Sub Set_Values(Val1 As Double, Val2 As Double) Dim DataWorkbook As Βιβλίο εργασίας On Error GoTo ErrorHandling " Ανοίξτε το βιβλίο εργασίας με το σύνολο δεδομένων DataWorkbook = Workbooks.Open("C:\Documents and Settings\Data") "Εκχωρήστε τις τιμές Val1 και Val2 των μεταβλητών από το δεδομένο βιβλίο εργασίας Val1 = Sheets("Sheet1 ").Cells(1, 1) Val2 = Sheets("Sheet1").Cells(1, 2) DataWorkbook.Close Exit Sub Error Handling: "Εάν το αρχείο δεν βρεθεί, θα ζητηθεί από τον χρήστη να τοποθετήσει το αρχείο που αναζητήθηκε " στον επιθυμητό φάκελο και, στη συνέχεια, συνεχίστε την εκτέλεση της μακροεντολής MsgBox "The Data.xlsx file is not found!" & _ "Please προσθέστε το βιβλίο εργασίας στο φάκελο C:\Documents and Settings και κάντε κλικ στο OK" Resume End Sub

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

Sub VBA_Demo()
" Παράδειγμα απλής διαδικασίας VBA
Dim Total As Long, i As Long
Σύνολο = 0
Για i = 1 έως 100
Σύνολο = Σύνολο + i
Επόμενο i
Σύνολο MsgBox
End Sub

Κατεβάστε τη σημείωση στο ή

Αυτή η διαδικασία χρησιμοποιεί ορισμένα δημοφιλή γλωσσικά στοιχεία:

  • σχόλιο (γραμμή που αρχίζει με απόστροφο).
  • δήλωση δήλωσης μεταβλητής (γραμμή που ξεκινά με τη λέξη-κλειδί Dim).
  • δύο μεταβλητές (Σύνολο και i).
  • δύο τελεστές ανάθεσης (Σύνολο = 0 και Σύνολο = Σύνολο + i).
  • κυκλική δομή (Για–Επόμενο);
  • Λειτουργία VBA (MsgBox).

Σχόλια

Μπορείτε να χρησιμοποιήσετε μια νέα γραμμή για το σχόλιο ή μπορείτε να εισαγάγετε ένα σχόλιο μετά τη δήλωση στην ίδια γραμμή.

Σε ορισμένες περιπτώσεις, πρέπει να δοκιμάσετε μια διαδικασία χωρίς να εισαγάγετε μια οδηγία ή ακόμα και ένα ολόκληρο σύνολο οδηγιών σε αυτήν. Αντί να διαγράψετε την αντίστοιχη δήλωση, απλώς μετατρέψτε την σε σχόλιο προσθέτοντας μια απόστροφο στην αρχή της γραμμής. Στη συνέχεια, η VBA θα αγνοήσει τη δήλωση (ή τις δηλώσεις) κατά την εκτέλεση της διαδικασίας. Για να μετατρέψετε ένα σχόλιο σε εντολή, απλώς αφαιρέστε την απόστροφο.

Μεταβλητές, τύποι δεδομένων και σταθερές

Μεταβλητόςείναι μια ονομασμένη θέση αποθήκευσης στη μνήμη του υπολογιστή. Οι μεταβλητές μπορούν να περιέχουν διαφορετικούς τύπους δεδομένων. Μπορείτε να χρησιμοποιήσετε γράμματα, αριθμούς και ορισμένα σημεία στίξης στα ονόματα, αλλά το πρώτο γράμμα σε ένα όνομα μεταβλητής πρέπει πάντα να εισάγεται. Το VBA δεν κάνει διάκριση πεζών-κεφαλαίων στα ονόματα μεταβλητών. Δεν μπορείτε να χρησιμοποιήσετε κενά ή τελείες στα ονόματα, αλλά μπορείτε να διαχωρίσετε λέξεις με κάτω παύλες.

Το VBA χρησιμοποιεί πολλές δεσμευμένες λέξεις που δεν επιτρέπονται ως ονόματα μεταβλητών ή διαδικασιών.

Ο διερμηνέας VBA διευκολύνει τη ζωή των προγραμματιστών επεξεργάζοντας αυτόματα κάθε τύπο δεδομένων. Ωστόσο, αυτό έχει αρνητικές συνέπειες - πιο αργή εκτέλεση λειτουργιών και λιγότερο αποτελεσματική χρήση της μνήμης. Ως αποτέλεσμα, το να επιτραπεί στη VBA να ορίζει τύπους δεδομένων από μόνη της μπορεί να προκαλέσει προβλήματα στην εκτέλεση μεγάλων ή πολύπλοκων εφαρμογών.

Συνιστάται να επιλέξετε έναν τύπο δεδομένων που χρησιμοποιεί τον ελάχιστο αριθμό byte για την αποθήκευση τιμών. Το Excel χρησιμοποιεί τον διπλό τύπο δεδομένων για την εκτέλεση μαθηματικών υπολογισμών σε φύλλα εργασίας. Συνιστάται η χρήση του στη διαδικασία επεξεργασίας αριθμών στο VBA για να διασφαλιστεί η ίδια ακρίβεια των υπολογισμών.

Υπάρχουν τρεις τύποι μεταβλητών πεδίων:

Εργασία με Constants

Μερικές φορές χρειάζεται να χρησιμοποιήσετε μια ονομαστική τιμή ή μια συμβολοσειρά που δεν αλλάζει ποτέ - μια σταθερά. Εάν μια διαδικασία κάνει πολλές αναφορές σε μια συγκεκριμένη τιμή, όπως ένα επιτόκιο, θα πρέπει να δηλώσετε αυτήν την τιμή ως σταθερά και να χρησιμοποιήσετε το όνομα της σταθεράς αντί για την τιμή της στις εκφράσεις σας. Αυτή η τεχνική όχι μόνο κάνει το πρόγραμμα πιο βολικό στην ανάγνωση, αλλά διευκολύνει επίσης τη μεταγενέστερη αλλαγή του κώδικα - αρκεί να αλλάξετε μόνο μία εντολή και όχι αρκετές.

Ο τελεστής Const χρησιμοποιείται για να δηλώσει σταθερές. Για παράδειγμα,

Const NumQuarters ως ακέραιος = 4

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

Sub SetToLandscape()
ActiveSheet.PageSetup.Orientation = xlLandscape
End Sub

Η πραγματική τιμή της μεταβλητής xlLandscape είναι 2. Το παράθυρο Object Browser περιέχει μια λίστα με όλες τις σταθερές Excel και VBA. Για να ανοίξετε το Object Browser στο VBE, πατήστε το πλήκτρο .

Στο VBA, η ημερομηνία και η ώρα ορίζονται ως τιμές που περικλείονται μεταξύ # σημάτων

Const First Day As Date = #1/1/2007#
Const μεσημέρι = #12:00:00#

Οι ημερομηνίες καθορίζονται πάντα σε μορφή μήνα/ημέρα/έτος, ακόμα κι αν το σύστημα έχει ρυθμιστεί να εμφανίζει δεδομένα σε διαφορετική μορφή.

Χειριστές ανάθεσης

Ένας τελεστής εκχώρησης είναι μια πρόταση VBA που εκτελεί έναν μαθηματικό υπολογισμό και εκχωρεί το αποτέλεσμα σε μια μεταβλητή ή αντικείμενο. Η Βοήθεια του Excel ορίζει μια έκφραση ως συνδυασμό λέξεων-κλειδιών, τελεστών, μεταβλητών και σταθερών. Αυτός ο συνδυασμός επιστρέφει μια συμβολοσειρά, έναν αριθμό ή ένα αντικείμενο ως αποτέλεσμα. Μια παράσταση μπορεί να εκτελέσει έναν υπολογισμό, να επεξεργαστεί χαρακτήρες ή να ελέγξει δεδομένα.

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

Πίνακες

Ένας πίνακας είναι μια ομάδα στοιχείων του ίδιου τύπου που έχουν ένα κοινό όνομα. ένα συγκεκριμένο στοιχείο πίνακα αναφέρεται χρησιμοποιώντας το όνομα και το ευρετήριο του πίνακα. Για παράδειγμα, θα μπορούσατε να ορίσετε έναν πίνακα 12 συμβολοσειρών έτσι ώστε κάθε μεταβλητή να αντιστοιχεί σε ένα όνομα μήνα. Εάν ονομάσετε τον πίνακα MonthNames, μπορείτε να ανατρέξετε στο πρώτο στοιχείο του πίνακα ως MonthNames (0), το δεύτερο ως MonthNames (1) και ούτω καθεξής μέχρι το MonthNames (11).

Μπορείτε να δηλώσετε έναν πίνακα που περιέχει ακριβώς 100 ακέραιους αριθμούς ως εξής:

Dim MyArray(1 έως 100) ως ακέραιος αριθμός

Από προεπιλογή, οι πίνακες VBA χρησιμοποιούν το μηδέν ως πρώτο στοιχείο. Εάν θέλετε να χρησιμοποιηθεί ένας ως ο πρώτος δείκτης όλων των πινάκων, τότε πρέπει να κάνετε την ακόλουθη δήλωση πριν από την πρώτη διαδικασία της ενότητας: Βάση επιλογής 1

Ένας δυναμικός πίνακας δεν έχει προκαθορισμένο αριθμό στοιχείων. Δηλώνεται με κενές τιμές σε παρένθεση: Dim MyArray() Ως ακέραιος. Ωστόσο, για να μπορέσει να χρησιμοποιηθεί ένας δυναμικός πίνακας σε ένα πρόγραμμα, πρέπει να χρησιμοποιηθεί μια πρόταση ReDim για να πει στη VBA πόσα στοιχεία υπάρχουν στον πίνακα. Αυτό γίνεται συχνά χρησιμοποιώντας μια μεταβλητή της οποίας η τιμή είναι άγνωστη μέχρι να εκτελεστεί η διαδικασία. Για παράδειγμα, εάν στη μεταβλητή x εκχωρηθεί ένας αριθμός, το μέγεθος του πίνακα καθορίζεται χρησιμοποιώντας την ακόλουθη πρόταση: ReDim MyArray (1 έως x).

Μεταβλητές αντικειμένου

Μεταβλητή αντικειμένουείναι μια μεταβλητή που αντιπροσωπεύει ένα ολόκληρο αντικείμενο, όπως μια περιοχή ή ένα φύλλο εργασίας: Dim InputArea As Range. Για να αντιστοιχίσετε ένα αντικείμενο σε μια μεταβλητή, χρησιμοποιήστε τη λέξη-κλειδί Set: Set InputArea = Range("C16:E16").

Ενσωματωμένες λειτουργίες

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

Εφαρμογή.Φύλλο εργασίαςΛειτουργία

Είναι σημαντικό να κατανοήσετε ότι δεν μπορείτε να χρησιμοποιήσετε συναρτήσεις Excel για τις οποίες το VBA παρέχει ισοδύναμες συναρτήσεις. Για παράδειγμα, το VBA δεν σας επιτρέπει να έχετε πρόσβαση στη συνάρτηση Excel RQRT (SQRT), επειδή το VBA έχει τη δική του έκδοση αυτής της συνάρτησης: Sqr. Άρα η ακόλουθη δήλωση βγάζει ένα σφάλμα:

MsgBox Application.WorksheetFunction.Sqrt(123)

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

MsgBox(message[, buttons] [, title] [, help_file, context])

  • Μήνυμα (απαιτούμενο όρισμα) - το μήνυμα που εμφανίζεται στο παράθυρο διαλόγου.
  • Κουμπιά (προαιρετικό όρισμα) - μια τιμή που καθορίζει ποια κουμπιά και εικονίδια (αν χρειάζεται) εμφανίζονται στο παράθυρο μηνυμάτων. Χρησιμοποιήστε ενσωματωμένες σταθερές (για παράδειγμα, vbYesNo).
  • Τίτλος (προαιρετικό) - το κείμενο που εμφανίζεται στη γραμμή τίτλου του πλαισίου μηνύματος. Από προεπιλογή, εμφανίζεται το κείμενο του Microsoft Excel.
  • Help_file (προαιρετικό όρισμα) - το όνομα του αρχείου βοήθειας που αντιστοιχεί στο πλαίσιο μηνύματος.
  • Context (προαιρετικό όρισμα) - το αναγνωριστικό περιβάλλοντος του θέματος βοήθειας. Αντιπροσωπεύει ένα συγκεκριμένο θέμα Βοήθειας προς εμφάνιση. Εάν χρησιμοποιείτε το όρισμα περιβάλλοντος, θα πρέπει επίσης να χρησιμοποιήσετε το όρισμα help_file.

Μπορείτε να εκχωρήσετε την τιμή που προκύπτει σε μια μεταβλητή ή να χρησιμοποιήσετε μια συνάρτηση χωρίς τελεστή εκχώρησης. Στο παρακάτω παράδειγμα, το αποτέλεσμα εκχωρείται στη μεταβλητή Ans.

Ans = MsgBox(" Συνέχεια; " , vbYesNo + vbQuestion, " Report ")
Αν Ans = vbNo Τότε βγείτε από το Sub

Σημειώστε ότι η τιμή του ορίσματος του κουμπιού είναι το άθροισμα δύο ενσωματωμένων σταθερών (vbYesNo + vbQuestion). Η σταθερά vbYesNo εμφανίζει δύο κουμπιά στο πλαίσιο μηνύματος: ένα με την ένδειξη Ναι και ένα με την ετικέτα Όχι. Η προσθήκη vbQuestion στο όρισμα θα εμφανίσει επίσης ένα ερωτηματικό. Μόλις εκτελεστεί η πρώτη πρόταση, η μεταβλητή Ans θα λάβει μία από τις δύο τιμές, που αντιπροσωπεύονται από τις σταθερές vbYes και vbNo. Σε αυτό το παράδειγμα, η διαδικασία τελειώνει αφού κάνετε κλικ στο κουμπί Όχι.

Διαχείριση αντικειμένων και συλλογών

Η VBA προσφέρει δύο κατασκευές για να σας βοηθήσει να διαχειρίζεστε αντικείμενα και συλλογές πιο εύκολα. Η κατασκευή With - End With σάς επιτρέπει να εκτελείτε πολλαπλές λειτουργίες σε ένα μόνο αντικείμενο. Για να κατανοήσετε πώς λειτουργεί, εξετάστε την ακόλουθη διαδικασία, η οποία αλλάζει έξι ιδιότητες του επιλεγμένου αντικειμένου (υποθέτοντας ότι έχει επιλεγεί το αντικείμενο Range).

Sub ChangeFontl()
Selection.Font.Name = "Cambria"
Selection.Font.Bold = True Selection.Font.Italic = True
Επιλογή.Γραμματοσειρά.Μέγεθος = 12
Selection.Font.Underline = xlUnderlineStyleSingle
Selection.Font.ThemeColor = xlThemeColorAccentl
End Sub

Αυτή η διαδικασία μπορεί να ξαναγραφτεί χρησιμοποιώντας την κατασκευή With - End With. Η διαδικασία που φαίνεται παρακάτω λειτουργεί ακριβώς όπως και η προηγούμενη.

Sub ChangeFont2()
Με Selection.Font
.Όνομα = "Cambria"
.Τόλμη = Αληθινή
.Italic = Αληθινό
.Μέγεθος = 12
.Υπογράμμιση = xlUnderlineStyleSingle
.ThemeColor = xlThemeColorAccentl
Τέλος Με
End Sub

Ας υποθέσουμε ότι αποφασίζετε να εκτελέσετε μια ενέργεια σε όλα τα αντικείμενα μιας συλλογής ή πρέπει να αξιολογήσετε όλα τα αντικείμενα σε μια συλλογή και να εκτελέσετε μια ενέργεια όταν πληρούνται ορισμένες προϋποθέσεις. Αυτή είναι μια ιδανική κατάσταση για να χρησιμοποιήσετε την κατασκευή Για Κάθε - Επόμενο. Σύνταξη κατασκευής:

Για κάθε στοιχείοΣε συλλογή
[οδηγίες]
[οδηγίες]
Επόμενο [ στοιχείο]

Για παράδειγμα:

Sub CountSheets()
Dim στοιχείο ως φύλλο εργασίας
Για κάθε στοιχείο στο ActiveWorkbook.Worksheets
MsgBox Item.Name
Επόμενο Στοιχείο
End Sub

Το ακόλουθο παράδειγμα κλείνει όλα τα παράθυρα εκτός από το ενεργό:

Sub Closelnactive()
Dim Book ως βιβλίο εργασίας
Για κάθε βιβλίο στα βιβλία εργασίας
Αν Βιβλίο.Όνομα<>ActiveWorkbook.Name then Book.Close
Επόμενο Βιβλίο
End Sub

Έλεγχος εκτέλεσης κώδικα

Ορισμένες διαδικασίες VBA ξεκινούν να εκτελούνται από τις πρώτες γραμμές κώδικα. Ωστόσο, μερικές φορές είναι απαραίτητο να ελέγχετε την ακολουθία λειτουργιών παραλείποντας ορισμένες εντολές, εκτελώντας ξανά ορισμένες εντολές και ελέγχοντας τις συνθήκες για να προσδιορίσετε την επόμενη ενέργεια που θα εκτελέσει η διαδικασία.

Η δήλωση GoTo ανακατευθύνει την εκτέλεση του προγράμματος σε μια νέα εντολή που επισημαίνεται με ειδικό τρόπο (μια συμβολοσειρά κειμένου που τελειώνει με άνω και κάτω τελεία ή ένας αριθμός που τελειώνει με ένα διάστημα που καθορίζεται πριν από την εντολή). Η ακόλουθη διαδικασία χρησιμοποιεί τη συνάρτηση VBA InputBox για να αποκτήσει το όνομα χρήστη. Εάν το όνομα χρήστη είναι διαφορετικό από το Howard, τότε η διαδικασία μετακινείται στην ετικέτα WrongName, όπου τερματίζει την εργασία της. Διαφορετικά, η διαδικασία εκτελεί πρόσθετες λειτουργίες. Η δήλωση Exit Sub τερματίζει την εκτέλεση μιας διαδικασίας.

Sub GoToDemo()
Όνομα χρήστη = InputBox (" Πληκτρολογήστε το όνομά σας: ")
Εάν Όνομα χρήστη<>"Howard" Στη συνέχεια GoTo WrongName
MsgBox ("Γεια σου Χάουαρντ...")
" — [Ο πρόσθετος κωδικός εισάγεται εδώ] —
Έξοδος υπο
Λάθος Όνομα:
MsgBox "Λυπούμαστε, αυτή η διαδικασία μπορεί να εκτελεστεί μόνο από τον Howard."
End Sub

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

Η κατασκευή If-Then είναι ίσως η πιο συχνά χρησιμοποιούμενη κατασκευή για την ομαδοποίηση των δηλώσεων VBA:

Αν κατάστασηΕπειτα οδηγίες_αλήθεια

Για παράδειγμα

Sub GreetMe()
Αν ο Χρόνος< 0.5 Then
MsgBox "Καλημέρα"
Elself Time >= 0,5 And Time< 0.75 Then
MsgBox "Καλημέρα"
Αλλού
MsgBox "Καλησπέρα"
Τέλος εαν
End Sub

Το VBA χρησιμοποιεί ένα σύστημα ημερομηνίας και ώρας παρόμοιο με αυτό που χρησιμοποιείται στο Excel. Η ώρα της ημέρας εκφράζεται ως κλάσμα, για παράδειγμα το μεσημέρι αντιπροσωπεύεται ως 0,5. Η τιμή 0,75 αντιπροσωπεύει την ώρα 18:00 - τρία τέταρτα της ημέρας και τη στιγμή που η μέρα μετατρέπεται σε βράδυ. Οι ένθετες δομές If-Then είναι αρκετά δυσκίνητες. Επομένως, συνιστάται η χρήση τους μόνο για τη λήψη απλών δυαδικών αποφάσεων. Εάν πρέπει να επιλέξετε μεταξύ τριών ή περισσότερων επιλογών, τότε καλό είναι να στραφείτε στη σχεδίαση Select Case.

Η ακόλουθη διαδικασία χρησιμοποιεί τη συνάρτηση VBA WeekDay για να καθορίσει εάν η τρέχουσα ημέρα είναι Σάββατο ή Κυριακή (η συνάρτηση Weekday επιστρέφει 1 ή 7). Στη συνέχεια εμφανίζεται ένα αντίστοιχο μήνυμα.

Sub GreetUserlO
Επιλέξτε περίπτωση εβδομάδας (Τώρα)
Περίπτωση 1, 7
MsgBox "Είναι το Σαββατοκύριακο"
Άλλη περίπτωση
MsgBox "Δεν είναι Σαββατοκύριακο"
Τέλος Επιλογή
End Sub

Ο διερμηνέας VBA εξέρχεται από την κατασκευή Select Case μόλις βρεθεί η συνθήκη True. Επομένως, για μέγιστη απόδοση, θα πρέπει πρώτα να δοκιμαστεί η πιο πιθανή περίπτωση.

Κύκλοςείναι η διαδικασία επανάληψης ενός συνόλου οδηγιών. Ίσως γνωρίζετε εκ των προτέρων πόσες φορές πρέπει να επαναληφθεί ο βρόχος ή αυτή η τιμή καθορίζεται από μεταβλητές του προγράμματος. Το απλούστερο παράδειγμα ενός καλού βρόχου είναι το For-Next:

Για μετρητής = ΑρχήΟτι τέλος
[οδηγίες]
[οδηγίες]
Επόμενο [ μετρητής]

Η ακόλουθη διαδικασία αθροίζει τις τετραγωνικές ρίζες των πρώτων 100 ακεραίων:

Sub SumSquareRoots()
Dim Sum ως διπλό
Dim Count ως ακέραιος
Άθροισμα = 0
Για μέτρηση = 1 έως 100
Άθροισμα = Άθροισμα + Τετράγωνο (Αριθμός)
Επόμενη καταμέτρηση
MsgBox Sum
End Sub

Η τιμή της μεταβλητής Step σε έναν βρόχο For-Next μπορεί να είναι αρνητική. Η ακόλουθη διαδικασία διαγράφει τις σειρές 2, 4, 6, 8 και 10 στο ενεργό φύλλο εργασίας:

Sub DeleteRows()
Dim RowNum As Long
Για RowNum = 10 έως 2 Βήμα -2
Γραμμές (RowNum). Διαγραφή
Επόμενη σειρά Αριθμός
End Sub

Οι βρόχοι For-Next μπορούν επίσης να περιέχουν μία ή περισσότερες δηλώσεις Exit For. Όταν το πρόγραμμα συναντήσει αυτήν τη δήλωση, βγαίνει αμέσως από τον βρόχο:

Sub ExitForDemo()
Dim MaxVal ως διπλό
Αδύναμη σειρά όσο διαρκεί
MaxVal = Application.WorksheetFunction.Max(Range(" A:A"))
Για σειρά = 1 έως 1048576
If Cells(Row, 1).Value = MaxVal Τότε
Έξοδος για
Τέλος εαν
Επόμενη σειρά
MsgBox "Μέγιστη τιμή στη σειρά" & Σειρά
Κελιά (Σειρά, 1). Ενεργοποίηση
End Sub

Η μέγιστη τιμή σε μια στήλη υπολογίζεται χρησιμοποιώντας τη συνάρτηση Excel MAX. Αυτή η τιμή εκχωρείται στη συνέχεια στη μεταβλητή MaxVal. Ο βρόχος For-Next ελέγχει κάθε κελί στη στήλη. Εάν ένα συγκεκριμένο κελί είναι ίσο με MaxVal, η πρόταση Exit For τερματίζει τη διαδικασία. Ωστόσο, πριν την έξοδο από τον βρόχο, η διαδικασία ενημερώνει τον χρήστη για τη θέση του επιθυμητού κελιού και το ενεργοποιεί.

Ο βρόχος Do while εκτελείται για όσο διάστημα ικανοποιείται η καθορισμένη συνθήκη. Ένας βρόχος Do while μπορεί να έχει μία από τις ακόλουθες δύο συντακτικές:

Κάνω
[οδηγίες]
[οδηγίες]
Βρόχος

Κάνω
[οδηγίες]
[οδηγίες]
Βρόχος

Η διαδικασία EnterDates1 εισάγει τις ημερομηνίες του τρέχοντος μήνα σε μια στήλη φύλλου εργασίας, ξεκινώντας με το ενεργό κελί:

Sub EnterDatesl()
"Do ενώ βρόχος, η συνθήκη ελέγχεται στην αρχή
Dim TheDate As Date
TheDate = DateSerial (Έτος(Ημερομηνία), Μήνας(Ημερομηνία), 1)
Do while Month(TheDate) = Month(Date)
ActiveCell = Η ημερομηνία
TheDate = TheDate + 1
ActiveCell.Offset(1, 0).Ενεργοποίηση
Βρόχος
End Sub

Αυτή η διαδικασία χρησιμοποιεί τη μεταβλητή TheDate, η οποία αποθηκεύει τις ημερομηνίες που καταγράφονται στο φύλλο εργασίας. Η πρώτη ημέρα του τρέχοντος μήνα χρησιμοποιείται για την προετοιμασία της μεταβλητής. Κατά τη διάρκεια του βρόχου, η τιμή της μεταβλητής TheDate εισήχθη στο ενεργό κελί, στη συνέχεια αυτή η τιμή αυξήθηκε κατά ένα και μετά ενεργοποιήθηκε το επόμενο κελί. Ο βρόχος εκτελείται έως ότου η τιμή μήνα που έχει εκχωρηθεί στη μεταβλητή TheDate ταιριάζει με την τιμή μήνα της τρέχουσας ημερομηνίας.

Οι βρόχοι Do while μπορούν επίσης να περιλαμβάνουν μία ή περισσότερες δηλώσεις Exit Do. Όταν επιτευχθεί η δήλωση Exit Do, ο βρόχος τελειώνει και ο έλεγχος μεταφέρεται στη δήλωση που ακολουθεί τη δήλωση Loop.

Η δομή βρόχου Do Until έχει πολλά κοινά με τη δομή βρόχου Do while. Η μόνη διαφορά είναι πώς ελέγχεται η συνθήκη βρόχου. Στην επιλογή Do while, ο βρόχος εκτελείται όσο η συνθήκη είναι αληθής. Σε έναν βρόχο Do Until, ο βρόχος εκτελείται έως ότου η συνθήκη είναι αληθής. Η δομή Do Μέχρι μπορεί επίσης να αναπαρασταθεί σε δύο τύπους σύνταξης.

Βασισμένο σε υλικά του βιβλίου. – Μ: Διαλεκτική, 2013. – Σ. 211–251.

MZTools - Ένα πολύ χρήσιμο βοηθητικό πρόγραμμα για όσους προγραμματίζουν σε VBA. Πραγματικά εξοικονομεί χρόνο κατά τη σύνταξη κωδικών. Είναι σημαντικό ότι το βοηθητικό πρόγραμμα εντελώς δωρεάν. Εδώ είναι μερικά από τα χαρακτηριστικά του:

  • Αυτόματη εισαγωγή εργαλείων χειρισμού σφαλμάτων σε μονάδες
  • Εισαγωγή σχολίων στην κεφαλίδα της διαδικασίας, με αυτόματη εισαγωγή χρόνου, ονομάτων λειτουργιών και διαδικασιών και δυνατότητα υποδείξεως του συντάκτη της διαδικασίας
  • Αυτόματη αρίθμηση γραμμών κώδικα
  • Αφαίρεση αρίθμησης από γραμμές κώδικα
  • Δημιουργήστε πρότυπα κώδικα που χρησιμοποιούνται συχνά
  • Ίδιο πρόχειρο για 9 λειτουργίες με δυνατότητα κωδικών και επακόλουθη εισαγωγή οποιουδήποτε από τους 9 αντιγραμμένους κωδικούς
  • και πολλά άλλα χρήσιμα πράγματα

Το πρόγραμμα διανέμεται δωρεάν.

(37,3 KiB, 3.708 λήψεις)


Επίσημος ιστότοπος: δεν βρέθηκε

Εργαλεία VBE - Πόσοι από εσάς έχετε γράψει κώδικα για μια φόρμα και, στη συνέχεια, θυμηθήκατε ότι κάποιο στοιχείο δεν ονομάστηκε όπως θέλατε ή απλώς ήθελε να μετονομαστεί λόγω αλλαγής στον κώδικα; Και, φυσικά, αντιμετωπίσαμε το πρόβλημα ότι κατά τη μετονομασία ενός στοιχείου, έπρεπε να μπούμε στον κώδικα και να αντικαταστήσουμε όλες τις αναφορές σε αυτό το στοιχείο εκεί με ένα νέο όνομα. Έτσι, με τη βοήθεια αυτού του προγράμματος, μπορείτε να μετονομάσετε το όνομα οποιουδήποτε στοιχείου φόρμας (TextBox, Label, κ.λπ.) και στοιχεία ελέγχου ActiveX σε ένα φύλλο Excel και το ίδιο το πρόγραμμα θα αντικαταστήσει όλους τους συνδέσμους στον κώδικα από το παλιό όνομα σε το καινουργιο. Πολύ άνετα.

Το πρόγραμμα διανέμεται δωρεάν.


Βιβλίο: Χρήση μακροεντολών στο Excel.

Σελίδες: 507

Μορφή: DJVU
Μέγεθος: 8,02 Mb

Παρά την ισχυρή λειτουργικότητα που παρέχει η διεπαφή χρήστη του Excel, υπάρχει ένας αριθμός εργασιών που μπορούν να εκτελεστούν μόνο μέσω προγραμματισμού. Το βιβλίο "Χρήση μακροεντολών στο Excel" είναι μια εισαγωγή στον προγραμματισμό του Excel VBA, που περιέχει παραδείγματα επίλυσης διαφόρων πρακτικών προβλημάτων που προκύπτουν κατά την εργασία στο Excel.Το υλικό του βιβλίου προορίζεται για χρήστες του Excel, καθώς και για προγραμματιστές που δεν είναι εξοικειωμένοι με το μοντέλο αντικειμένου του Excel. Μαζί με τις ενότητες για την ανάπτυξη μακροεντολών για το Excel 2002, παρέχει ένα εισαγωγικό μάθημα για τη σύνταξη μακροεντολών και προγραμμάτων στο περιβάλλον του Excel.

Βιβλίο: Εντατικό μάθημα προγραμματισμού Excel το Σαββατοκύριακο

Εκδότης: Διαλεκτική
Σελίδες: 421
Μορφή: DJVU
Μέγεθος: 12,6 MB
Ποιότητα: Κανονικός
Γλώσσα: Ρωσική
Είδος: προγραμματισμός
Έτος έκδοσης: 2004
ISBN: 5-8459-0687-3

Οι δυνατότητες του Microsoft Excel δεν περιορίζονται στην εργασία με πίνακες δεδομένων. Πίσω από τα εργαλεία επεξεργασίας υπολογιστικών φύλλων κρύβεται μια ισχυρή γλώσσα προγραμματισμού - η VBA (Visual Basic for Applications). Ωστόσο, σχεδόν οποιοσδήποτε χρήστης έχει την ευκαιρία να μάθει πώς να γράφει προγράμματα σε VBA για να λύνει τα πιο διαφορετικά προβλήματα στο Excel - από τη μηχανική εκτέλεση υπολογισμών έως τη δημιουργία ενός συστήματος για την εισαγωγή δεδομένων με τις δικές του φόρμες οθόνης και με τη δυνατότητα αναθεώρησης της ορθότητας των εισαγόμενων τιμών.

Βιβλίο: Προγραμματισμός σε VBA 2002

Ποιότητα: Κανονικός
Γλώσσα: Ρωσική
Είδος: προγραμματισμός

Το βιβλίο περιέχει ένα μάθημα προγραμματισμού στη Visual Basic για Εφαρμογές (VBA), που είναι η βασική γλώσσα στις εφαρμογές του Microsoft Office (Word, Excel, Access, PowerPoint, FrontPage, Visio κ.λπ.). Το βιβλίο προορίζεται για αρχάριους να προγραμματίζουν σε περιβάλλον Windows χρησιμοποιώντας αντικείμενα Word, Excel και PowerPoint.Μέρος του βιβλίου είναι αφιερωμένο στην ανάπτυξη εφαρμογών του Office που χρησιμοποιούν βάσεις δεδομένων που είναι αποθηκευμένες τόσο σε ξεχωριστά αρχεία όσο και σε απομακρυσμένους διακομιστές.Το βιβλίο περιέχει αρκετό υλικό για την εκμάθηση των βασικών στοιχείων της γλώσσας της Visual Basic και τη δημιουργία απλών μακροεντολών που βοηθούν στην αυτοματοποίηση της ρουτίνας, της επαναλαμβανόμενης εργασίας με έγγραφα, υπολογιστικά φύλλα, γραφήματα, παρουσιάσεις κ.λπ., καθώς και για την ανάπτυξη αρκετά περίπλοκων εφαρμογών επεξεργασίας βάσεων δεδομένων χρησιμοποιώντας παράθυρα διαλόγου που παρέχουν στον χρήστη τα πιο σύγχρονα εργαλεία διεπαφής.Τα περισσότερα από τα παραδείγματα του βιβλίου είναι αφιερωμένα σε τρέχοντα θέματα εμπορικής δραστηριότητας, επομένως το βιβλίο θα είναι πολύ χρήσιμο σε διευθυντές διαφόρων επιπέδων, για τους οποίους προφανώς προορίζονται τόσο το Microsoft Office όσο και η ενσωματωμένη γλώσσα προγραμματισμού VBA.
Τα παραρτήματα στο τέλος του βιβλίου μπορούν να χρησιμεύσουν ως εύχρηστη αναφορά για την εργασία τόσο με τη VBA όσο και με την κανονική VB.

Βιβλίο: Επαγγελματικός προγραμματισμός σε VBA στο Excel 2003
John Walkenbach
Εκδότης: Ουίλιαμς
Μορφή: PDF
Μέγεθος: 11 MB
Ποιότητα: Εξοχος
Γλώσσα: Ρωσική
Έτος έκδοσης: 2005
ISBN: 5-8459-0771-3
Το βιβλίο συνοδεύεται από δίσκο

Πολλά βιβλία έχουν γραφτεί στο Excel. Αλλά αυτό που κάνει αυτό το βιβλίο ξεχωριστό είναι ότι τοποθετεί την ανάπτυξη εφαρμογών υπολογιστικών φύλλων σε ένα ευρύτερο πλαίσιο. Το VBA είναι μόνο ένα στοιχείο του περιβάλλοντος ανάπτυξης προσαρμοσμένων εφαρμογών, αν και σημαντικό. Αυτό το βιβλίο θα σας βοηθήσει να κατανοήσετε τις περιπλοκές της ανάπτυξης εφαρμογών χρησιμοποιώντας VBA. Περιγράφει τα πολλά χαρακτηριστικά της γλώσσας VBA, τις δυνατότητές της και το περιβάλλον χρήσης. Πρώτα, θα σας προσφερθεί μια επισκόπηση των δυνατοτήτων του προγράμματος, μετά θα προχωρήσετε στον ορισμό των εννοιών του προγραμματισμού VBA και στη συνέχεια θα εξοικειωθείτε με η ίδια η γλώσσα. Εάν είστε αρχάριος προγραμματιστής VBA, τότε σε αυτή τη δημοσίευση θα βρείτε όλες τις απαραίτητες πληροφορίες που θα χρειαστείτε για περαιτέρω εργασία. Εάν έχετε ήδη αξιοζήλευτη εμπειρία από τη δουλειά με το VBA, τότε αυτό το βιβλίο θα εμπλουτίσει και θα αυξήσει τις γνώσεις σας, προσθέτοντας νέες τεχνικές και παραδείγματα από την πραγματική ζωή.

Έκδοση PDF που επεξεργάστηκε και παρέχεται ευγενικά από τον συμμετέχοντα.

Βιβλίο: :
John Walkenbach
Εκδότης: Wiley
Μορφή: PDF
Σελίδες: 1308
Μέγεθος: 11,9 MB
Ποιότητα: Εξοχος
Γλώσσα: Αγγλικά
Έτος έκδοσης: 2010
Αυτό το βιβλίο εστιάζει στη Visual Basic for Applications (VBA), τη γλώσσα προγραμματισμού που είναι ενσωματωμένη στο Excel (και σε άλλες εφαρμογές που αποτελούν το Microsoft Office). Πιο συγκεκριμένα, θα σας δείξει πώς να γράφετε προγράμματα που αυτοματοποιούν διάφορες εργασίες στο Excel. Αυτό το βιβλίο καλύπτει τα πάντα, από την εγγραφή απλών μακροεντολών έως τη δημιουργία εξελιγμένων εφαρμογών και βοηθητικών προγραμμάτων προσανατολισμένων στον χρήστη. Αυτό το βιβλίο δεν καλύπτει τα Microsoft Visual Studio Tools for Office (VSTO). Το VSTO είναι μια σχετικά νέα τεχνολογία που χρησιμοποιεί Visual Basic .NET και Microsoft Visual C#. Το VSTO μπορεί επίσης να χρησιμοποιηθεί για τον έλεγχο του Excel και άλλων εφαρμογών του Microsoft Office.
Αυτό δεν είναι ένα βιβλίο για αρχάριους χρήστες του Excel. Εάν δεν έχετε εμπειρία με το Excel, μια καλύτερη επιλογή μπορεί να είναι το Excel 2010 Bible, το οποίο παρέχει ολοκληρωμένη κάλυψη όλων των δυνατοτήτων του Excel. Αυτό το βιβλίο προορίζεται για χρήστες όλων των επιπέδων.

Βιβλίο: : Επαγγελματικός προγραμματισμός σε VBA στο Excel 2010
John Walkenbach
Εκδότης: Διαλεκτική
Μορφή: PDF
Σελίδες:920
Μέγεθος: 22,1 MB
Ποιότητα: Εξοχος
Γλώσσα: Ρωσική
Έτος έκδοσης: 2010 Το θέμα αυτού του βιβλίου είναι η γλώσσα προγραμματισμού της Visual Basic for Applications (VBA), η οποία είναι ενσωματωμένη στο Excel καθώς και σε άλλες εφαρμογές που περιλαμβάνονται στο Microsoft Office. Περιγράφει λεπτομερώς τη δημιουργία προγραμμάτων που αυτοματοποιούν την εκτέλεση διαφόρων εργασιών στο Excel και καλύπτει επίσης ένα ευρύ φάσμα άλλων θεμάτων - από τη σύνταξη απλών μακροεντολών έως τη δημιουργία πολύπλοκων εφαρμογών και βοηθητικών προγραμμάτων που έχουν σχεδιαστεί για αλληλεπίδραση με τον χρήστη. Αυτό το βιβλίο δεν περιγράφει το πακέτο λογισμικού Microsoft Visual Studio Tools for Office (VSTO). Είναι μια ενσάρκωση μιας σχετικά νέας τεχνολογίας που χρησιμοποιεί Visual Basic .NET και Microsoft Visual C#. Η τεχνολογία VSTO μπορεί επίσης να χρησιμοποιηθεί για τον έλεγχο της συμπεριφοράς του Excel και άλλων εφαρμογών του Microsoft Office.

Αυτό το βιβλίο δεν προορίζεται για αρχάριους χρήστες του Excel. Αν δεν έχετε εμπειρία με αυτή την εφαρμογή, τότε διαβάστε πρώτα το βιβλίο Excel 2010. The User's Bible, που εξηγεί αναλυτικά όλες τις δυνατότητες του Excel (απευθύνεται σε χρήστες όλων των επιπέδων).


Βιβλίο:Εκμάθηση VBA
Γκαρνάεφ Α.
Εκδότης: bhv
Σελίδες: 512
Μορφή: html με εικόνες σε rar
ISBN: 5-8206-0067-3
Μέγεθος: 2,22 MB

Εξοχος

Γλώσσα: Αγγλικά
Έτος έκδοσης: 2009

Το Microsoft Excel είναι πολύ περισσότερα από ένα υπολογιστικό φύλλο. Με την εισαγωγή του Visual Basic Editor στο Excel 97, ακολουθούμενη από τη σημαντικά βελτιωμένη σταθερότητα του Excel 2000, το Excel έγινε από μόνο του μια σεβαστή πλατφόρμα ανάπτυξης. Οι εφαρμογές Excel βρίσκονται πλέον μαζί με αυτές που βασίζονται σε C++, Java και την πλατφόρμα ανάπτυξης .NET, ως μέρος της βασικής σουίτας εταιρικών εφαρμογών που είναι κρίσιμες για την αποστολή.
Δυστυχώς, το Excel εξακολουθεί να θεωρείται πολύ συχνά ως μια πλατφόρμα χομπίστας, ότι οι άνθρωποι αναπτύσσουν εφαρμογές Excel μόνο στον ελεύθερο χρόνο τους για να αυτοματοποιήσουν μικρές εργασίες. Μια σύντομη ματιά σε πολλά βιβλία Excel VBA φαίνεται να επιβεβαιώνει αυτή τη γνώμη. Αυτά τα βιβλία επικεντρώνονται στα βασικά στοιχεία της αυτοματοποίησης εργασιών του Excel χρησιμοποιώντας VBA. Αυτό το βιβλίο είναι το πρώτο του είδους του που παρέχει μια λεπτομερή εξήγηση του τρόπου χρήσης του Excel ως πλατφόρμας για την ανάπτυξη εφαρμογών επαγγελματικής ποιότητας.
Ενώ οι περισσότερες άλλες μεγάλες πλατφόρμες ανάπτυξης φαίνεται να έχουν ένα de facto πρότυπο κείμενο που εξηγεί τις κοινώς αποδεκτές βέλτιστες πρακτικές για την αρχιτεκτονική, το σχεδιασμό και την ανάπτυξη εφαρμογών που χρησιμοποιούν αυτήν την πλατφόρμα, μέχρι τώρα το Excel δεν το είχε. Αυτό το κενό προσπαθεί να καλύψει αυτό το βιβλίο. Οι συγγραφείς είναι επαγγελματίες προγραμματιστές του Excel που δημιουργούν εφαρμογές που βασίζονται στο Excel για πελάτες που κυμαίνονται από ιδιώτες έως τις μεγαλύτερες πολυεθνικές εταιρείες. Αυτό το βιβλίο εξηγεί τις προσεγγίσεις που χρησιμοποιούμε κατά το σχεδιασμό, την ανάπτυξη, τη διανομή και την υποστήριξη των εφαρμογών που γράφουμε για τους πελάτες μας.
Αυτό το βιβλίο παρασχέθηκε από έναν χρήστη

Θέμα 2.3. Λογισμικό παρουσίασης και βασικές αρχές προγραμματισμού γραφείου

Θέμα 2.4. Συστήματα διαχείρισης βάσεων δεδομένων και συστήματα εμπειρογνωμόνων

2.4.11. Βάση δεδομένων εκπαίδευσης με το κύριο κουμπί φόρμα "Training_students" - Λήψη

Προγραμματισμός VBA και Μακροεντολές

2.3. Λογισμικό παρουσίασης και βασικές αρχές προγραμματισμού γραφείου

2.3.7. Βασικές αρχές προγραμματισμού γραφείου

BASIC οπτική γλώσσα προγραμματισμού για εφαρμογές: Visual Basic for Applications (VBA)

Το VBA είναι ένα υποσύνολο της οπτικής γλώσσας προγραμματισμού Visual Basic (VB) που περιλαμβάνει σχεδόν όλα τα εργαλεία για τη δημιουργία εφαρμογών VB.

Η VBA διαφέρει από τη γλώσσα προγραμματισμού VB στο ότι η VBA έχει σχεδιαστεί για να λειτουργεί απευθείας με αντικείμενα του Office και δεν μπορεί να χρησιμοποιηθεί για τη δημιουργία έργου ανεξάρτητου από εφαρμογές του Office. Έτσι, στη VBA, η γλώσσα προγραμματισμού είναι η VB και το περιβάλλον προγραμματισμού υλοποιείται με τη μορφή ενός επεξεργαστή VB, ο οποίος μπορεί να ενεργοποιηθεί από οποιαδήποτε εφαρμογή του MS Office.

Για παράδειγμα, για να ανοίξετε το πρόγραμμα επεξεργασίας VBA από το PowerPoint, πρέπει να εκτελέσετε την εντολή Εργαλεία / Μακροεντολή / Επεξεργαστής VBA. Μπορείτε να επιστρέψετε από το πρόγραμμα επεξεργασίας στην εφαρμογή επιλέγοντας την εντολή Microsoft PowerPoint στο μενού Προβολή ή πατώντας το συνδυασμό πλήκτρων Alt + F11.

Χρησιμοποιώντας το ενσωματωμένο σύνολο στοιχείων ελέγχου και επεξεργασίας φορμών του προγράμματος επεξεργασίας VBA, ο χρήστης μπορεί να δημιουργήσει μια διεπαφή χρήστη για το έργο φόρμας οθόνης που αναπτύσσεται. Τα στοιχεία ελέγχου είναι αντικείμενα και κάθε αντικείμενο έχει ένα καθορισμένο σύνολο πιθανών γεγονότων (για παράδειγμα, κλικ ή διπλό κλικ σε ένα ποντίκι, πάτημα ενός πλήκτρου, σύρσιμο ενός αντικειμένου κ.λπ.).

Κάθε γεγονός εκδηλώνεται σε συγκεκριμένες ενέργειες του προγράμματος (απαντήσεις, αντιδράσεις). Μια φόρμα χρήστη σάς επιτρέπει να δημιουργήσετε παράθυρα διαλόγου εφαρμογής. Η γλώσσα προγραμματισμού VBA χρησιμοποιείται για τη σύνταξη κώδικα προγράμματος, όπως η δημιουργία συναρτήσεων χρήστη στο Excel.

Το γεγονός ότι το σύστημα προγραμματισμού VBA έχει σχεδιαστεί για να λειτουργεί με αντικείμενα του Office επιτρέπει την αποτελεσματική χρήση του για την αυτοματοποίηση δραστηριοτήτων που σχετίζονται με την ανάπτυξη διαφόρων τύπων εγγράφων.

Ας δούμε τον αλγόριθμο για τη δημιουργία συναρτήσεων χρήστη στο VBA:

1. Ανοίξτε το παράθυρο του επεξεργαστή κώδικα VBA εκτελώντας την εντολή Εργαλεία / Μακροεντολή / Επεξεργαστής Visual Basic ή πατώντας Alt+F11.

2. Επιλέξτε το στοιχείο μενού επεξεργασίας Εισαγωγή / Μονάδα.

3. Στη συνέχεια, εκτελέστε Εισαγωγή / Διαδικασία. Στο παράθυρο διαλόγου Προσθήκη διαδικασίας που ανοίγει, πληκτρολογήστε το όνομα της συνάρτησης (για παράδειγμα, SUM5) και ορίστε τους διακόπτες: Πληκτρολογήστε – στη θέση Συνάρτηση. Πεδίο (Scope) - στη θέση Public (General) και κάντε κλικ στο OK.


Ρύζι. 1.

4. Στο παράθυρο του προγράμματος επεξεργασίας για τον προγραμματισμό VBA, θα εμφανιστεί ένα πρότυπο συνάρτησης: τίτλος - Public Function SUM5() και τέλος - End Function, μεταξύ των οποίων πρέπει να τοποθετήσετε τον κώδικα του σώματος της συνάρτησης.


Ρύζι. 2.

5. Στη συνέχεια, εισάγουμε μια λίστα παραμέτρων συνάρτησης, για παράδειγμα, σε παρένθεση υποδεικνύουμε (x, y, z, i, j), τον τύπο δεδομένων (για ακριβείς υπολογισμούς) και τον τύπο της τιμής που επιστρέφεται από τη συνάρτηση (εμείς δεν θα το εισαγάγετε σε αυτό το παράδειγμα). Επιπλέον, εισάγουμε το σώμα της συνάρτησης, για παράδειγμα, SUM5 = x + y + z + i + j. Ως αποτέλεσμα, λαμβάνουμε το ακόλουθο κείμενο προγράμματος:

Δημόσια συνάρτηση SUM5(x, y, z, i, j)
SUM5 = x + y + z + i + j
Λειτουργία τερματισμού

6. Επιστρέφουμε στο παράθυρο της εφαρμογής Excel, στο οποίο, για παράδειγμα, πρέπει να αθροίσουμε πέντε τιμές.

7. Εκτελέστε το “Insert/Function” και στο παράθυρο του οδηγού λειτουργιών που ανοίγει επιλέξτε την κατηγορία “User-defined” και στο παράθυρο “Select a function” επιλέξτε SUM5 και κάντε κλικ στο OK.



Ρύζι. 3.



Ρύζι. 4.

Μακροεντολές

Δημιουργία μακροεντολής

Ας δημιουργήσουμε μια μακροεντολή για να αθροίσουμε αυτόματα δύο αριθμούς στα κελιά A1, B1 και να τοποθετήσουμε το αποτέλεσμα στο κελί C1, καθώς και να γεμίσουμε το κελί C1 με τιρκουάζ χρώμα.

Αλγόριθμος για τη δημιουργία μιας μακροεντολής για την εργασία:

1. Επιλέξτε Εργαλεία/Μακροεντολή, Έναρξη εγγραφής.

2. Στο πεδίο Όνομα μακροεντολής, πληκτρολογήστε ένα όνομα για τη μακροεντολή. Ο πρώτος χαρακτήρας του ονόματος της μακροεντολής πρέπει να είναι ένα γράμμα. Δεν επιτρέπονται κενά στο όνομα της μακροεντολής. Μπορείτε να χρησιμοποιήσετε υπογράμμιση ως διαχωριστικά λέξεων.

3. Για να εκτελέσετε μια μακροεντολή χρησιμοποιώντας μια συντόμευση πληκτρολογίου, εισαγάγετε ένα γράμμα στο πεδίο Συντόμευση πληκτρολογίου. Μπορείτε να χρησιμοποιήσετε τους συνδυασμούς CTRL+ γράμμα (για πεζά γράμματα) ή CTRL+SHIFT+ γράμμα (για κεφαλαία γράμματα), όπου γράμμα είναι οποιοδήποτε πλήκτρο γράμματος στο πληκτρολόγιο. Μην επιλέξετε την τυπική συντόμευση πληκτρολογίου, επειδή η επιλεγμένη συντόμευση πληκτρολογίου αντικαθιστά τις τυπικές συντομεύσεις πληκτρολογίου του Microsoft Excel εκείνη τη στιγμή με αυτό το βιβλίο εργασίας.

4. Στο πεδίο "Αποθήκευση", επιλέξτε το βιβλίο εργασίας στο οποίο θέλετε να αποθηκεύσετε τη μακροεντολή. Αποθηκεύστε τη μακροεντολή στο "Αυτό το βιβλίο εργασίας". Για να δημιουργήσετε μια σύντομη περιγραφή της μακροεντολής, εισαγάγετε το απαιτούμενο κείμενο στο πεδίο Περιγραφή. Το στιγμιότυπο οθόνης δείχνει ένα παράδειγμα συμπλήρωσης του πλαισίου διαλόγου "Εγγραφή μακροεντολής".


Ρύζι. 5.

5. Κάντε κλικ στο OK.

6. Εκτελέστε τις εντολές μακροεντολής που θέλετε να εγγράψετε.


Ρύζι. 6.

7. Κάντε κλικ στο κουμπί Διακοπή εγγραφής στη αιωρούμενη γραμμή εργαλείων του λειτουργικού συστήματος (Διακοπή εγγραφής) ή Εργαλεία / Μακροεντολή / Διακοπή μακροεντολής.

Όταν μια μακροεντολή ολοκληρώσει την εγγραφή, εμφανίζεται στη λίστα μακροεντολών με το όνομά της.

Το πρόγραμμα επεξεργασίας VBA κατέγραψε αυτόματα μια ακολουθία εντολών μακροεντολών ή ένα πρόγραμμα με βάση τις ενέργειες που εκτελέστηκαν (Εικ. 7.).



Ρύζι. 7.

Για να καλέσετε μια μακροεντολή, πρέπει να εκτελέσετε την εντολή Εργαλεία / Μακροεντολή / Μακροεντολές. Μετά από αυτό, στο παράθυρο διαλόγου με μια λίστα μακροεντολών, μπορείτε να το βρείτε με το όνομα και να κάνετε κλικ στο κουμπί Εκτέλεση.

Εκχώρηση κουμπιού γραμμής εργαλείων για την εκτέλεση μιας μακροεντολής

Η εκκίνηση της μακροεντολής μπορεί να γίνει χρησιμοποιώντας το κουμπί στην ενσωματωμένη γραμμή εργαλείων. Για να το κάνετε αυτό, πρέπει να κάνετε:

  1. Επιλέξτε Ρυθμίσεις από το μενού Εργαλεία.
  2. Στο παράθυρο διαλόγου Ρυθμίσεις, επιλέξτε την καρτέλα Εντολές και επιλέξτε Μακροεντολές στη λίστα Κατηγορίες και επιλέξτε «Προσαρμοσμένο Κουμπί» στη λίστα Εντολές.
  3. Από τη λίστα Εντολές, χρησιμοποιήστε το ποντίκι σας για να σύρετε το προσαρμοσμένο κουμπί στη γραμμή εργαλείων.
  4. Κάντε δεξί κλικ σε αυτό το κουμπί και επιλέξτε Αντιστοίχιση μακροεντολής από το μενού περιβάλλοντος.
  5. Εισαγάγετε ένα όνομα για τη μακροεντολή στο πεδίο Όνομα μακροεντολής.

Αντιστοίχιση μιας περιοχής ενός γραφικού αντικειμένου για την εκτέλεση μιας μακροεντολής:

  1. Δημιουργήστε ένα γραφικό αντικείμενο.
  2. Εφαρμόστε το μενού περιβάλλοντος στο επιλεγμένο αντικείμενο γραφικών.
  3. Επιλέξτε την εντολή Assign macro από το μενού περιβάλλοντος.
  4. Στο παράθυρο διαλόγου Αντιστοίχιση μακροεντολής σε αντικείμενο που εμφανίζεται, εισαγάγετε το όνομα της μακροεντολής στο πεδίο Όνομα μακροεντολής και, στη συνέχεια, κάντε κλικ στο OK.

Η επεξεργασία μιας μακροεντολής πραγματοποιείται χρησιμοποιώντας το πρόγραμμα επεξεργασίας VBA, για να γίνει αυτό, πρέπει να κάνετε τα εξής:

  1. Επιλέξτε την εντολή Εργαλεία / Μακροεντολές / Μακροεντολές.
  2. Επιλέξτε το όνομα της μακροεντολής που θέλετε να αλλάξετε από τη λίστα Όνομα.
  3. Κάντε κλικ στο κουμπί Επεξεργασία, θα ανοίξει ένα παράθυρο της Visual Basic, στο οποίο μπορείτε να επεξεργαστείτε τις εντολές της επιλεγμένης μακροεντολής που είναι γραμμένη στη Visual Basic.


Αφαίρεση μακροεντολής:

  1. Από το μενού Εργαλεία, επιλέξτε Μακροεντολές και, στη συνέχεια, επιλέξτε Μακροεντολές.
  2. Στη λίστα των μακροεντολών στο τρέχον βιβλίο εργασίας, πρέπει να επιλέξετε τη μακροεντολή που θέλετε να διαγράψετε και να κάνετε κλικ στο κουμπί Διαγραφή.

Μετονομασία μακροεντολής

Για να μετονομάσετε μια μακροεντολή, πρέπει να εισέλθετε στη λειτουργία επεξεργασίας μακροεντολών και να αλλάξετε τον τίτλο στο κείμενο του προγράμματος. Το νέο όνομα θα αντικαταστήσει αυτόματα το παλιό στις λίστες μακροεντολών και τα πλήκτρα συντόμευσης θα καλέσουν τη μακροεντολή με το νέο όνομα.