VBA w Exce18, excel


VBA w Excelu - kurs dla początkujących

0x01 graphic
Okno komunikatu funkcji MsgBox

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.

0x01 graphic

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:

  • prompt - argument obowiązkowy, wyrażenie znakowe wyświetlane jako komunikat w oknie dialogowym. Maksymalna długość prompt wynosi około 1024 znaki, zależnie od szerokości znaków w zastosowanej czcionce. Jeśli prompt składa się z kilku wierszy, należy je rozdzielić wstawiając znak powrotu karetki Chr(13) lub znak nowego wiersza Chr(10) albo kombinację znaków powrót karetki i nowy wiersz Chr(13) & Chr(10). Jeżeli chcemy wyświetlić zwykły tekst musimy go umieścić w cudzysłowie " ". Możemy też wyświetlić inne wartości, które wcześniej przypisaliśmy do zmiennej, wtedy wpisujemy nazwę zmiennej (bez cudzysłowu). Jeżeli treść komunikatu ma się składać z kilku ciągów musimy je połączyć operatorem &.

  • buttons - argument nieobowiązkowy, wyrażenie numeryczne określające liczbę i typ wyświetlanych przycisków, rodzaj i styl używanych ikon, identyfikator domyślnego przycisku oraz modalność okna komunikatu. Brak parametru buttons spowoduje przyjęcie wartości domyślnej równej 0 (zero). W dalszej części podaje ustawienia argumentu buttons.

  • title - argument nieobowiązkowy, wyrażenie znakowe wyświetlane na pasku tytułu okna dialogowego. Brak argumentu title spowoduje, że na pasku tytułu zostanie umieszczona nazwa aplikacji.

  • helpfile - argument nieobowiązkowy, wyrażenie znakowe określające plik Pomocy zawierający pomoc kontekstową. Argument helpfile musi być zawsze podany z argumentem context.

  • context - argument nieobowiązkowy, wyrażenie numeryczne określające identyfikator tematu w pliku Pomocy. Jeśli podany jest argument context, to musi być również podany argument helpfile.

0x01 graphic

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.

0x01 graphic

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.
Uwaga - tworząc wartość argumentu buttons, z każdej grupy należy wybrać tylko jedną wartość i te wartość zsumować.

0x01 graphic

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.
Jeśli zwracana wartość ma zostać zignorowana, zamiast funkcji MsgBox możemy użyć instrukcji MsgBox. Należy pominąć nawiasy, podać listę argumentów i nie przypisywać wyniku do zmiennej. Na przykład:

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.

0x01 graphic

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
 Kom = "Czy jesteś zadowolony ze swoich zarobków?"
 Styl = VbYesNo + VbInformation + VbDefaultButton1
 Tytul = "Kierownik"
  MsgBox Kom, Styl, Tytul
' Przykład ten wyświetla okno komunikatu identyczne jak wyżej, różnica polega na formie zapisu. Deklarujemy zmienne i określamy wartości, wartości przypisujemy zmiennym. Jako argumenty funkcji MsgBox wpisujemy nazwy zmiennych.

Przykład 9:

Dim Odp, Kom, Styl, Tytul
 Kom = "Czy jesteś zadowolony ze swoich zarobków?"
 Styl = VbYesNo + VbInformation + VbDefaultButton1
 Tytul = "Kierownik"
  Odp = MsgBox (Kom, Styl, Tytul)
'Przykład ten wyświetla okno komunikatu identyczne jak wyżej. Jak wiemy funkcja MsgBox zwraca argumenty, które możemy w jakiś sposób wykorzystać. Aby wykorzystać wartość zwracaną przez funkcję należy przypisać tę funkcję do zmiennej i ująć argumenty w nawiasy, jak pokazaną w tym przykładzie. Jeżeli nie przypiszemy funkcji do zmiennej a argumenty zostaną ujęte w nawiasy, instrukcja spowoduje błąd składniowy.

Przykład 10:

Dim Odp
 Odp = MsgBox ("Czy jesteś zadowolony ze swoich zarobków?", VbYesNo + VbInformation + VbDefaultButton1, "Kierownik")
'Przykład taki sam jak wyżej tylko lecz w innym wydaniu.

Przykład 11:

Dim Odp
 Odp = MsgBox ("Czy jesteś zadowolony ze swoich zarobków?", VbYesNo + VbInformation + VbDefaultButton1, "Kierownik")
  
If Odp = 6 Then
   MsgBox "To dobrze", , "Kierownik"
  
Else
   MsgBox "Fatalnie", , "Kierownik"
  
End If 'W tym przykładzie wykorzystaliśmy wartości zwracane przez funkcję MsgBox. Jeżeli użytkownik kliknie na przycisk Tak wyświetlany jest komunikat To dobrze, po kliknięciu na przycisk Nie wyświetlany jest komunikat Fatalnie . Oczywiście wartości zwracane przez funkcję MsgBox możemy wykorzystać na wiele sposobów, zależy to przede wszystkim od wiedzy i pomysłowości użytkownika.

0x01 graphic

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.

  • Uruchom Microsoft Excel.

  • Z menu Widok wybieramy Paski narzędzi a następnie Przybornik formantów (jeżeli nie jest widoczny).

  • W Przyborniku formantów wyszukaj i kliknij na ikonę Przycisk polecenia a następnie miejsce w arkuszu gdzie chcesz go umieścić. Ikona Tryb projektowania w przyborniku powinna się uaktywnić.

  • Kliknij dwa razy lewym przyciskiem myszy na wstawiony przycisk (ikona Tryb projektowania w przyborniku powinna być aktywna). Powinien uruchomić się Edytor Visual Basic z widocznym oknem Kod programu (Code), w oknie tym zawarta powinna być deklaracja procedury Click naszego Przycisku polecenia.

  • W procedurze zdarzenia Click Przycisku polecenia wpisz kod z określonego przykładu.

  • Przykładowy kod może wyglądać:

Private Sub CommandButton1_Click()
 MsgBox "Witaj", VbOKCancel, "dzono4"
End Sub

  • Pozamykaj wszystkie okienka, zapisz i zamknij dokument.

  • Po ponownym otwarciu (z opcją Włącz makra), kliknij na Przycisk polecenia i przetestuj działanie przykładu.

Słownictwo:

  • stała - element o nadanej nazwie, który zachowuje stałą wartość przez cały czas działania programu. Każda aplikacja główna może definiować własny zestaw stałych. Dodatkowe stałe mogą być definiowane przez użytkownika za pomocą instrukcji Const. Stałych można użyć w dowolnym miejscu kodu programu zamiast ich rzeczywistych wartości.



Wyszukiwarka

Podobne podstrony:
VBA w Excel7, excel
VBA w Exce13, excel
VBA w Excelu, excel
VBA w Exce21, excel
VBA w Exce17, excel
VBA w Excel3, excel
VBA w Exce14, excel
VBA w Exce16, excel
VBA w Exce11, excel
VBA w Excel4, excel
VBA w Excel1, excel
VBA w Excel5, excel
VBA w Exce15, excel
VBA w Exce12, excel
VBA w Exce23, excel
VBA w Exce25, excel
VBA w Excel6, excel
VBA w Exce10, excel
VBA w Excelu10, excel

więcej podobnych podstron