Excel VBA MsgBox (πλαίσιο μηνυμάτων) - Όλα όσα πρέπει να ξέρετε!

Στο Excel VBA, μπορείτε να χρησιμοποιήσετε τη λειτουργία MsgBox για να εμφανίσετε ένα πλαίσιο μηνυμάτων (όπως φαίνεται παρακάτω):

Ένα MsgBox δεν είναι παρά ένα παράθυρο διαλόγου που μπορείτε να χρησιμοποιήσετε για να ενημερώσετε τους χρήστες σας εμφανίζοντας ένα προσαρμοσμένο μήνυμα ή λάβετε κάποιες βασικές εισόδους (όπως Ναι/Όχι ή OK/Cancel).

Ενώ εμφανίζεται το παράθυρο διαλόγου MsgBox, ο κωδικός VBA διακόπτεται. Πρέπει να κάνετε κλικ σε οποιοδήποτε από τα κουμπιά στο MsgBox για να εκτελέσετε τον υπόλοιπο κώδικα VBA.

Σημείωση: Σε αυτό το σεμινάριο, θα χρησιμοποιήσω το πλαίσιο μηνυμάτων λέξεων και το MsgBox εναλλακτικά. Όταν εργάζεστε με το Excel VBA, πρέπει πάντα να χρησιμοποιείτε MsgBox.

Ανατομία ενός VBA MsgBox στο Excel

Ένα πλαίσιο μηνυμάτων περιλαμβάνει τα ακόλουθα μέρη:

  1. Τίτλος: Χρησιμοποιείται συνήθως για την εμφάνιση του περιεχομένου του πλαισίου μηνυμάτων. Εάν δεν καθορίσετε τίποτα, εμφανίζει το όνομα της εφαρμογής - το οποίο είναι το Microsoft Excel σε αυτήν την περίπτωση.
  2. Προτροπή: Αυτό είναι το μήνυμα που θέλετε να εμφανιστεί. Μπορείτε να χρησιμοποιήσετε αυτό το διάστημα για να γράψετε μερικές γραμμές ή ακόμη και να εμφανίσετε πίνακες/δεδομένα εδώ.
  3. Κουμπί (α): Ενώ το OK είναι το προεπιλεγμένο κουμπί, μπορείτε να το προσαρμόσετε ώστε να εμφανίζει κουμπιά όπως Ναι/Όχι, Ναι/Όχι/Ακύρωση, Επανάληψη/Παράβλεψη κ.λπ.
  4. Κλείσιμο εικονίδιο: Μπορείτε να κλείσετε το πλαίσιο μηνυμάτων κάνοντας κλικ στο εικονίδιο κλεισίματος.

Σύνταξη της λειτουργίας VBA MsgBox

Όπως ανέφερα, το MsgBox είναι μια συνάρτηση και έχει μια σύνταξη παρόμοια με άλλες λειτουργίες VBA.

