Ναι Όχι Κιβώτιο μηνυμάτων (Msgbox) - Παραδείγματα κώδικα VBA

Αυτό το σεμινάριο θα καλύψει τον τρόπο χρήσης της λειτουργίας VBA MsgBox για την εμφάνιση γραμματοκιβωτίων στους χρήστες (συμπεριλαμβανομένου του YesNo Messagebox). Μπορεί επίσης να σας ενδιαφέρει το άρθρο μας για τα InputBoxes.

Λειτουργία VBA MsgBox

Στο VBA, είναι εύκολο να εμφανίσετε ένα απλό MsgBox:

1 MsgBox "Αυτό είναι ένα πλαίσιο μηνυμάτων"

Ωστόσο, μπορείτε να κάνετε πολλά περισσότερα από το να εμφανίσετε ένα απλό πλαίσιο μηνυμάτων OK. Ας δούμε γρήγορα ένα περίπλοκο παράδειγμα πριν προχωρήσουμε σε συγκεκριμένα…

VBA YesNo Box Message

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

  • Ένας τίτλος "Τίτλος κουτιού μηνυμάτων" και προτροπή "Κείμενο"
  • Εικονίδιο ερωτηματικού
  • Ναι / Όχι επιλογές αντί για ένα απλό "OK"
  • Προεπιλεγμένο κουμπί = "Όχι"
123 Αμυδρή απάντηση ως ακέραιοςanswer = MsgBox ("Κείμενο", vbQuestion + vb Ναι Όχι + vbDefaultButton2, "Title Box Message")

Το γραμματοκιβώτιο θα επιστρέψει vbΝαι ή vbNo ανάλογα με την επιλογή του χρήστη. Στη συνέχεια, μπορείτε στη συνέχεια να εκτελέσετε διαφορετικές ενέργειες με βάση την επιλογή:

12345 Αν απάντηση = vbΝαι ΤότεMsgBox "Ναι"ΑλλούMsgBox "Όχι"Τέλος εαν

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

Επιλογές κουτιού μηνυμάτων VBA

Ρίξτε μια ματιά στην παρακάτω εικόνα. Εδώ θα δείτε (σχεδόν) όλες τις επιλογές που έχετε στη διάθεσή σας κατά τη δημιουργία πλαισίων μηνυμάτων. Προσέξτε τα εικονίδια και τα διαφορετικά κουμπιά.

Αυτό είναι ένα στιγμιότυπο οθόνης του "MessageBox Builder" από το πρόσθετο Premium VBA: AutoMacro. Το MessageBox Builder σάς επιτρέπει να σχεδιάσετε γρήγορα την επιθυμητή θυρίδα μηνυμάτων και να εισαγάγετε τον κώδικα στη μονάδα κώδικα. Περιέχει επίσης πολλούς άλλους δημιουργούς κώδικα, μια εκτενή βιβλιοθήκη κώδικα VBA και μια ποικιλία εργαλείων κωδικοποίησης. Είναι απαραίτητο για κάθε προγραμματιστή VBA.

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

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

προτροπή (απαιτείται) - Αυτό είναι το κύριο κείμενο του πλαισίου μηνύματος.

κουμπιά - Επιλέξτε ποια κουμπιά θα εμφανίζονται. Εάν παραλειφθεί, «ΟΚ μόνο». Εδώ μπορείτε επίσης να καθορίσετε ποιο εικονίδιο θα εμφανιστεί και το προεπιλεγμένο κουμπί.

τίτλος - Ο τίτλος στο πάνω μέρος του πλαισίου μηνυμάτων. Εάν παραλειφθεί, εμφανίζεται το όνομα της τρέχουσας εφαρμογής (π.χ. Microsoft Excel).

helpfile - Καθορίστε το αρχείο βοήθειας στο οποίο μπορείτε να έχετε πρόσβαση όταν ο χρήστης κάνει κλικ στο κουμπί «Βοήθεια». Εάν καθοριστεί, τότε πρέπει επίσης να προσθέσετε πλαίσιο (παρακάτω)

συμφραζόμενα - Αριθμητική έκφραση που αντιπροσωπεύει τον αριθμό περιβάλλοντος της Βοήθειας που έχει εκχωρηθεί στο κατάλληλο θέμα Βοήθειας.

Μπορείτε πιθανώς να αγνοήσετε το αρχείο βοήθειας και τα επιχειρήματα περιβάλλοντος. Δεν τα έχω δει ποτέ μεταχειρισμένα.

Προσαρμογή τίτλου και προτροπής κουτιού μηνυμάτων

Η λειτουργία MsgBox σάς επιτρέπει να προσαρμόσετε τον τίτλο και τα μηνύματα προτροπής όπως:

1 Msgbox "Προτροπή", "Τίτλος"

Ενα άλλο παράδειγμα:

123 Sub MsgBoxPromptTitle ()MsgBox "Βήμα 1 Ολοκληρώθηκε. Κάντε κλικ στο OK για να εκτελέσετε το βήμα 2." ,, "Βήμα 1 από 5"Τέλος υπο

Σπουδαίος! Πρέπει να θυμάστε να περιβάλλετε το κείμενό σας με εισαγωγικά.

MessageBox LineBreaks

Μπορείτε επίσης να προσθέσετε αλλαγές γραμμών στις προτροπές του κουτιού μηνυμάτων σας με το «vbNewLine».

123 Sub MsgBoxPromptTitle_NewLine ()MsgBox "Βήμα 1 Ολοκληρώθηκε." & vbNewLine & "Κάντε κλικ στο OK για εκτέλεση του βήματος 2.",, "Βήμα 1 από 5"Τέλος υπο

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

Εικονίδια MsgBox

Το VBA σας δίνει τη δυνατότητα να προσθέσετε ένα από τα τέσσερα προσχεδιασμένα εικονίδια στα κουτιά μηνυμάτων σας:

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

Η σταθερά εικονιδίου πρέπει να τοποθετηθεί μέσα στο όρισμα κουμπιού:

123 Sub MsgBoxQuestionIcon ()MsgBox "Παράδειγμα Ερωτήσεων", vbQuestionΤέλος υπο

Αυτό θα δημιουργήσει το προεπιλεγμένο πλαίσιο μηνύματος "ΟΚ" με το εικονίδιο Ερώτηση:

Παρατηρήστε πώς κατά την πληκτρολόγηση, ο VBA Editor θα σας εμφανίσει τις διαθέσιμες επιλογές:

Αυτό είναι χρήσιμο επειδή δεν χρειάζεται να θυμάστε την ακριβή σύνταξη ή τα ονόματα των εικονιδίων ή των κουμπιών.

Τώρα θα παρουσιάσουμε κάθε εικονίδιο κουτιού μηνυμάτων:

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

123 Sub MsgBoxInformationIcon ()MsgBox "Παράδειγμα πληροφοριών", vbInformationΤέλος υπο

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

123 Sub MsgBoxCriticalIcon ()MsgBox "Κριτικό Παράδειγμα", vbCriticalΤέλος υπο

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

123 Sub MsgBoxQuestionIcon ()MsgBox "Παράδειγμα Ερωτήσεων", vbQuestionΤέλος υπο

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

123 Sub MsgBoxExclamationIcon ()MsgBox "Παράδειγμα θαυμασμού", vbExclamationΤέλος υπο

Παρακάτω θα μιλήσουμε για τη δημιουργία πλαισίων μηνυμάτων με διαφορετικές διατάξεις κουμπιών. Εάν επιλέξετε έναν διαφορετικό τύπο πλαισίου μηνυμάτων, θα πρέπει να προσθέσετε τον τύπο εικονιδίου μετά τα κουμπιά χρησιμοποιώντας ένα "+":

123 Sub MsgBoxQuestionIcon ()MsgBox "Θέλετε να συνεχίσετε;", vbOKCancel + vbQuestionΤέλος υπο

MsgBox Μεταβλητές

Μέχρι στιγμής έχουμε εργαστεί κυρίως με το προεπιλεγμένο πλαίσιο μηνύματος "ΟΚ". Το πλαίσιο μηνυμάτων ΟΚ έχει μόνο μία επιλογή: Πατώντας «ΟΚ» επιτρέπει τη συνέχιση του κώδικα. Ωστόσο, μπορείτε επίσης να καθορίσετε άλλες ομαδοποιήσεις κουμπιών: OK / Cancel, Yes / No κ.λπ.

Σε αυτήν την περίπτωση θα θέλετε να εκτελέσετε διαφορετικές ενέργειες με βάση το κουμπί που πατάτε. Ας δούμε ένα παράδειγμα.

Εδώ είναι το πλαίσιο μηνυμάτων που θα δημιουργήσουμε:

Αυτός είναι ολόκληρος ο κώδικας (θα τον αναλύσουμε στη συνέχεια):

123456789101112 Sub MsgBoxVariable ()Αμυδρή απάντηση ως ακέραιοςanswer = MsgBox ("Θέλετε να συνεχίσετε;", vbQuestion + vb Ναι Όχι)Αν απάντηση = vbΝαι ΤότεMsgBox "Ναι"ΑλλούMsgBox "Όχι"Τέλος εανΤέλος υπο

Αρχικά εκχωρούμε την έξοδο του γραμματοκιβωτίου σε μια ακέραια μεταβλητή.

123 Αμυδρή απάντηση ως ακέραιοςanswer = MsgBox ("Θέλετε να συνεχίσετε;", vbQuestion + vb Ναι Όχι)

Στη συνέχεια, χρησιμοποιούμε ένα If-Else για να καθορίσουμε τι πρέπει να κάνουμε με βάση το κουμπί που πατάμε:

12345 Αν απάντηση = vbΝαι ΤότεMsgBox "Ναι"ΑλλούMsgBox "Όχι"Τέλος εαν

Η συνάρτηση MsgBox επιστρέφει μια ακέραιη τιμή (μεταξύ 1-7), οπότε ορίζουμε τη μεταβλητή ως ακέραιο τύπο. Ωστόσο, αντί να αναφέρεστε στον ακέραιο αριθμό, μπορείτε να αναφερθείτε σε μια σταθερά (π.χ. vbOK, vbCancel, κ.λπ.). Κοιτάξτε αυτόν τον πίνακα για να δείτε όλες τις επιλογές:

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

Τώρα θα παρουσιάσουμε κάθε ομάδα κουμπιών:

OK Message Box - vbOKΜόνο

Αυτό είναι το τυπικό κιβώτιο μηνυμάτων VBA.

123456 Sub MsgBox_OKOnly ()Αμυδρή απάντηση ως ακέραιοςanswer = MsgBox ("OKOnly Παράδειγμα", vbOKOnly)Τέλος υπο

OK Ακύρωση κουτιού μηνυμάτων - vbOKΑκύρωση

123456789101112 Sub MsgBox_OKCancel ()Αμυδρή απάντηση ως ακέραιοςanswer = MsgBox ("OK Cancel Παράδειγμα", vbOKCancel)Αν απάντηση = vbOK ΤότεMsgBox "ΟΚ"ΑλλούMsgBox "Ακύρωση"Τέλος εανΤέλος υπο

Ναι Όχι Μήνυμα - vb Ναι Όχι

123456789101112 Υπο MsgBox_Ναι Όχι ()Αμυδρή απάντηση ως ακέραιοςanswer = MsgBox ("Ναι Όχι Παράδειγμα", vb Ναι Όχι)Αν απάντηση = vbΝαι ΤότεMsgBox "Ναι"ΑλλούMsgBox "Όχι"Τέλος εανΤέλος υπο

Ναι Όχι Ακύρωση Πλαίσιο Μηνυμάτων - vb ΝαιΌχιΑκύρωση

1234567891011121314 Υπο MsgBox_YesNoCancel ()Αμυδρή απάντηση ως ακέραιοςanswer = MsgBox ("Ναι Όχι Παράδειγμα ακύρωσης", vbYesNoCancel)Αν απάντηση = vbΝαι ΤότεMsgBox "Ναι"Αλλιώς Αν απάντηση = vb Όχι ΤότεMsgBox "Όχι"ΑλλούMsgBox "Ακύρωση"Τέλος εανΤέλος υπο

Abort Retry Ignore Message Box - vbAbortRetryIgnore

1234567891011121314 Sub MsgBox_AbortRetryIgnore ()Αμυδρή απάντηση ως ακέραιοςanswer = MsgBox ("Abort Retry Ignore Παράδειγμα", vbAbortRetryIgnore)Αν απάντηση = vbAbort ΤότεMsgBox "Αποβολή"ElseIf answer = vbΕπανάληψη τότεMsgBox "Επανάληψη"ΑλλούMsgBox "Αγνόηση"Τέλος εανΤέλος υπο

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

123456789101112 Sub MsgBox_RetryCancel ()Αμυδρή απάντηση ως ακέραιοςanswer = MsgBox ("Επανάληψη ακύρωσης παραδείγματος", vbRetryCancel)Αν απάντηση = vbΕπανάληψη τότεMsgBox "Επανάληψη"ΑλλούMsgBox "Ακύρωση"Τέλος εανΤέλος υπο

Παραδείγματα VBA MessageBox

Επιβεβαίωση πλαισίου μηνυμάτων πριν από την εκτέλεση της μακροεντολής

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

12345678 Sub Msgbox_BeforeRunning ()Αμυδρή απάντηση ως ακέραιοςanswer = MsgBox ("Θέλετε να εκτελέσετε Macro1;", vbQuestion + vbΝαιΌχι)Αν απάντηση = vbΝαι Στη συνέχεια καλέστε Macro1Τέλος υπο

Ναι / Όχι Πλαίσιο μηνυμάτων - Έξοδος από υπο

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

12345678910 Sub Msgbox_BeforeRunning ()Αμυδρή απάντηση ως ακέραιοςanswer = MsgBox ("Θέλετε να συνεχίσετε;", vbQuestion + vb Ναι Όχι)Αν απάντηση = vb Όχι Τότε Έξοδος από υπο«Κάποιος κώδικαςΤέλος υπο

Κιβώτιο μηνυμάτων VBA στην πρόσβαση VBA

Όλα τα παραπάνω παραδείγματα λειτουργούν ακριβώς το ίδιο στην Access VBA όπως στο Excel VBA.

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

wave wave wave wave wave