Tak Nie Skrzynka wiadomości (Msgbox) - Przykłady kodu VBA

W tym samouczku omówiono, jak używać funkcji VBA MsgBox do wyświetlania użytkownikom okien komunikatów (w tym pola komunikatu YesNo). Możesz również zainteresować się naszym artykułem o InputBoxes.

Funkcja VBA MsgBox

W VBA łatwo wyświetlić prosty MsgBox:

1 MsgBox "To jest okno wiadomości"

Możesz jednak zrobić o wiele więcej niż tylko wyświetlić proste okno komunikatu OK. Przyjrzyjmy się szybko skomplikowanemu przykładowi, zanim zagłębimy się w konkrety…

VBA TakNie Pole wiadomości

Poniżej stworzymy okno wiadomości z:

  • Tytuł „Tytuł skrzynki wiadomości” i monit „Tekst”
  • Ikona znaku zapytania
  • Tak / Nie opcje zamiast prostego „OK”
  • Domyślny przycisk = „Nie”
123 Ciemna odpowiedź jako liczba całkowitaanswer = MsgBox("Tekst", vbQuestion + vbYesNo + vbDefaultButton2, "Tytuł skrzynki wiadomości")

Okno komunikatu zwróci vbYes lub vbNo w zależności od wyboru użytkownika. Następnie możesz wykonać różne czynności w zależności od wyboru:

12345 Jeśli odpowiedź = vbTak WtedyMsgBox "Tak"W przeciwnym razieMsgBox "Nie"Zakończ, jeśli

W następnej sekcji pokażemy Ci wszystkie opcje dostępne podczas tworzenia skrzynek wiadomości. Następnie przedstawimy składnię funkcji MsgBox, a na koniec omówimy inne przykłady okien komunikatów.

Opcje okna wiadomości VBA

Spójrz na poniższy obrazek. Tutaj zobaczysz (prawie) wszystkie opcje dostępne podczas tworzenia skrzynek wiadomości. Zwróć uwagę na ikony i różne przyciski.

To jest zrzut ekranu „MessageBox Builder” z naszego dodatku Premium VBA: AutoMacro. MessageBox Builder pozwala szybko zaprojektować żądaną skrzynkę wiadomości i wstawić kod do modułu kodu. Zawiera również wiele innych kreatorów kodu, obszerną bibliotekę kodów VBA oraz zestaw narzędzi do kodowania. To pozycja obowiązkowa dla każdego programisty VBA.

Składnia funkcji MsgBox

MsgBox( monit [, przyciski ] [, tytuł ] [, plik pomocy, kontekst ] )

monit (wymagane) - To jest tekst głównego okna wiadomości.

guziki - Wybierz przyciski do wyświetlenia. Jeśli pominięto, „tylko OK”. Tutaj możesz również określić, jaką ikonę chcesz wyświetlić oraz przycisk domyślny.

tytuł – Tytuł u góry okna wiadomości. W przypadku pominięcia wyświetlana jest nazwa bieżącej aplikacji (np. Microsoft Excel).

plik pomocy - Określ plik pomocy, do którego można uzyskać dostęp, gdy użytkownik kliknie przycisk „Pomoc”. Jeśli określono, musisz również dodać kontekst (poniżej)

kontekst - Wyrażenie liczbowe reprezentujące numer kontekstu Pomocy przypisany do odpowiedniego tematu Pomocy.

Prawdopodobnie możesz zignorować argumenty pliku pomocy i kontekstu. Nigdy nie widziałem ich używanych.

Dostosuj tytuł i monit pola wiadomości

Funkcja MsgBox pozwala dostosować tytuł i monity, takie jak:

1 Msgbox "Monit", "Tytuł"

Inny przykład:

123 Sub MsgBoxPromptTitle()MsgBox "Krok 1 zakończony. Kliknij OK, aby uruchomić krok 2.", "Krok 1 z 5"Napis końcowy

Ważny! Musisz pamiętać, aby otoczyć tekst cytatami.

MessageBox Line Breaks

Możesz także dodać podziały wierszy do monitów w oknie wiadomości za pomocą „vbNewLine”.

123 Sub MsgBoxPromptTitle_NewLine()MsgBox "Krok 1 zakończony." & vbNewLine & "Kliknij OK, aby uruchomić Krok 2.", , "Krok 1 z 5"Napis końcowy

