Instrukcja warunkowa IF

Jak już wcześniej wspominałem instrukcja MsgBox pozwala na wyświetlenie kilku różnych przycisków np. Tak i Nie. W ten sposób można się skomunikować z użytkownikiem zadając mu proste pytanie. W zależności od udzielonej odpowiedzi można wywołać odpowiednią sekwencję kodu. Aby to zrobić należy użyć instrukcji warunkowej If…Then lub If…Then…Else.

Poniższy przykład demonstruje użycie instrukcji warunkowej:

Sub InstrukcjaWarunkowa1()
    odp = MsgBox("Czy masz dzisiaj urodziny?", vbYesNo Or vbInformation)
    
    If odp = vbYes Then
        MsgBox "Wszystkiego najlepszego!", vbInformation
    End If
End Sub

Po uruchomieniu makra pojawi się pytanie „Czy masz dzisiaj urodziny?”. Odpowiedź użytkownika zostanie zapamiętana w zmiennej Odp. Jeśli użytkownik kliknie w przycisk Tak (czyli zostanie spełniony warunek Odp = vbYes), to zostanie wykonany blok instrukcji znajdujący się między ThenEnd If czyli w tym przypadku pokaże się komunikat „Wszystkiego najlepszego!”. Gdy użytkownik kliknie w przycisk Nie, to nic się nie stanie.

Instrukcja warunkowa IF ma też drugi wariant, który pozwala na wykonanie innego kodu, gdy warunek nie został spełniony. Prezentuje to poniższy przykład:

Sub InstrukcjaWarunkowa2()
    odp = MsgBox("Czy zjadłeś już obiad", vbYesNo Or vbInformation)
    
    If odp = vbYes Then
        MsgBox "W lodówce masz deser!", vbInformation
    Else
        MsgBox "Zjedz obiad!", vbInformation
    End If
End Sub

W tym przykładzie pojawi się pytanie: „Czy zjadłeś już obiad”. Gdy użytkownik kliknie w przycisk Tak, zostanie wykonany kod znajdujący się pomiędzy Then a Else, czyli w tym przypadku użytkownik zostanie poinformowany o możliwości zjedzenia deseru. Natomiast gdyby użytkownik kliknął w przycisk Nie, to wtedy zostanie wykonany blok instrukcji znajdujący się pomiędzy Else a End If czyli w tym przypadku pojawi się prośba o zjedzenie obiadu.