VBA w Excel7.doc

(45 KB) Pobierz
VBA w Excelu - kurs dla początkujących

VBA w Excelu - kurs dla początkujących

Instrukcja If...Then...Else

 

Naukę języka VBA rozpocznę od przedstawienia instrukcji If... Then... Else. Jest to instrukcja bardzo pospolita (prawdopodobnie najczęściej stosowana instrukcja warunkowa), dlatego też często nie zdajemy sobie sprawy z jej ważności. Instrukcja If... Then... Else warunkowo wykonuje blok instrukcji: jeśli pewien warunek jest spełniony (ma wartość True), należy wykonać pewien zestaw poleceń, w przeciwnym zaś przypadku gdy warunek jest fałszywy (ma wartość False) program powinien wykonać inny blok poleceń. Instrukcja ta ma wiele postaci, poniżej przedstawiam podstawową jej formę.


Składnia:

If warunek Then
[blok kodu wykonywany w przypadku gdy warunek jest spełniony]
Else
[blok kodu wykonywany w przypadku gdy warunek nie jest spełniony]
End If


Objaśnienie:

·         If oraz Then - to słowa kluczowe języka VBA będące swego rodzaju nawiasami warunku.

·         warunek - jest wyrażeniem logicznym lub zmienną dającą wartość True (prawda) lub False (fałsz).

·         Else - słowo kluczowe wstawiane pomiędzy ostatnią instrukcją, która ma być wykonana jeżeli warunek jest prawdziwy oraz pierwszą instrukcją, która ma być wykonana jeżeli warunek jest fałszywy.

·         End If - to słowa kluczowe zaznaczające koniec bloku instrukcji If... Then... Else.

W najprostszy sposób naszą instrukcje możemy przetłumaczyć: Jeżeli coś jest prawdą to wykonaj pewne czynności jeżeli nie to wykonaj inne czynności.


Przykład kod przykładu:

Private Sub CommandButton1_Click()
 If Range("A1").Value = 0 Then
  Range("A2").Value = "wartość wynosi zero"
 Else
  Range("A2").Value = "wartość jest różna od zera"
 End If
End Sub


Przykład opis przykładu:

W powyższym przykładzie jeżeli wartość komórki A1 arkusza wynosi 0 (zero), w komórce A2 wyświetlany jest napis: wartość wynosi zero. W przeciwnym przypadku w komórce A2 wyświetlany jest napis: wartość jest różna od zera. Zaznaczam, że przykład powstał dla zobrazowania działania instrukcji If... Then... Else i nie posiada np. obsługi błędów. Dlatego dla zagwarantowania prawidłowego działania przykładu w komórce A1 powinny znajdować się wartości numeryczne. 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 kod:

 If Range("A1").Value = 0 Then
  Range("A2").Value = "wartość wynosi zero"
 Else
  Range("A2").Value = "wartość jest różna od zera"
 End If

·         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ść 0 (zero) do komórki A1 arkusza następnie kliknij na Przycisk polecenia.

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


Dla dociekliwych:

Dla dociekliwych przedstawiam bardziej rozbudowany kod przykładu w którym umieściliśmy jedną instrukcję warunkową If... Then... Else w drugiej celem dokładniejszego określenia warunków. Przy okazji chciałem pokazać że możemy osiągać ciekawe (bardziej złożone) efekty wykorzystując kilka prostych instrukcji.

Private Sub CommandButton1_Click()
 If Range("A1").Value = 0 Then
  Range("A2").Value = "wartość wynosi zero"
 Else
  If Range("A1").Value > 0 Then
   Range("A2").Value = "wartość dodatnia"
  Else
   Range("A2").Value = "wartość ujemna"
  End If
 End If
End Sub

·         UWAGA: do komórki A1 w obydwu przykładach powinniśmy wpisywać wartości numeryczne. Jeżeli wpiszemy inną wartość jak numeryczną program wykaże błąd: Niezgodność typów lub może działać nieprawidłowo (w zależności jaką wersję Excela posiadasz). Jak omijać podobne błędy opisze w dalszej części kursu.

Słownictwo:

·         instrukcja - jest to najmniejsza część kodu, poprawna ze względu na składnię całość wyrażająca jeden określony rodzaj operacji, deklaracji lub definicji.

·         słowo kluczowe - słowo, które jest elementem języka programowania Visual Basic for Applications. Do słów kluczowych zaliczają się nazwy instrukcji, typy danych, metody, operatory, obiekty i predefiniowane funkcje. Słów kluczowych nie należy używać jako nazw zmiennych i obiektów.

·         zmienna - miejsce o określonej nazwie służące do przechowywania danych. Zmienna zawiera dane, które można modyfikować podczas wykonywania programu. Każda zmienna ma nazwę jednoznacznie ją identyfikującą w obrębie danego poziomu zakresu.

 

...
Zgłoś jeśli naruszono regulamin