MsgBox (προτροπή [, κουμπιά] [, τίτλος] [, αρχείο βοήθειας, περιβάλλον])

  • προτροπή - Αυτό είναι ένα απαιτούμενο επιχείρημα. Εμφανίζει το μήνυμα που βλέπετε στο MsgBox. Στο παράδειγμά μας, το κείμενο "This is a sample MsgBox" είναι η "προτροπή". Μπορείτε να χρησιμοποιήσετε έως και 1024 χαρακτήρες στην προτροπή και μπορείτε επίσης να τον χρησιμοποιήσετε για την εμφάνιση των τιμών των μεταβλητών. Σε περίπτωση που θέλετε να εμφανίσετε μια προτροπή που έχει πολλές γραμμές, μπορείτε να το κάνετε επίσης (περισσότερα για αυτό αργότερα σε αυτό το σεμινάριο).
  • [κουμπιά] - Καθορίζει ποια κουμπιά και εικονίδια εμφανίζονται στο MsgBox. Για παράδειγμα, εάν χρησιμοποιήσω το vbOkOnly, θα εμφανίσει μόνο το κουμπί OK και εάν χρησιμοποιήσω το vbOKCancel, θα εμφανίσει και τα κουμπιά OK και Cancel. Θα καλύψω διάφορα είδη κουμπιών αργότερα σε αυτό το σεμινάριο.
  • [τίτλος] - Εδώ μπορείτε να καθορίσετε τη λεζάντα που θέλετε στο παράθυρο διαλόγου μηνυμάτων. Αυτό εμφανίζεται στη γραμμή τίτλου του MsgBox. Εάν δεν καθορίσετε τίποτα, θα εμφανιστεί το όνομα της εφαρμογής.
  • [helpfile] - Μπορείτε να καθορίσετε ένα αρχείο βοήθειας στο οποίο μπορείτε να έχετε πρόσβαση όταν ο χρήστης κάνει κλικ στο κουμπί Βοήθεια. Το κουμπί βοήθειας θα εμφανιστεί μόνο όταν χρησιμοποιείτε τον κωδικό κουμπιού για αυτό. Εάν χρησιμοποιείτε ένα αρχείο βοήθειας, πρέπει επίσης να καθορίσετε το όρισμα περιβάλλοντος.
  • [συμφραζόμενα] - Είναι μια αριθμητική έκφραση που είναι ο αριθμός περιβάλλοντος της Βοήθειας που έχει εκχωρηθεί στο κατάλληλο θέμα Βοήθειας.

Εάν είστε νέοι στην έννοια του Msgbox, μη διστάσετε να αγνοήσετε τα επιχειρήματα [helpfile] και [context]. Έχω δει σπάνια να χρησιμοποιούνται αυτά.

Σημείωση: Όλα τα ορίσματα σε αγκύλες είναι προαιρετικά. Μόνο το επιχείρημα «άμεση» είναι υποχρεωτικό.

Σταθερές κουμπιού Excel VBA MsgBox (παραδείγματα)

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

Πριν σας δείξω τον κωδικό VBA και πώς φαίνεται το MsgBox, εδώ είναι ένας πίνακας που παραθέτει όλες τις διαφορετικές σταθερές κουμπιών που μπορείτε να χρησιμοποιήσετε.

Κουμπί Σταθερό Περιγραφή
vbOKΜόνο Εμφανίζει μόνο το κουμπί OK
vbOKΑκύρωση Εμφανίζει τα κουμπιά OK και Cancel
vbAbortRetryIgnore Εμφανίζει τα κουμπιά Αποβολή, Επανάληψη και Παράβλεψη
vb Ναι Όχι Εμφανίζει τα κουμπιά Ναι και Όχι
vb ΝαιΌχιΑκύρωση Εμφανίζει τα κουμπιά Ναι, Όχι και Ακύρωση
vbRetryCancel Εμφανίζει τα κουμπιά Επανάληψη και Ακύρωση
vbMsgBoxHelpButton Εμφανίζει το κουμπί Βοήθεια. Για να λειτουργήσει αυτό, πρέπει να χρησιμοποιήσετε τα ορίσματα βοήθειας και περιβάλλοντος στη συνάρτηση MsgBox
vbDefaultButton1 Κάνει το πρώτο κουμπί προεπιλεγμένο. Μπορείτε να αλλάξετε τον αριθμό για να αλλάξετε το προεπιλεγμένο κουμπί. Για παράδειγμα, το vbDefaultButton2 κάνει το δεύτερο κουμπί ως προεπιλεγμένο

Σημείωση: Ενώ περνάτε στα παραδείγματα δημιουργίας διαφορετικών κουμπιών, μπορεί να αναρωτηθείτε ποιο είναι το νόημα να έχετε αυτά τα κουμπιά εάν δεν έχει καμία επίδραση στον κώδικα.

