On Kamis, 17 Juni 2010 7 komentar

Pernahkah suatu ketika Anda memiliki data yang tersimpan di sebuah file Excel lalu Anda ingin membaca dan bahkan mengambil data dari dalam file Excel tadi, untuk selanjutnya diproses dengan program VB yang Anda buat.

Berikut cara untuk mengakses data dari Exel tersebut, mulai dari membuat atau mendapatkan object Excel, membuka file Excel, membaca worksheet pertama, mengambil data yang terdapat di worksheet pertama pada kolom dan baris tertentu, menutup worksheet dan workbook Excel, sampai kepada membersihkan memory yang digunakan oleh object Excel dari dalam program Anda.

Semuanya cukup dengan mengoptimalkan Microsoft Excel Object Library dari dalam Visual Basic 6. Object ini bisa Anda gunakan dengan syarat di komputer tersebut sudah terinstall Microsoft Excel atau Microsoft Office.
Persiapan: 1. Buat satu project standard exe dengan satu form
2. Tambahkan 1 control CommandButton ke atas form
3. Tambahkan item "Microsoft Excel X.X Object Library"
dari menu Project -> References... . X.X tergantung
versi Excel atau Microsoft Office yang Anda gunakan.
Saat saya mencoba code ini, di notebook saya sudah
terinstall Microsoft Office 2000 dan Microsoft Office
2007, dan X.X di atas yang muncul = 12.0 di mana VB6
hanya menampilkan object library Excel yang versi
terakhir. MS Excel 2007 object library versi 12.0
4. Pastikan file Dataku.xls sudah terdapat di dalam
direktori yang sama dengan aplikasi Anda ini dan
di kolom B mulai dari baris pertama sampai kelima
sudah ada nilai atau datanya.
5. Copy-kan code berikut ke editor form yang bertalian.

Dim Excel As Excel.Application 'Excel Application
Dim ExcelWBk As Excel.Workbook 'Excel Workbook
Dim ExcelWS As Excel.Worksheet 'Excel Worksheet

Private Sub Command1_Click()
On Error GoTo Err
'Inisialisasi object Excel
StartExcel
'Buka file Dataku.xls yang berada di direktori yang sama
'dengan aplikasi Anda
Set ExcelWBk = Excel.Workbooks.Open(App.Path & "\Dataku.xls")
'Tampilkan status di form
Print "Berhasil membuka file ..."
'Akses Sheet pertama (1)
'Jika ingin mengakses sheet kedua, ganti
'(1) menjadi (2), dst...
Set ExcelWS = ExcelWBk.Worksheets(1)
'Tampilkan status di form
Print "Berhasil membaca Sheet1 ..."
'Lakukan proses di worksheet ExcelWS
With ExcelWS
Dim i As Integer
Dim strData As String
'Baca mulai dari baris pertama sampai kelima
For i = 1 To 5
'Tampung ke sebuah variabel
strData = strData & .Cells(i, 2) & vbCrLf
Next i
End With
'Tampilkan ke layar
MsgBox strData
'Setelah selesai, jangan lupa tutup worksheet
CloseWorkSheet
'Tampilkan status di form
Print "Berhasil menutup worksheet dan file Excel ..."
'Jangan lupa pula, selalu bersihkan memory yang
'digunakan oleh object Excel
ClearExcelMemory
'Tampilkan status di form
Print "Berhasil membersihkan memory Excel ..."
'Tampilkan pesan
MsgBox "Selesai, coy...!", vbInformation, "Mantap"
Exit Sub
Err:
'CloseWorkSheet
ClearExcelMemory
MsgBox Err.Description, vbCritical, "Error euy"
End Sub

Private Sub StartExcel()
On Error GoTo Err:
'Pertama, ambil object Excel, dan jika error
'lompat ke label Err di paling bawah Sub ini,
'dan buat object Excel. Error terjadi jika
'object Excel belum dibuat
Set Excel = GetObject(, "Excel.Application")
Exit Sub
Err:
'Buat object Excel jika belum ada.
Set Excel = CreateObject("Excel.Application")
End Sub

Private Sub CloseWorkSheet()
On Error Resume Next
'Tutup Excel workbook
ExcelWBk.Close
'Keluar dari aplikasi Excel
Excel.Quit
End Sub

Private Sub ClearExcelMemory()
'Sebelum membersihkan memory, periksa terlebih dulu
'object yang akan dibersihkan...
If Not ExcelWS Is Nothing Then Set ExcelWS = Nothing
If Not ExcelWBk Is Nothing Then Set ExcelWBk = Nothing
If Not Excel Is Nothing Then Set Excel = Nothing
End Sub

7 komentar:

Unknown mengatakan...

thanks gan..ngebantu banget..tapi kalo aku mau nampilin hasil nya di listbox gmn caranya yah??

Unknown mengatakan...

.thanks gan .. gak ngebantu banget.. fontnya warna nya mantep banget gan sampe gw ga bisa baca (y) lanjutkan !

payminov mengatakan...

Bisa disimpan dlam recordset enggak ya?

Unknown mengatakan...

gan kalo format excelnya .xlsx itu kaya gimana gan??? mohon bantuannya

Unknown mengatakan...

gan kalo mau munculin datanya di list box atau di data grid gimana yaah???

Unknown mengatakan...

sekalian revisi blog ente gan itu link yang download kan dropdown nah ko cursor nya di kebawahin malah gaada dropdownnya. makasih gan !!!!

DOI mengatakan...

gan, mickosoftnya gak ada di preference, trus gimana ??

Posting Komentar