Zauważ, że do łączenia tekstu używamy symbolu &. Możesz dowiedzieć się więcej o używaniu & z tekstem i innych opcjach wstawiania podziałów wierszy w naszym artykule na temat łączenia tekstu.

Ikony MsgBox

VBA daje możliwość dodania jednej z czterech gotowych ikon do skrzynek wiadomości:

Ikona Stała Ikona
vbInformacje
vbKrytyczny
vbPytanie
vbWykrzyknik

Stała Icon powinna być umieszczona w argumencie button:

123 Sub MsgBoxQuestionIcon()MsgBox "Przykład pytania", vbQuestionNapis końcowy

Spowoduje to wygenerowanie domyślnego okna komunikatu „OK” z ikoną pytania:

Zwróć uwagę, jak podczas pisania Edytor VBA pokaże Ci dostępne opcje:

Jest to pomocne, ponieważ nie musisz pamiętać dokładnej składni ani nazw ikon lub przycisków.

Teraz zademonstrujemy każdą ikonę okna wiadomości:

Ikony MsgBox - Informacje

123 Sub MsgBoxInformationIcon()MsgBox "Przykład informacji", vbInformationNapis końcowy

Ikony MsgBox - krytyczne

123 Sub MsgBoxCriticalIcon()MsgBox "Przykład krytyczny", vbCriticalNapis końcowy

Ikony MsgBox - Pytanie

123 Sub MsgBoxQuestionIcon()MsgBox "Przykład pytania", vbQuestionNapis końcowy

Ikony MsgBox - wykrzyknik

123 Sub MsgBoxExclamationIcon()MsgBox "Przykład wykrzyknika", vbExclamationNapis końcowy

Poniżej omówimy generowanie okienek wiadomości z różnymi układami przycisków. Jeśli wybierzesz inny typ okna wiadomości, będziesz musiał dodać typ ikony po przyciskach za pomocą „+”:

123 Sub MsgBoxQuestionIcon()MsgBox "Czy chcesz kontynuować?", vbOKCancel + vbQuestionNapis końcowy

Zmienne MsgBox

Do tej pory pracowaliśmy głównie z domyślnym oknem komunikatu „OK”. Okno komunikatu OK ma tylko jedną opcję: naciśnięcie „OK” umożliwia kontynuację kodu. Możesz jednak określić również inne grupy przycisków: OK / Anuluj, Tak / Nie itp.

W takim przypadku będziesz chciał wykonać różne akcje w zależności od tego, który przycisk zostanie naciśnięty. Spójrzmy na przykład.

Oto okno wiadomości, które wygenerujemy:

To jest cały kod (następnie go rozbijemy):

123456789101112 Sub MsgBox Variable()Ciemna odpowiedź jako liczba całkowitaanswer = MsgBox("Czy chcesz kontynuować?", vbQuestion + vbYesNo)Jeśli odpowiedź = vbTak WtedyMsgBox "Tak"W przeciwnym razieMsgBox "Nie"Zakończ, jeśliNapis końcowy

Najpierw przypisujemy wyjście komunikatu do zmiennej całkowitej.

123 Ciemna odpowiedź jako liczba całkowitaanswer = MsgBox("Czy chcesz kontynuować?", vbQuestion + vbYesNo)

Następnie używamy If-Else, aby określić, co zrobić w zależności od tego, który przycisk został naciśnięty:

12345 Jeśli odpowiedź = vbTak WtedyMsgBox "Tak"W przeciwnym razieMsgBox "Nie"Zakończ, jeśli

Funkcja MsgBox zwraca wartość całkowitą (od 1 do 7), więc definiujemy zmienną jako typ całkowity. Jednak zamiast odnosić się do liczby całkowitej, możesz odwoływać się do stałej (np. vbOK, vbCancel itp.). Spójrz na tę tabelę, aby zobaczyć wszystkie opcje:

Przycisk Stały Wartość
ok vb OK 1
Anulować vbAnuluj 2
Anulować vbAbort 3
Spróbować ponownie vbRetry 4
Ignorować vbIgnoruj 5
tak vbTak 6
Nie vbNo 7

Teraz zademonstrujemy każdą grupę przycisków:

OK Okno wiadomości - vbOKOnly

To jest standardowe okno komunikatów VBA.

123456 Sub MsgBox_OKTylko()Ciemna odpowiedź jako liczba całkowitaanswer = MsgBox("Przykład tylko OK", tylko vbOK)Napis końcowy

OK Anuluj Skrzynka wiadomości - vbOKAnuluj

123456789101112 Sub MsgBox_OKAnuluj()Ciemna odpowiedź jako liczba całkowitaanswer = MsgBox("Przykład OK Anuluj", vbOKCancel)Jeśli odpowiedź = vbOK WtedyMsgBox "OK"W przeciwnym razieMsgBox "Anuluj"Zakończ, jeśliNapis końcowy

Tak Nie Skrzynka wiadomości - vbYesNo

123456789101112 Sub MsgBox_TakNie()Ciemna odpowiedź jako liczba całkowitaanswer = MsgBox("Tak Nie Przykład", vbYesNo)Jeśli odpowiedź = vbTak WtedyMsgBox "Tak"W przeciwnym razieMsgBox "Nie"Zakończ, jeśliNapis końcowy

Tak Nie Anuluj Skrzynka wiadomości - vbYesNoCancel

1234567891011121314 Sub MsgBox_TakNieAnuluj()Ciemna odpowiedź jako liczba całkowitaanswer = MsgBox("Tak Nie Anuluj Przykład", vbYesNoCancel)Jeśli odpowiedź = vbTak WtedyMsgBox "Tak"Odpowiedź ElseIf = vbNo ThenMsgBox "Nie"W przeciwnym razieMsgBox "Anuluj"Zakończ, jeśliNapis końcowy

Przerwij ponowienie Ignoruj ​​okno komunikatu - vbAbortRetryIgnore

1234567891011121314 Sub MsgBox_AbortRetryIgnore()Ciemna odpowiedź jako liczba całkowitaanswer = MsgBox("Przykład ignorowania ponawiania próby przerwania", vbAbortRetryIgnore)Jeśli odpowiedź = vbAbort WtedyMsgBox "Przerwij"ElseIf odpowiedź = vbRetry ThenMsgBox "Ponów"W przeciwnym razieMsgBox "Ignoruj"Zakończ, jeśliNapis końcowy

Ponów Anuluj okno wiadomości - vbRetryCancel

123456789101112 Sub MsgBox_RetryCancel()Ciemna odpowiedź jako liczba całkowitaanswer = MsgBox("Przykład anulowania ponownych prób", vbRetryCancel)Jeśli odpowiedź = vbPonów wtedyMsgBox "Ponów"W przeciwnym razieMsgBox "Anuluj"Zakończ, jeśliNapis końcowy

Przykłady VBA MessageBox

Potwierdzenie w oknie komunikatu przed uruchomieniem makra

Ten kod wyświetli okno komunikatu Tak Nie przed wywołaniem makra. Jeśli klikniesz Tak, makro zostanie wywołane, jeśli klikniesz Nie, makro nie zostanie uruchomione.

12345678 Sub Msgbox_Przed uruchomieniem()Ciemna odpowiedź jako liczba całkowitaanswer = MsgBox("Czy chcesz uruchomić Makro1?", vbQuestion + vbYesNo)Jeśli odpowiedź = vbTak, Wywołaj Makro1Napis końcowy

Tak / Nie Skrzynka wiadomości - Wyjdź z napisów

Tutaj potwierdzimy z użytkownikiem, czy kontynuować uruchamianie makra. Jeśli klikniesz Nie, kod wyjdzie z podrzędnej, w przeciwnym razie procedura będzie kontynuowana.

12345678910 Sub Msgbox_Przed uruchomieniem()Ciemna odpowiedź jako liczba całkowitaanswer = MsgBox("Czy chcesz kontynuować?", vbQuestion + vbYesNo)Jeśli odpowiedź = vbNo to wyjdź z Sub„Jakiś kod”Napis końcowy

Okno komunikatów VBA w programie Access VBA

Wszystkie powyższe przykłady działają dokładnie tak samo w Access VBA, jak w Excel VBA.

Będziesz pomóc w rozwoju serwisu, dzieląc stronę ze swoimi znajomymi

wave wave wave wave wave