Κάνει! Με βάση την επιλογή, μπορείτε να κωδικοποιήσετε αυτό που θέλετε να κάνει ο κώδικας. Για παράδειγμα, εάν επιλέξετε OK, ο κωδικός θα πρέπει να συνεχίσει και αν κάνετε κλικ στο κουμπί Ακύρωση, ο κωδικός θα σταματήσει. Αυτό μπορεί να γίνει χρησιμοποιώντας μεταβλητές και εκχωρώντας την τιμή του κουτιού μηνυμάτων σε μια μεταβλητή. Θα το καλύψουμε στις επόμενες ενότητες αυτού του σεμιναρίου.

Τώρα ας ρίξουμε μια ματιά σε μερικά παραδείγματα για το πώς μπορούν να εμφανιστούν τα διαφορετικά κουμπιά σε ένα MsgBox και πώς φαίνονται.

Κουμπιά MsgBox - vbOKOnly (Προεπιλογή)

Εάν χρησιμοποιείτε μόνο την προτροπή και δεν καθορίζετε κανένα από τα ορίσματα, θα λάβετε το προεπιλεγμένο πλαίσιο μηνυμάτων όπως φαίνεται παρακάτω:

Παρακάτω είναι ο κωδικός που θα δώσει αυτό το πλαίσιο μηνυμάτων:

Sub DefaultMsgBox () MsgBox "This is a sample box" End Sub

Σημειώστε ότι η συμβολοσειρά κειμένου πρέπει να είναι σε διπλά εισαγωγικά.

Μπορείτε επίσης να χρησιμοποιήσετε το κουμπί σταθερά vbOK Μόνο, αλλά ακόμα κι αν δεν καθορίσετε τίποτα, λαμβάνεται ως προεπιλογή.

Κουμπιά MsgBox - OK & Cancel

Εάν θέλετε να εμφανίσετε μόνο το OK και το κουμπί Ακύρωση, πρέπει να χρησιμοποιήσετε τη σταθερά vbOKCancel.

Sub MsgBoxOKCancel () MsgBox "Θέλετε να συνεχίσετε;", vbOKCancel End Sub

Κουμπιά MsgBox - Διακοπή, Επανάληψη και Παράβλεψη

Μπορείτε να χρησιμοποιήσετε τη σταθερά ‘vbAbortRetryIgnore’ για να εμφανίσετε τα κουμπιά Abort, Retry και Ignore.

Sub MsgBoxAbortRetryIgnore () MsgBox "Τι θέλετε να κάνετε;", vbAbortRetryIgnore End Sub

Κουμπιά MsgBox - Ναι και Όχι

Μπορείτε να χρησιμοποιήσετε τη σταθερά ‘vbYesNo’ για να εμφανίσετε τα κουμπιά Ναι και Όχι.

Sub MsgBox Ναι Όχι () MsgBox "Πρέπει να σταματήσουμε;", vb Ναι Όχι End Sub

Κουμπιά MsgBox - Ναι, Όχι και Ακύρωση

Μπορείτε να χρησιμοποιήσετε τη σταθερά ‘vbYesNoCancel’ για να εμφανίσετε τα κουμπιά Ναι, Όχι και Ακύρωση.

Sub MsgBoxYesNoCancel () MsgBox "Πρέπει να σταματήσουμε;", vbYesNoCancel End Sub

Κουμπιά MsgBox - Επανάληψη και Ακύρωση

Μπορείτε να χρησιμοποιήσετε τη σταθερά ‘vbRetryCancel’ για να εμφανίσετε τα κουμπιά Επανάληψη και Ακύρωση.

Sub MsgBoxRetryCancel () MsgBox "Τι θέλετε να κάνετε στη συνέχεια;", vbRetryCancel End Sub

Κουμπιά MsgBox - Κουμπί βοήθειας

Μπορείτε να χρησιμοποιήσετε τη σταθερά ‘vbMsgBoxHelpButton’ για να εμφανίσετε το κουμπί βοήθειας. Μπορείτε να το χρησιμοποιήσετε με άλλες σταθερές κουμπιών.

