VBA Data Types – The Foundation of Every Program
2.1 What are Data Types?
In VBA, a data type defines what kind of values a variable can hold. If you declare a variable without specifying its data type, VBA treats it as a Variant (can store any type but uses more memory). Declaring proper data types helps reduce errors and makes code run faster and efficient.
2.2 Syntax for Declaring a Variable with Data Type
Dim variableName As DataType
Example:
Dim age As Integer
Dim studentName As String
Dim price As Double
Dim studentName As String
Dim price As Double
2.3 Common Data Types in VBA
| Data Type | Description | Storage Size | Example Values |
|---|---|---|---|
| Integer | Whole numbers | 2 Bytes | 10, 250 |
| Long | Large whole numbers | 4 Bytes | 100000 |
| Double | Decimal numbers | 8 Bytes | 99.99, 12345.678 |
| String | Text values | Varies | "Hello", "VBA" |
| Boolean | True or False | 2 Bytes | True, False |
| Date | Stores date/time | 8 Bytes | #12/31/2024# |
| Variant | Can hold any type | Depends | "Text", 10, 123.45 |
2.4 Examples of Data Types
Example 1: Declaring and Using Data Types
Sub DataTypeExample()
Dim age As Integer
Dim price As Double
Dim studentName As String
Dim isActive As Boolean
age = 20
price = 199.99
studentName = "Rahul"
isActive = True
MsgBox "Name: " & studentName & vbCrLf & _
"Age: " & age & vbCrLf & _
"Price: " & price & vbCrLf & _
"Active: " & isActive
End Sub
Dim age As Integer
Dim price As Double
Dim studentName As String
Dim isActive As Boolean
age = 20
price = 199.99
studentName = "Rahul"
isActive = True
MsgBox "Name: " & studentName & vbCrLf & _
"Age: " & age & vbCrLf & _
"Price: " & price & vbCrLf & _
"Active: " & isActive
End Sub
Output:
Name: Rahul
Age: 20
Price: 199.99
Active: True
Example 2: Working with Dates
Sub DateExample()
Dim todayDate As Date
todayDate = Date
MsgBox "Today's Date is " & todayDate
End Sub
Dim todayDate As Date
todayDate = Date
MsgBox "Today's Date is " & todayDate
End Sub
Output: Today's Date is 01-09-2025
Example 3: Using Boolean
Sub BooleanExample()
Dim marks As Integer
Dim result As Boolean
marks = 55
result = (marks >= 40)
MsgBox "Did the student pass? " & result
End Sub
Dim marks As Integer
Dim result As Boolean
marks = 55
result = (marks >= 40)
MsgBox "Did the student pass? " & result
End Sub
Output: Did the student pass? True
Example 4: Using Variant
Sub VariantExample()
Dim data As Variant
data = 25
MsgBox "Value = " & data
data = "Excel VBA"
MsgBox "Now Value = " & data
End Sub
Dim data As Variant
data = 25
MsgBox "Value = " & data
data = "Excel VBA"
MsgBox "Now Value = " & data
End Sub
Output:
Value = 25
Now Value = Excel VBA

0 Comments