VBMAN.Formater - Formatting Tool Object
Overview
VBMAN.Formater provides various data formatting functions, including number, date, file size, and other formatting displays.
Usage: Use through chain calling Data(Value).ReturnXXX() method.
Core Features
- Number Formatting: Currency, percentage, thousands separator, Roman numerals
- Date Formatting: Multiple date/time formats, relative time
- File Size: Automatic conversion to B/KB/MB/GB/TB/PB
- Text Formatting: Alignment, padding, truncation, naming style conversion
- Mask Formatting: Phone number, ID card, email desensitization
- Encoding Conversion: HTML encoding, URL encoding, Base64, hexadecimal
Methods
Data
Set data source, returns Me to support chain calling (entry method)
Public Function Data(ByVal Source As Variant) As cFormaterFile Size Formatting
ReturnFileSize
Return formatted file size string (B/KB/MB/GB/TB/PB)
Public Function ReturnFileSize(Optional ByVal DecimalPlaces As Long = 2, Optional ByVal ForceUnit As String = "") As StringTime Formatting
ReturnTimeAgo
Return relative time description (just now, 5 seconds ago, 3 minutes ago, etc.)
Public Function ReturnTimeAgo() As StringReturnDateTime
Return formatted date and time
Public Function ReturnDateTime(Optional ByVal FormatStr As String = "yyyy-MM-dd HH:mm:ss") As StringReturnShortDate
Return date (short format yyyy-MM-dd)
Public Function ReturnShortDate() As StringReturnShortTime
Return time (short format HH:mm:ss)
Public Function ReturnShortTime() As StringNumber Formatting
ReturnNumber
Return formatted number (thousands separator)
Public Function ReturnNumber(Optional ByVal DecimalPlaces As Long = 0) As StringReturnCurrency
Return currency format
Public Function ReturnCurrency(Optional ByVal Symbol As String = "$") As StringReturnPercent
Return percentage
Public Function ReturnPercent(Optional ByVal DecimalPlaces As Long = 0) As StringReturnRoman
Return Roman numeral (supports 1-3999)
Public Function ReturnRoman() As StringText Formatting
ReturnTruncate
Return text with limited length, show ellipsis if too long
Public Function ReturnTruncate(ByVal MaxLength As Long, Optional ByVal Suffix As String = "...") As StringReturnPadLeft
Return left-padded text
Public Function ReturnPadLeft(ByVal TotalWidth As Long, Optional ByVal PadChar As String = " ") As StringReturnPadRight
Return right-padded text
Public Function ReturnPadRight(ByVal TotalWidth As Long, Optional ByVal PadChar As String = " ") As StringReturnProperCase
Return proper case (first letter capitalized)
Public Function ReturnProperCase() As StringReturnCamelCase
Return camelCase (helloWorldExample)
Public Function ReturnCamelCase() As StringReturnPascalCase
Return PascalCase (HelloWorldExample)
Public Function ReturnPascalCase() As StringReturnSnakeCase
Return snake_case (hello_world_example)
Public Function ReturnSnakeCase() As StringReturnKebabCase
Return kebab-case (hello-world-example)
Public Function ReturnKebabCase() As StringReturnHtmlEncode
Return HTML escaped text
Public Function ReturnHtmlEncode() As StringReturnUrlEncode
Return URL encoded text
Public Function ReturnUrlEncode() As StringMask Formatting
ReturnMaskedPhone
Return phone number mask (138****8888)
Public Function ReturnMaskedPhone() As StringReturnMaskedIDCard
Return ID card mask (110101********1234)
Public Function ReturnMaskedIDCard() As StringReturnMaskedEmail
Return email mask (a***@gmail.com)
Public Function ReturnMaskedEmail() As StringOther Formatting
ReturnHex
Return hexadecimal string
Public Function ReturnHex() As StringReturnBase64
Return Base64 encoding
Public Function ReturnBase64() As StringReturnBooleanText
Return friendly text for boolean value
Public Function ReturnBooleanText(Optional ByVal TrueText As String = "Yes", Optional ByVal FalseText As String = "No") As StringReturnFileName
Return filename (with extension)
Public Function ReturnFileName() As StringReturnFileNameWithoutExt
Return filename (without extension)
Public Function ReturnFileNameWithoutExt() As StringReturnFileExt
Return file extension
Public Function ReturnFileExt() As StringReturnFilePath
Return file path (without filename)
Public Function ReturnFilePath() As StringComprehensive Examples
Example 1: Basic Formatting
Private Sub BasicFormat()
' Currency display
Dim price As Currency
price = 1234567.89
LabelPrice.Caption = VBMAN.Formater.Data(price).ReturnCurrency("$")
' Result: $1,234,567.89
' File size
Dim fileSize As Currency
fileSize = 1536000000
LabelSize.Caption = VBMAN.Formater.Data(fileSize).ReturnFileSize()
' Result: 1.43 GB
' Percentage
Dim rate As Double
rate = 0.8567
LabelRate.Caption = VBMAN.Formater.Data(rate).ReturnPercent(2)
' Result: 85.67%
' Relative time
Dim postTime As Date
postTime = DateAdd("h", -2, Now)
LabelTime.Caption = VBMAN.Formater.Data(postTime).ReturnTimeAgo()
' Result: 2 hours ago
End SubExample 2: Text Formatting
Private Sub TextFormat()
Dim text As String
text = "hello world example"
' CamelCase
Debug.Print VBMAN.Formater.Data(text).ReturnCamelCase()
' Result: helloWorldExample
' PascalCase
Debug.Print VBMAN.Formater.Data(text).ReturnPascalCase()
' Result: HelloWorldExample
' Truncate text
Debug.Print VBMAN.Formater.Data("This is a very long text").ReturnTruncate(6)
' Result: This i...
' Left pad
Debug.Print VBMAN.Formater.Data("123").ReturnPadLeft(6, "0")
' Result: 000123
End SubExample 3: Data Desensitization
Private Sub MaskSensitiveData()
' Phone number mask
Debug.Print VBMAN.Formater.Data("13812345678").ReturnMaskedPhone()
' Result: 138****5678
' ID card mask
Debug.Print VBMAN.Formater.Data("110101199001011234").ReturnMaskedIDCard()
' Result: 110101********1234
' Email mask
Debug.Print VBMAN.Formater.Data("admin@gmail.com").ReturnMaskedEmail()
' Result: a***@gmail.com
End SubExample 4: List Formatting Display
Private Sub FormatListView()
Dim li As ListItem
For Each li In ListView1.ListItems
' Format amount column
li.SubItems(2) = VBMAN.Formater.Data(li.SubItems(2)).ReturnCurrency()
' Format date column
li.SubItems(3) = VBMAN.Formater.Data(CDate(li.SubItems(3))).ReturnShortDate()
' Format file size column
li.SubItems(4) = VBMAN.Formater.Data(li.SubItems(4)).ReturnFileSize()
Next li
End SubBest Practices
- Chain Calling: Use
Data(Value).ReturnXXX()to keep code concise - Type Checking: Ensure data type is correct before formatting, wrong types return default values
- Localization: Use appropriate currency symbols and date formats based on user region
- Consistency: Use the same formatting method for the same type of data