Sub MsgBoxRetryHelp () MsgBox "Τι θέλετε να κάνετε στη συνέχεια;", vbRetryCancel + vbMsgBoxHelpButton End Sub

Σημειώστε ότι σε αυτόν τον κώδικα, έχουμε συνδυάσει δύο διαφορετικές σταθερές κουμπιών (vbRetryCancel + vbMsgBoxHelpButton). Το πρώτο μέρος εμφανίζει τα κουμπιά Επανάληψη και Ακύρωση και το δεύτερο μέρος το κουμπί Βοήθεια.

Κουμπιά MsgBox - Ρύθμιση προεπιλεγμένου κουμπιού

Μπορείτε να χρησιμοποιήσετε τη σταθερά ‘vbDefaultButton1’ για να ορίσετε το πρώτο κουμπί ως προεπιλεγμένο. Αυτό σημαίνει ότι το κουμπί είναι ήδη επιλεγμένο και αν πατήσετε enter, εκτελεί αυτό το κουμπί.

Παρακάτω είναι ο κωδικός που θα ορίσει το δεύτερο κουμπί (το κουμπί «Όχι») ως προεπιλογή.

Sub MsgBoxOKCancel () MsgBox "Τι θέλετε να κάνετε στη συνέχεια;", vbYesNoCancel + vbDefaultButton2 End Sub

Στις περισσότερες περιπτώσεις, το αριστερό κουμπί είναι το προεπιλεγμένο κουμπί. Μπορείτε να επιλέξετε άλλα κουμπιά χρησιμοποιώντας τα vbDefaultButton2, vbDefaultButton3 και vbDefaultButton4.

Σταθερές εικονιδίων Excel VBA MsgBox (παραδείγματα)

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

Παρακάτω είναι ένας πίνακας που παραθέτει τον κωδικό που θα εμφανίζει το αντίστοιχο εικονίδιο.

Εικονίδιο Constant Περιγραφή
vbΚριτικό Εμφανίζει το εικονίδιο του κρίσιμου μηνύματος
vbΕρώτηση Εμφανίζει το εικονίδιο ερώτησης
vbΠροσφώνηση Εμφανίζει το εικονίδιο προειδοποιητικού μηνύματος
vbΠληροφορίες Εμφανίζει το εικονίδιο πληροφοριών

Εικονίδια MsgBox - Κρίσιμα

Εάν θέλετε να εμφανίσετε ένα κρίσιμο εικονίδιο στο MsgBox σας, χρησιμοποιήστε τη σταθερά vbCritical. Μπορείτε να το χρησιμοποιήσετε μαζί με άλλες σταθερές κουμπιών (βάζοντας ένα σύμβολο + μεταξύ των κωδικών).

Για παράδειγμα, παρακάτω είναι ένας κωδικός που θα εμφανίζει το προεπιλεγμένο κουμπί OK με ένα κρίσιμο εικονίδιο.

Sub MsgBoxCriticalIcon () MsgBox "This is a sample box", vbCritical End Sub

Εάν θέλετε να εμφανίσετε το κρίσιμο εικονίδιο με κουμπιά Ναι και Όχι, χρησιμοποιήστε τον ακόλουθο κώδικα:

Sub MsgBoxCriticalIcon () MsgBox "This is a sample box", vbΝαιΌχι + vbCritical End Sub

Εικονίδια MsgBox - Ερώτηση

Εάν θέλετε να εμφανίσετε ένα κρίσιμο εικονίδιο στο MsgBox σας, χρησιμοποιήστε τη σταθερά vbQuestion.

Sub MsgBoxQuestionIcon () MsgBox "This is a sample box", vbΝαιNo + vbQuestion End Sub

Εικονίδια MsgBox - θαυμαστικό

Εάν θέλετε να εμφανίσετε ένα θαυμαστικό στο MsgBox, χρησιμοποιήστε τη σταθερά vbExclamation.

