Conditions in VBA
(Conditional statements in VBA)
Decision-making statements are those statements that control the flow of execution. Generally Program execution flow is from Top to Bottom. When we want to execute some of the statements or groups of the statement on the base of the condition at that time Decision-making statements are used. Simple fundamental in Decision-making statements is that execute the statement only if the condition becomes true.
In VBA there is mainly five type of conditional statements
- Simple If statement
- If…Else statement
- If…ElseIf…else statement
- nested if statements
- switch statement
1. Simple If statement in VBA
It is one of the simplest conditional statement.
If we want to execute a programming statement only when the condition becomes true at that time, we can use a simple “if” statement.
Flow chart of simple if condition
The flowchart is the pictorial presentation of program.
Syntax of simple if condition in VBA
If condition Then Statement 1 ..... ..... Statement n End If
Where…
condition: create a condition on that basis, Statements are executed. it may contain a condition with comparison operator.
For Example,
X > Y, X=0
Simple if condition in VBA video in Hindi
Example of simple if: Display Greater value using simple If
Write below code in click event of button.
Private Sub cmdBttnGetValue_Click() Dim x As Integer Dim y As Integer x = 33 y = 73 If x > y Then MsgBox ("X is Greater then Y") End If If y > x Then MsgBox ("Y is Greater then X") End If End Sub
Output:
Click on button or click on run button to run program
2. If…Else statement in VBA
This type of conditional statement has two different parts that are “True Part” and “False Part”. If condition will be true then statements of the true part will be executing and If condition will be false then statements of the false part will be executed.
If…Else condition in VBA video in Hindi
Flow chart of If…Else statement
Syntax of If…Else statement
If condition Then Statement 1 ..... ..... Statement n Else Statement 1 ..... ..... Statement n End If
Example of If…Else:
Get Value from Cell and display Grater variable Message in Cell
Write below code in click event of button
Private Sub CommandButton1_Click() Dim x As Integer Dim y As Integer x = Range("C3").Value y = Range("C4").Value If x > y Then Range("C5").Value = "X is Grater" Else Range("C5").Value = "Y is Grater" End If End Sub
3. If…ElseIf…else statement in VBA
This type of conditional statement has a sequence of conditions. If one condition became false then its control goes to another condition and so on. At any point in time one condition becomes true at that time, the statements below that condition will be executed and whole if condition will end.
If…ElseIf…else condition in VBA video in Hindi
Flow chart of If…ElseIf…else statement
Syntax of If…ElseIf…else statement
If condition1 Then Statement 1 ..... ..... Statement n ElseIf condition2 Then Statement 1 ..... ..... Statement n ElseIf condition3 Then Statement 1 ..... ..... Statement n ElseIf condition4 Then Statement 1 ..... ..... Statement n Else Statement 1 ..... ..... Statement n End If
Example of If…ElseIf…else statement
Enter Day Number and Display Day name.
1 = Monday
2 = Tuesday
3 = Wednesday
4 = Thursday
5 = Friday
6 = Saturday
7 = Sunday
Write below code in click event of button
Private Sub CommandButton1_Click() Dim day As Integer day = Range("B3").Value If day = 1 Then Range("B4").Value = "Monday" ElseIf day = 2 Then Range("B4").Value = "Tuesday" ElseIf day = 3 Then Range("B4").Value = "Wednesday" ElseIf day = 4 Then Range("B4").Value = "Thursday" ElseIf day = 5 Then Range("B4").Value = "Friday" ElseIf day = 6 Then Range("B4").Value = "Saturday" ElseIf day = 7 Then Range("B4").Value = "Sunday" Else MsgBox ("Please Enter Day Number Between 1 to 7") End If End Sub
4. Nested if statements
Nested if means If or ElseIf conditions are within another If condition.
Nested if condition in VBA video in Hindi
Syntax of nested if statement
If condition Then If condition Then Statement 1 ..... ..... Statement n Else If condition Then Statement 1 ..... ..... Statement n End If End If Else If condition Then Statement 1 ..... ..... Statement n End If End If
Example of nested if:
Enter any Value and display Message which stated that enter value is “Negative”, “Positive” or “Zero”.
Write below code in click event of button
Private Sub CommandButton1_Click() Dim x As Integer x = Range("B3").Value If x >= 0 Then If x = 0 Then Range("B4").Value = "Enter No. is Zero" Else Range("B4").Value = "Enter No. is Positive" End If Else Range("B4").Value = "Enter No. is Negative" End If End Sub
5. Switch Case or Select Case statement
A select case statement is the best alternate of If condition when we want to test the equality of variables’ value against a list of values.
The compression operator will never be used in the select case.
Switch Case or Select Case statement in VBA video in Hindi
Syntax of Switch Case or Select Case statement
Select Case expression Case Value1 statement1 statement2 .... statement1n Case Value2 statement1 .... .... Case ValueN statement1 .... .... Case Else statement1 .... .... End Select
Example Switch Case or Select Case statement
Enter Day Number and Display Day name.
1 = January, 2 = February, 3 = March, 4 = April, 5 = May, 6 = June, 7 = July, 8 = August, 9 = September, 10 = October, 11 = November, 12 = December
Write below code in click event of button
Private Sub CommandButton1_Click() Dim monthNo As Integer Dim msg As String monthNo = Range("B3").Value Select Case monthNo Case 1 Range("B4").Value = "January" Case 2 Range("B4").Value = "February" Case 3 Range("B4").Value = "March" Case 4 Range("B4").Value = "April" Case 5 Range("B4").Value = "May" Case 6 Range("B4").Value = "June" Case 7 Range("B4").Value = "July" Case 8 Range("B4").Value = "August" Case 9 Range("B4").Value = "September" Case 10 Range("B4").Value = "October" Case 11 Range("B4").Value = "November" Case 12 Range("B4").Value = "December" Case Else msg = MsgBox("Plase Enter Month No. between 1 to 12", vbInformation) Range("B4").Value = "" End Select End Sub