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”.