Format Byte, KiloByte, MegaByte

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

Leave a Reply

Your email address will not be published. Required fields are marked *