
Untuk membaca sebuah Flash drive dalam komputer kita, di VBA bisa menggunakan library dari FileSystemObject (FSO).
Dalam FSO ada property untuk membaca semua drive pada komputer. Pada contoh kasus diatas, hasil drive USB ingin ditampilkan pada sebuah Userform. Bukan semua Drive melainkan Drive yang statusnya hanya removable saja.
Untuk membuatnya, pertama siapkan sebuah Userform dan Juga sebuah combobox yang nantinya akan diisi dengan List USB yang terbaca pada komputer.
Private Sub GetListUSBDrive()
Dim fso As Object
Dim drive As Object
Set fso = CreateObject("Scripting.FileSystemObject")
For Each drive In fso.Drives
If drive.DriveType = 1 Then
ComboBox1.AddItem drive.VolumeName & " (" & drive.DriveLetter & ":)"
End If
Next drive
Set fso = Nothing
End Sub
Selanjutnya tinggal panggil dari mana getListUDBDrive ini mau dipanggil, misalnya bisa disimpan di Userform_initialize agar ketika userform dijalankan subrutine tersebut langsung membaca Flashdrive yang terpasang. Atau bisa juga disimpan dalam sebuah tombol
Terdapat beberapa properti yang tersedia pada objek Drive dalam FileSystemObject (FSO). Berikut ini adalah daftar lengkap properti-properti tersebut:
| Property | Fungsi |
|---|---|
DriveLetter | Mengembalikan huruf drive dari drive yang ditentukan. |
ShareName | Mengembalikan nama share jaringan dari drive yang ditentukan. |
Path | Mengembalikan path root dari drive yang ditentukan. |
FileSystem | Mengembalikan jenis sistem file dari drive yang ditentukan |
DriveType | Mengembalikan jenis drive yang ditentukan. Nilainya dapat berupa 0 (Unknown), 1 (Removable), 2 (Fixed), 3 (Network), 4 (CD-ROM), 5 (RAM disk). |
IsReady | Mengindikasikan apakah drive yang ditentukan siap atau tidak. |
SerialNumber | Mengembalikan nomor serial volume dari drive yang ditentukan. |
TotalSize | Mengembalikan ukuran total drive dalam byte. |
FreeSpace | Mengembalikan jumlah ruang bebas pada drive dalam byte. |
AvailableSpace | Mengembalikan ruang yang tersedia pada drive dalam byte. |
RootFolder | Mengembalikan objek Folder yang mewakili folder root dari drive yang ditentukan. |
VolumeName | Mengembalikan label volume dari drive yang ditentukan. |