VBA w Excelu - kurs dla początkujących |
|
|
|
|
VBA posiada narzędzia do tworzenia złożonych okien dialogowych, ale jeżeli chcesz szybko utworzyć proste okno komunikatu, możesz użyć funkcji MsgBox. Funkcja MsgBox - wyświetla okno dialogowe z jednym lub więcej przyciskami i czeka na reakcję, po czym zwraca wartość typu Integer określającą który przycisk został naciśniety.
Składnia: MsgBox(prompt[, buttons] [, title] [,helpfile, context]) W składni funkcji MsgBox argumenty zawarte w nawiasach prostokątnych są nieobowiązkowe. Samych nawiasów prostokątnych nie należy umieszczać w kodzie programu pisanego w języku Visual Basic. Dla funkcji MsgBox jedynym argumentem, który trzeba podać jest tekst wyświetlany w oknie (argument prompt). Nawiasów okrągłych używamy jeżeli funkcja jest przypisana do zmiennej. Funkcja MsgBox ma następujące argumenty:
Okno komunikatu utworzone za pomocą funkcji MsgBox oprócz tekstu może zawierać jedną z kilku ikon oraz jeden z kilku zestawów przycisków. To, jaką ikonę i jaki zestaw przycisków zawiera okno komunikatu, zależy od wartości przekazanej do parametru buttons. Przy określaniu parametru buttons możemy korzystać z wartości numerycznych jak i ze stałych. Argument buttons ma następujące ustawienia: Stała Wartość Opis
vbOKOnly 0 Wyświetl tylko przycisk OK.
VbOKCancel 1 Wyświetl przycisk OK i Anuluj.
VbAbortRetrylgnore 2 Wyświetl przycisk Przerwij, Ponów i Ignoruj.
VbYesNoCancel 3 Wyświetl przyciski Tak, Nie i Anuluj.
VbYesNo 4 Wyświetl przycisk Tak i Nie.
VbRetryCancel 5 Wyświetl przyciski Ponów i Anuluj.
VbCritical 16 Wyświetl ikonę Komunikat krytyczny.
VbQuestion 32 Wyświetl ikonę Pytanie ostrzegawcze.
VbExclamation 48 Wyświetl ikonę Komunikat ostrzegawczy.
VbInformation 64 Wyświetl ikonę Komunikat informacyjny.
VbDefaultButton1 0 Domyślnym przyciskiem jest przycisk pierwszy.
VbDefaultButton2 256 Domyślnym przyciskiem jest przycisk drugi.
VbDefaultButton3 512 Domyślnym przyciskiem jest przycisk trzeci.
VbDefaultButton4 768 Domyślnym przyciskiem jest przycisk czwarty.
VbApplicationModal 0 Okno modalne w aplikacji; działanie bieżącej aplikacji zostanie wstrzymane, dopóki użytkownik nie odpowie na wyświetlony komunikat.
VbSystemModal 4096 Okno modalne w systemie; działanie wszystkich aplikacji zostanie wstrzymane, dopóki użytkownik nie odpowie na wyświetlony komunikat.
Ustawienia wartości argumentu buttons możemy podzielić na kilka grup. Pierwsza grupa wartości od 0 do 5 opisuje liczbę i typ przycisków. Druga grupa 16, 32, 48, 64 opisuje rodzaje ikon. Trzecia grupa 0, 256, 512 określa domyślny przycisk okna. Czwarta grupa 0, 4096 definiuje modalność okna komunikatu.
Wartości zwracane przez funkcje MsgBox:
Funkcja MsgBox po kliknięciu na odpowiedni przycisk w wyświetlanym oknie komunikatu zwraca określoną wartość, która odpowiada naciśnietemu przyciskowi. MsgBox "Zakończono zadanie", 0, "Okno zadania" Aby wykorzystać wartość zwracaną przez funkcję, należy umieścić argumenty w nawiasach i przypisać zwracaną wartość do zmiennej. Odp = MsgBox("Czy jesteś zadowolony ze swoich zarobków?", 4, "Pytanie 3") Wartość zwracana określa który przycisk został naciśnięty, wartość ta jest liczbą całkowitą ale możemy również korzystać ze stałych przedstawionych poniżej. Jeżeli zatem użytkownik kliknie przycisk Anuluj funkcja MsgBox zwróci wartość 2 i stałą vbCancel. Poniżej przedstawiam wartości zwracane przez funkcję MsgBox. Stała Wartość Opis
vbOK 1 Naciśnięto przycisk OK.
vbCancel 2 Naciśnięto przycisk Anuluj.
vbAbort 3 Naciśnięto przycisk Przerwij.
vbRetry 4 Naciśnięto przycisk Ponów.
vbIgnore 5 Naciśnięto przycisk Ignoruj.
vbYes 6 Naciśnięto przycisk Tak.
vbNo 7 Naciśnięto przycisk Nie.
Zastosowanie: Funkcje MsgBox możemy wykorzystać na wiele sposobów np: podając informację, ostrzegając o czymś czy dając użytkownikowi możliwość wyboru sposobu dalszego działania programu. Poniżej przedstawiam kilka kodów przykładów, oczywiście kody z przykładów umieszczamy w odpowiedniej procedurze. Przykład 1: MsgBox "Witaj" ' Wyświetlane jest okno komunikatu z komunikatem Witaj. Przykład 2: MsgBox "Witaj" & " Przyjacielu" ' Wyświetlane jest okno komunikatu z komunikatem Witaj Przyjacielu. Do połączenia wyrazów użyliśmy operatora &. Przykład 3: MsgBox "Witaj" & Chr(10) & "Przyjacielu" ' Wyświetlane jest okno komunikatu z komunikatem umieszczonym w dwóch wierszach: górny to słowo Witaj dolny słowo Przyjacielu. Dla osiągnięcia tego efektu zastosowaliśmy znak nowego wiersza Chr(10), do połączenia wyrazów wykorzystaliśmy też operator łączący &. Przykład 4: MsgBox "Witaj", , "dzono4" ' Wyświetlane jest okno komunikatu z komunikatem Witaj a na pasku tytułu napis dzono4. Pominęliśmy wartość argumentu buttons stawiając sam przecinek, brak tego parametru spowoduje przyjęcie wartości domyślnej 0. Przykład 5: MsgBox "Witaj", VbOKCancel, "dzono4" ' Wyświetlane jest okno komunikatu z komunikatem Witaj i dwoma przyciskamy Ok i Anuluj. Na pasku tytułu napis dzono4. Parametr buttons określa stała VbOKCancel. Przykład 6: MsgBox "Witaj", 321, "dzono4" ' W przykładzie argumeny buttons jest określony za pomącą wartości liczbowych. Dla przypomnienia dodam, że z każdej grupy ustawień argumentu buttons należy wybrać tylko jedną wartość i te wartość zsumować. Proponuję zastanowić się dlaczego niektóre ustawienia wartości argumentu buttons mają wartość 0. Przykład 7: MsgBox "Czy jesteś zadowolony ze swoich zarobków?", VbYesNo + VbInformation + VbDefaultButton1, "Kierownik" ' Wyświetlane jest okno komunikatu z pytaniem, dwoma przyciskami Tak i Nie oraz ikona Komunikat informacyjny. Na pasku tytułu napis Kierownik, domyślnym przyciskiem jest przycisk pierwszy (Tak). Przykład 8:
Dim Kom, Styl, Tytul Przykład 9:
Dim Odp, Kom, Styl, Tytul Przykład 10:
Dim Odp Przykład 11:
Dim Odp
Opisane wyżej przykłady możemy przetestować w następujący sposób: Uwaga: - dla potrzeb kursu, określony kod przykładu umieściłem w procedurze zdarzenia Click Przycisku polecenia. Oczywiście odpowiedni kod z przykładu możemy wykorzystać w dowolnej innej procedurze.
Private Sub CommandButton1_Click()
Słownictwo:
|