VBA w Excel8, excel


VBA w Excelu - kurs dla początkujących

0x01 graphic
Instrukcja Select Case

Inna drogą realizacji procesu podjęcia decyzji w programie jest użycie instrukcji (struktury) Select Case.Instrukcja Select Case ocenia wyrażenie tylko raz i w zależności od jego wartości, wykonuje zadany blok instrukcji. Każda instrukcja Case struktury Select Case określa jedną z potencjalnych wartości, którą może zwrócić wyrażenie. Gdy wartość wyrażenia pasuje do wartości określonej przez instrukcje Case wykonywany jest kod związany z tą instrukcją Case. Jeżeli wartość wyrażenia nie pasuje do żadnej wartości określonej przez instrukcje Case wtedy wykonywany jest blok kodu związany z instrukcją Case Else. Struktura Select Case może zawierać wiele instrukcji Case ale może zawierać tylko jedną instrukcje Case Else. Instrukcja Case Else nie jest obowiązkowa w bloku instrukcji Select Case ale jeżeli jest to powinna się znajdować za wszystkimi instrukcjami Case. Struktura Select Case może przybierać różne formy i być bardzo rozbudowana, poniżej przedstawiam jej podstawową formę.

0x01 graphic

Składnia:

Select Case Wyrażenie
 Case Wartość1
  [blok kodu wykonywany, jeżeli Wyrażenie równa się Wartość1]
 Case Wartość2
  [blok kodu wykonywany, jeżeli Wyrażenie równa się Wartość2]
 ...
 Case Else
  [blok kodu wykonywany, jeżeli Wyrażenie nie równa się żadnej z wartości określonej przez instrukcje Case]
End Select

0x01 graphic

Objaśnienie:

  • Select Case - instrukcja ta występuje jako pierwsza określa ona wartość która będzie testowana na równość możliwym wartościom.

  • Wyrażenie - to jest to co testujemy może to być dowolne wyrażenie numeryczne lub wyrażenie tekstowe.

  • Case - określa wartość do której próbujemy dopasować wartość testowaną.

  • Case Else - poniżej tej linii kodu wykonywane są instrukcje jeżeli wartość testowana nie pasuje do żadnej z wartości określonej przez instrukcje Case.

  • End Select - kończy blok instrukcji Select Case.

0x01 graphic

Przykład kod przykładu:

Private Sub CommandButton1_Click()
 
Dim NumerDnia
  NumerDnia = Range("A1").Value
 
If IsNumeric(NumerDnia) = True Then
  
Select Case NumerDnia
   
Case 1
    Range("A2").Value = "Niedziela"
   
Case 2
    Range("A2").Value = "Poniedziałek"
   
Case 3
    Range("A2").Value = "Wtorek"
   
Case 4
    Range("A2").Value = "Środa"
   
Case 5
    Range("A2").Value = "Czwartek"
   
Case 6
    Range("A2").Value = "Piątek"
   
Case 7
    Range("A2").Value = "Sobota"
   
Case Else
    Range("A2").Value = "Poza zakresem wpisz wartość od 1 do 7"
  
End Select
 
Else
  Range("A2").Value = "Wpisz wartość liczbową"
 
End If
End Sub

0x01 graphic

Przykład opis przykładu:

Przykład na pierwszy rzut oka wygląda być może skomplikowanie ale już wszystko wyjaśniam. Na początku za pomocą instrukcji Dim deklarujemy zmienną o nazwie NumerDnia, która będzie przechowywała wartości. Temat deklarowania zmiennych opiszę w dalszej części kursu. W następnej linii kodu określamy wartość zmiennej czyli nasza zmienna NumerDnia = Range("A1").Value. W przykładzie wykorzystaliśmy też poznaną wcześniej instrukcje If... Then... Else oraz funkcje IsNumeic do sprawdzenia czy wartości wprowadzane do komórki A1 arkusza są numeryczne. Funkcja IsNumeric sprawdza czy dane wyrażenie może być przekształcone w liczbę. Główna część kodu to blok naszej instrukcji Select Case, w której sprawdzamy wartość zmiennej NumerDnia czyli wartość jaka jest w komórce A1 arkusza. Jeżeli wartość zmiennej NumerDnia wynosi 1 w komórce A2 arkusza wyświetlany jest napis: Niedziela jeżeli 2: poniedziałek itd. Gdy wartość wprowadzona do komórki A1 arkusza jest różna od wartości od 1 do 7, wyświetlany jest napis: Poza zakresem wpisz wartość od 1 do 7. Jeżeli zaś wartość nie jest wartością numeryczną wyświetlany jest napis: Wpisz wartość liczbową. Na podstawie tego przykładu chciałbym też pokazać jak zagwarantować aby potrzebne wartości były prawidłowo wprowadzane. Celem przetestowania przykładu wykonaj następujące czynności:

  • 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 odpowiednie linie kodu.

  • Zamknij Edytor Visual Basic Alt+Q i powróć do arkusza Excela.

  • Następnie wyłącz tryb projektowania (jeżeli jest aktywny) klikając na ikonę Zakończ tryb projektowania w Przyborniku formantów.

  • Wpisz wartość np. 2 do komórki A1 arkusza następnie kliknij na Przycisk polecenia.

  • Celem ponownego przetestowania, wpisz inną wartość do komórki A1 arkusza i ponownie kliknij na przycisk.

0x01 graphic

0x01 graphic
Dla dociekliwych:

Dla dociekliwych przedstawiam przykład w którym przy każdym uruchomieniu dokumentu Excela wyświetlany jest napis, odpowiedni w zależności od dnia tygodnia. Napis wyświetlany jest w komórce A2 arkusza, który jest aktywny przy otwarciu dokumentu. W przykładzie do określenia dnia tygodnia wykorzystaliśmy funkcje DatePart. Kod przykładu umieszczamy w procedurze zdarzenia Workbook_Open() obiektu ThisWorkbook. Aby umieścić kod wykonaj czynności.

  • Będąc w Edytorze Visual Basic w oknie Project kliknij dwa razy na obiekt ThisWorkbook.

  • W otwartym oknie Code wpisz kod z przykładu.

  • Zamknij a następnie uruchom dokument celem przetestowani przykładu.

Private Sub Workbook_Open()
 
Select Case DatePart("w", Date)
  
Case 1
   Range("A2").Value = "Niedziela, jutro ch... poniedziałek"
  
Case 2
   Range("A2").Value = "Dzisiaj jest poniedziałek, początek wspaniałego tygodnia"
  
Case 3
   Range("A2").Value = "Wtorek, na szczęście to nie poniedziałek"
  
Case 4
   Range("A2").Value = "Środa, za chwilę z górki"
  
Case 5
   Range("A2").Value = "Czwartek, wczoraj chyba przesadziłeś, boli głowa co ?"
  
Case 6
   Range("A2").Value = "Cudownie już piątek"
  
Case 7
   Range("A2").Value = "Sobota, co Ci będę mówił"
 
End Select
End Sub

Słownictwo:

  • wyrażenie - kombinacja słów kluczowych, operatorów, zmiennych i stałych, która daje w wyniku ciąg znaków, liczbę lub obiekt. Wyrażenia mogą być używane do przeprowadzania obliczeń, wykonywania operacji na znakach lub testowania danych.



Wyszukiwarka

Podobne podstrony:
VBA w Excel7, excel
VBA w Exce13, excel
VBA w Excelu, excel
VBA w Exce18, 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

więcej podobnych podstron