Sub MsgBoxExclamationIcon () MsgBox "This is a sample box", vbΝαιNo + vbExclamation End Sub

Εικονίδια MsgBox - Πληροφορίες

Εάν θέλετε να εμφανίσετε ένα εικονίδιο πληροφοριών στο MsgBox σας, χρησιμοποιήστε τη σταθερά vbInformation.

Sub MsgBoxInformationIcon () MsgBox "This is a sample box", vbΝαιNo + vbInformation End Sub

Προσαρμογή τίτλου και προτροπής στο MsgBox

Όταν χρησιμοποιείτε το MsgBox, μπορείτε να προσαρμόσετε τον τίτλο και τα μηνύματα προτροπής.

Μέχρι στιγμής, το παράδειγμα που έχουμε δει έχει χρησιμοποιήσει το Microsoft Excel ως τίτλο. Σε περίπτωση που δεν καθορίσετε το όρισμα τίτλου, το MsgBox χρησιμοποιεί αυτόματα τον τίτλο της εφαρμογής (που ήταν το Microsoft Excel σε αυτήν την περίπτωση).

Μπορείτε να προσαρμόσετε τον τίτλο καθορίζοντάς τον στον κώδικα όπως φαίνεται παρακάτω:

Sub MsgBoxInformationIcon () MsgBox "Θέλετε να συνεχίσετε;", vb ΝαιΌχι + vbΕρώτηση, "Βήμα 1 από 3" Τέλος υπο

Ομοίως, μπορείτε επίσης να προσαρμόσετε το μήνυμα προτροπής.

Μπορείτε επίσης να προσθέσετε αλλαγές γραμμών στο μήνυμα προτροπής.

Στον παρακάτω κώδικα, έχω προσθέσει μια αλλαγή γραμμής χρησιμοποιώντας το 'vbNewLine'.

Sub MsgBoxInformationIcon () MsgBox "Θέλετε να συνεχίσετε;" & vbNewLine & "Κάντε κλικ στο Ναι για να συνεχίσετε", vbΝαιΌχι + vbΕρώτηση, "Βήμα 1 από 3" Τέλος υπο

Μπορείτε επίσης να χρησιμοποιήσετε τον χαρακτήρα επιστροφής μεταφοράς - Chr (13) - ή ροή γραμμής - Chr (10) για να εισαγάγετε μια νέα γραμμή στο μήνυμα προτροπής.

Σημειώστε ότι μπορείτε να προσθέσετε μια νέα γραμμή μόνο στο μήνυμα προτροπής και όχι τον τίτλο.

Εκχώρηση τιμής MsgBox σε μια μεταβλητή

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

Ωστόσο, κάνοντας κλικ σε ένα κουμπί δεν έχει γίνει τίποτα.

Με τη λειτουργία MsgBox στο Excel, μπορείτε να αποφασίσετε τι θέλετε να κάνετε όταν ένας χρήστης κάνει κλικ σε ένα συγκεκριμένο κουμπί. Και αυτό είναι δυνατό καθώς κάθε κουμπί έχει μια τιμή που σχετίζεται με αυτό.

Έτσι, αν κάνω κλικ στο κουμπί Ναι, η συνάρτηση MsgBox επιστρέφει μια τιμή (6 ή τη σταθερή vbΝαι) την οποία μπορώ να χρησιμοποιήσω στον κώδικά μου. Ομοίως, εάν ο χρήστης επιλέξει το κουμπί Όχι, επιστρέφει μια διαφορετική τιμή ((7 ή σταθερά vbNo)) που μπορώ να χρησιμοποιήσω στον κώδικα.

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

Κάντε κλικ στο κουμπί Συνεχής αξία
Εντάξει vbOk 1
Ματαίωση vbΑκύρωση 2
Κάνω αποβολή vbAbort 3
Προσπαθησε ξανα vbΕπανάληψη 4
Αγνοώ vb Αγνοήστε 5
Ναί vbΝαι 6
Οχι vb Όχι 7

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

