Lesson 20: Mastering the Format Function in VB2022
Learn to present numbers, dates, and times professionally with VB2022's powerful formatting capabilities
Key Takeaway
The Format function is essential for creating professional applications that display data clearly and consistently. Mastering it allows you to present numbers, dates, and times in user-friendly formats that match your application's requirements.
Welcome to Lesson 20 of our Visual Basic 2022 Tutorial! In this lesson, you'll learn how to leverage VB2022's Format function to present numbers, dates, and currency values professionally. Proper formatting is essential for creating applications that are both functional and visually appealing.
20.1 Formatting Numbers
The Format function provides both built-in and custom formatting options for numbers. It's essential for financial applications, reports, and any situation where data presentation matters.
Built-in Number Formats
VB2022 includes several predefined formats for common scenarios:
Format | Description | Example |
---|---|---|
General Number | Displays number without thousands separators | 8972.234 |
Fixed | Rounds to two decimal places | 8972.20 |
Standard | Includes thousands separators | 6,648,972.27 |
Currency | Adds currency symbol | $6,648,972.27 |
Percent | Converts to percentage | 56.32% |
Private Sub BtnFormat_Click(sender As Object, e As EventArgs) Handles BtnFormat.Click ' Using built-in formats lblGeneral.Text = Format(8972.234, "General Number") lblFixed.Text = Format(8972.2, "Fixed") lblStandard.Text = Format(6648972.265, "Standard") lblCurrency.Text = Format(6648972.265, "Currency") lblPercent.Text = Format(0.56324, "Percent") End Sub
Custom Number Formats
Create specialized formats using pattern-based formatting:
Format | Description | Example |
---|---|---|
0.0 | Rounds to one decimal | 781234.6 |
0.00 | Rounds to two decimals | 781234.58 |
#,##0.00 | Thousands separator | 781,234.58 |
$#,##0.00 | Currency format | $781,234.58 |
0% | Percentage format | 58% |
Private Sub BtnCustomFormat_Click(sender As Object, e As EventArgs) Handles BtnCustomFormat.Click ' Using custom formats lblOneDecimal.Text = Format(8972.234, "0.0") lblTwoDecimals.Text = Format(8972.2345, "0.00") lblThousands.Text = Format(6648972.265, "#,##0.00") lblCurrency.Text = Format(6648972.265, "$#,##0.00") lblPercent.Text = Format(0.56324, "0.00%") End Sub
Special Number Formatting
Handle special cases like negative numbers, zero values, and custom patterns:
Private Sub BtnSpecialCases_Click(sender As Object, e As EventArgs) Handles BtnSpecialCases.Click ' Formatting negative numbers with parentheses lblNegative.Text = Format(-1234.56, "$#,##0.00;($#,##0.00)") ' Custom display for zero values lblZero.Text = Format(0, "$#,##0.00;""Zero"";""N/A""") ' Phone number formatting lblPhone.Text = Format(5551234567, "(###) ###-####") ' Social security number formatting lblSSN.Text = Format(123456789, "###-##-####") ' Custom alignment for decimal points lblAlign1.Text = Format(1234.5, "#####0.00") lblAlign2.Text = Format(78.9, "#####0.00") End Sub
Output Preview
Negative: ($1,234.56)
Zero: Zero
Phone: (555) 123-4567
SSN: 123-45-6789
Alignment: 1234.50
Alignment: 78.90
20.2 Formatting Dates and Times
Proper date and time formatting is crucial for international applications. VB2022 offers flexible options for displaying temporal data.
Built-in Date/Time Formats
Use predefined formats for common date/time presentations:
Format | Description |
---|---|
General Date | Date and time (e.g., 6/17/2023 2:45 PM) |
Long Date | Full date (e.g., Saturday, June 17, 2023) |
Short Date | Numeric date (e.g., 6/17/2023) |
Long Time | Time with seconds (e.g., 2:45:30 PM) |
Short Time | Time without seconds (e.g., 14:45) |
Private Sub BtnDisplay_Click(sender As Object, e As EventArgs) Handles BtnDisplay.Click ' Display current date/time in various formats lblGeneral.Text = Format(Now, "General Date") lblLongDate.Text = Format(Now, "Long Date") lblShortDate.Text = Format(Now, "Short Date") lblLongTime.Text = Format(Now, "Long Time") lblShortTime.Text = Format(Now, "Short Time") End Sub
Custom Date/Time Formats
Create specialized date/time formats using pattern codes:
Pattern | Description |
---|---|
d | Day of month (1-31) |
dd | Day with leading zero (01-31) |
ddd | Abbreviated day name (Mon, Tue) |
dddd | Full day name (Monday) |
M | Month number (1-12) |
MM | Month with leading zero (01-12) |
MMM | Abbreviated month name (Jan, Feb) |
MMMM | Full month name (January) |
yy | Two-digit year (23) |
yyyy | Four-digit year (2023) |
Advanced Date Formatting
Combine patterns to create sophisticated date/time displays:
Private Sub BtnAdvancedDate_Click(sender As Object, e As EventArgs) Handles BtnAdvancedDate.Click ' Day of week formatting lblFullDay.Text = Format(Now, "dddd") ' Full day name lblShortDay.Text = Format(Now, "ddd") ' Abbreviated day name lblFullDate.Text = Format(Now, "dddd, MMMM d, yyyy") ' Business formats lblISO.Text = Format(Now, "yyyy-MM-dd") ' ISO format lbl12Hour.Text = Format(Now, "hh:mm tt") ' 12-hour format lbl24Hour.Text = Format(Now, "HH:mm") ' 24-hour format ' Financial quarter formatting Dim quarter As Integer = (Month(Now) + 2) \ 3 lblQuarter.Text = $"Q{quarter} {Year(Now)}" ' Countdown formatting Dim futureDate As Date = #12/31/2024# Dim timeLeft As TimeSpan = futureDate - Now lblCountdown.Text = $"{timeLeft.Days} days, {timeLeft.Hours} hours remaining" End Sub
Output Preview
Full Day: Saturday
Short Day: Sat
Full Date: Saturday, June 17, 2023
ISO Date: 2023-06-17
12 Hour: 02:45 PM
24 Hour: 14:45
Quarter: Q2 2023
Countdown: 197 days, 9 hours remaining
Real-time Clock Tip
To display continuously updating dates and times, use a Timer control with Enabled set to True and Interval set to 100:
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick lblDateTime.Text = Format(Now, "dddd, MMMM d, yyyy h:mm:ss tt") lblCountdown.Text = Format(#12/31/2023# - Now, "d' days 'h' hours '") End Sub
Format Function Summary
The Format function is essential for professional data presentation:
Category | Patterns | Examples |
---|---|---|
Numbers | 0, #, . , % | Format(1234.56, "#,##0.00") → 1,234.56 |
Currency | $£€, C | Format(1234.56, "Currency") → $1,234.56 |
Percent | % | Format(0.85, "Percent") → 85.00% |
Dates | d, M, yyyy | Format(Now, "MM/dd/yyyy") → 06/17/2023 |
Times | h, m, s, tt | Format(Now, "h:mm:ss tt") → 2:45:30 PM |
Custom | Combined patterns | Format(Now, "ddd, MMM d yyyy") → Sat, Jun 17 2023 |
Consistency
Use consistent formatting throughout your application for professional results
Localization
Format function automatically adapts to system regional settings
Performance
For intensive formatting, cache formatted values instead of recalculating
Practical Exercises
Apply your formatting knowledge with these hands-on exercises:
Exercise 1: Financial Report Generator
Create a program that generates a financial report with properly formatted numbers:
- Format currency values with dollar signs and two decimal places
- Display percentages with one decimal place
- Align all decimal points in a column
- Format negative values in red with parentheses
Exercise 2: Event Countdown Timer
Build an application that counts down to a specific event:
- Display days, hours, minutes, and seconds remaining
- Format the countdown as "X days, Y hours, Z minutes"
- Update the display in real-time using a Timer control
- Change formatting as the event approaches
Exercise 3: International Date Formatter
Create a program that displays the current date in multiple formats:
- US format (MM/dd/yyyy)
- European format (dd/MM/yyyy)
- ISO format (yyyy-MM-dd)
- Long format (dddd, MMMM d, yyyy)
- Allow users to select their preferred format
Exercise 4: Data Export Utility
Develop an application that exports data to a CSV file with proper formatting:
- Format currency values without dollar signs
- Ensure dates are in ISO format for database compatibility
- Handle special characters in text fields
- Format percentages as decimals (e.g., 15% as 0.15)
Next Lesson
Ready to learn about checkboxes? Continue to Lesson 21: Working with CheckBox Controls.
Related Resources

Visual Basic 2022 Made Easy
The ultimate beginner-friendly guide for mastering Windows-based application development using Visual Basic in Visual Studio 2022. Whether you're a student, teacher, hobbyist, or self-learner, this book offers a clear, step-by-step approach to help you get started with ease.
What You'll Learn:
- Control structures and procedures
- Decision-making techniques
- Efficient code organization
- Practical application development
- Best practices in VB2022

Mastering Excel VBA 365
Your ultimate step-by-step guide to automating tasks, building macros, and creating powerful applications within Microsoft Excel 365. Whether you're a student, business professional, or aspiring programmer, this comprehensive handbook will help you unlock the full potential of Excel's VBA.
What You'll Learn:
- Control structures in VBA
- Decision-making techniques
- Data processing and analysis
- Report generation
- Automated workflows