Kali ini, saya akan membahas tentang ukuran file dan juga memperkenalkan fungsi FormatBytes dalam VBA yang berguna untuk memformat ukuran file dalam format yang lebih mudah dibaca.
Ketika bekerja dengan file, seringkali kita perlu menampilkan ukuran file dalam format yang lebih bermakna, seperti kilobita (KB), megabita (MB), gigabita (GB), atau terabita (TB). Namun, ukuran file yang dikembalikan oleh sistem seringkali dalam bentuk byte, yang sulit dipahami secara langsung.
Contohnya dalam FileSystemObject (FSO) drive.TotalSize akan menghasilkan nilai dalam format byte
Untuk mengatasi masalah ini, saya telah membuat fungsi FormatBytes dalam VBA. Fungsi ini akan mengambil ukuran file dalam byte dan mengonversinya menjadi format yang lebih mudah dibaca. Misalnya, 2048 byte akan ditampilkan sebagai “2 KB”.
Dan secara otomatis akan diubah menjadi Mega, Giga atau Tera sesuai dengan nilai yang mendekatinya
Berikut fungsi FormatBytes dalam VBA:
Function FormatBytes(size As Double, Optional precision As Integer = 2) As String
'----------------------------------------------------
' Author : https://vba.co.id
' Situs belajar VBA No.1 di Indonesia
'----------------------------------------------------
Dim base As Double
Dim suffixes As Variant
suffixes = Array("", "K", "M", "G", "T")
base = Log(size) / Log(1024)
FormatBytes = Round(Application.Power(1024, base - Int(base)), precision) & " " & suffixes(Int(base))
End Function
Untuk penggunannya cukup mudah, tinggal gunakan fungsi dari FormatBytes
Sub TestFormatBytes()
Dim size As Double
Dim formattedSize As String
size = 2048 ' Ukuran dalam byte
formattedSize = FormatBytes(size)
MsgBox "Ukuran file: " & formattedSize
End Sub
Hasilnya akan muncul dalam kotak pesan sebagai “Ukuran file: 2 KB”.