Στον παρακάτω κώδικα, αν ο χρήστης κάνει κλικ στο Ναι, εμφανίζει το μήνυμα "Κάνατε κλικ στο Ναι" και εάν ο χρήστης κάνει κλικ στο Όχι, εμφανίζει "Κάνατε κλικ στο Όχι".

Sub MsgBoxInformationIcon () Αποτέλεσμα = MsgBox ("Θέλετε να συνεχίσετε;", vbYesNo + vbQuestion) Εάν Αποτέλεσμα = vb Ναι Τότε MsgBox "Κάνατε κλικ Ναι" Άλλο: MsgBox "Κάνατε Όχι" Τέλος Αν Τέλος Υπο

Στον παραπάνω κώδικα, έχω εκχωρήσει την τιμή της συνάρτησης MsgBox στη μεταβλητή Αποτέλεσμα. Όταν κάνετε κλικ στο κουμπί Ναι, η μεταβλητή Αποτέλεσμα αποκτά τη σταθερά vb Ναι (ή τον αριθμό 6) και όταν κάνετε κλικ στην Όχι, η μεταβλητή Αποτέλεσμα παίρνει τη σταθερά vbNo (ή τον αριθμό 7).

Στη συνέχεια, χρησιμοποίησα μια κατασκευή If then Else για να ελέγξω αν η μεταβλητή Result διατηρεί την τιμή vbΝαι. Αν το κάνει, εμφανίζει την προτροπή "Κάνατε κλικ στο Ναι", αλλιώς δείχνει "Κάνατε κλικ στο Όχι".

Μπορείτε να χρησιμοποιήσετε την ίδια έννοια για να εκτελέσετε έναν κώδικα εάν ένας χρήστης κάνει κλικ στο Ναι και βγείτε από το δευτερεύον όταν κάνει κλικ στο Όχι.

Σημείωση: Όταν εκχωρείτε την έξοδο MsgBox σε μια μεταβλητή, πρέπει να βάλετε τα ορίσματα της συνάρτησης MsgBox σε παρένθεση. Για παράδειγμα, στη γραμμή Αποτέλεσμα = MsgBox ("Θέλετε να συνεχίσετε;", vb Ναι Όχι + vbQuestion), μπορείτε να δείτε ότι τα ορίσματα βρίσκονται εντός παρένθεσης.

Εάν θέλετε να εμβαθύνετε περαιτέρω στη λειτουργία Πλαίσιο μηνυμάτων, εδώ είναι το επίσημο έγγραφο σε αυτό.

Μπορεί επίσης να σας αρέσουν τα ακόλουθα μαθήματα Excel VBA:

  • Λειτουργία διαχωρισμού Excel VBA.
  • Λειτουργία Excel VBA InStr.
  • Εργασία με κελιά και εύρη στο Excel VBA.
  • Εργασία με φύλλα εργασίας στο VBA.
  • Εργασία με βιβλία εργασίας σε VBA.
  • Χρήση βρόχων στο Excel VBA.
  • Κατανόηση τύπων δεδομένων Excel VBA (μεταβλητές και σταθερές)
  • Πώς να δημιουργήσετε και να χρησιμοποιήσετε προσωπικό προσωπικό βιβλίο μακροεντολών στο Excel.
  • Χρήσιμα παραδείγματα κώδικα μακροεντολής Excel.
  • Χρήση For Next Loop στο Excel VBA.
  • Excel VBA Events - Ένας εύκολος (και πλήρης) οδηγός.
  • Πώς να εκτελέσετε μια μακροεντολή στο Excel-Ένας πλήρης οδηγός βήμα προς βήμα.
  • Πώς να δημιουργήσετε και να χρησιμοποιήσετε ένα πρόσθετο Excel.

Θα βοηθήσει στην ανάπτυξη του τόπου, μοιράζονται τη σελίδα με τους φίλους σας

wave wave wave wave wave