Koneksi VB Excel

Sekedar berbagi ilmu, sapa tau ada yang butuh, di bawah ini ada sintak VB buat baca dan nulis data dari dan ke file Excel(.xls). Langsung aja kita mulai, ini dia step by step

1. Bikin project baru di VB
2. Buat referensi dari VB ke library untuk Excel, caranya dari menu Project–>References trus kasi tanda cek di Microsoft Excel xx.x (versinya, aku pake 12.0) Object Library, trus klik OK
3. Deklarasikan di variabel global (boleh pake module ato di form, tapi sebaiknya di module aja biar lebih gampang dikelola)

Public xlApp As Excel.Application  ' Excel Application Object
Public xlBook As Excel.Workbook    ' Excel Workbook Object

4. Nah, ini sintak Function untuk baca data dari file Excel:

Public Function GetExcel(xlFileName As String, xlWorksheet As String, _
xlCellName As String) As String
  On Error GoTo GetExcel_Err 'eror handler
  Dim strCellContents As String
  'inisiasi Excel App Object
  Set xlApp = CreateObject("Excel.Application")
  'inisiasi Excel Workbook Object.
  Set xlBook = xlApp.Workbooks.Open(xlFileName)
  'membaca isi cell pada spreadsheet
  strCellContents = xlBook.worksheets(xlWorksheet).range(xlCellName).Value
  'tutup spreadsheet
  xlBook.Close savechanges:=False
  xlApp.Quit
  Set xlApp = Nothing
  Set xlBook = Nothing
  GetExcel = strCellContents 'mengembalikan nilai
Exit Function

GetExcel_Err:
 MsgBox "GetExcel Error: " & Err.Number & "-" & Err.Description
 Resume Next
End Function 

5. Kalo yang di bawah ini sintak Procedure untuk nulis data ke file Excel:

Public Sub SetExcel(xlFileName As String, _
 xlWorksheet As String, _
 xlCellName As String, _
 xlCellContents As String)

 On Error GoTo SetExcel_Err 'eror handler

 ' inisiasi Excel App Object
 Set xlApp = CreateObject("Excel.Application")

 ' inisiasi Excel Workbook Object.
 Set xlBook = xlApp.Workbooks.Open(xlFileName)

 ' mengisi nilai tertentu ke cell tujuan
 xlBook.worksheets(xlWorksheet).range(xlCellName).Value = xlCellContents

 ' menyimpan file dan menutup spreadsheet
 xlBook.Save
 xlBook.Close savechanges:=False
 xlApp.Quit
 Set xlApp = Nothing
 Set xlBook = Nothing
 Exit Sub
SetExcel_Err:
 MsgBox "SetExcel Error: " & Err.Number & "-" & Err.Description
 Resume Next
End Sub

Function dan Procedure di atas boleh disimpan di module ataupun di form namun sebaiknya disimpan di module agar lebih mudah dikelola.

Note:

  • xlFilename = nama file excelnya, tipenya string, misal “F:Tugas KuliahData.xls”
  • xlWorksheet = nama sheet pada spreadsheet yg akan dibaca/ditulis datanya, tipenya string, misal “Sheet1” atau “Pengeluaran”
  • xlCellName = nama cell yang akan dibaca/ditulis datanya, misal “A1″,”JW23” dst
  • xlCellContent = data yang akan ditulis ke file Excel, tipenya string, misal “Wahyu”, “23” dsb

Contoh Penggunaan:

'membaca file Excel dan meyimpan hasilnya ke Text1
Text1.text = GetExcel("F:\Tugas Kuliah\Data.xls","Sheet1","A1")
'membaca isi Text1 dan dsimpan ke file Excel
SetExcel "F:\Tugas Kuliah\Data.xls","Sheet1","A1",Text1.text

Any Question so far? Semoga bermanfaat…

Iklan

22 pemikiran pada “Koneksi VB Excel

  1. He3, jadi inget jaman geladi dulu ya Noy, masih bego2nya VB tuh, maklum baru belajar, untung ada Ninoy yg dengan setia menemani n memberi semangat, walaupun gak ikutan coding kan? huehehehe….

  2. Weleh, bener2 kejam diriku menelantarkan blog ini sampe ada komen yang berbulan-bulan belum kubales. Maaph.. maaph… maklum kuliaholic dan ngajarholic 😀

    @are & @ariee : klo datanya ada dalam beberapa baris tinggal pake looping aja kang, sintak yg ada di atas masukin ke dalam preocedure trus procedurenya dipanggil berulang-ulang lewat looping for, while-do ato repeat-until. Nah, posisi baris n kolom datanya dijadiin parameter aja di procedure itu. Semoga berhasil 🙂

  3. Saya sangat berterima kasih ma Tutorialnya pi boLeh gak saya minta
    file downloadnya?krn saya coba dari dulu eror melulu…
    Skali lagi makasih banget…

  4. mas aku minta programnya boleh nggak untuk koneksi vb ke excel dengan input data rownya banyak. soalnya dah coba nggak berhasil terus. mas minta ya

  5. @Athallah: kalo mau membaca jumlah baris datanya bisa pake fungsi GetExcel di atas trus pake looping dan disisipkan pengecekan apakah hasil fungsi GetExcel nya = ” ato tidak, tapi agak rumit sebab loopingnya harus sesuai dengan range cell yg akan diperiksa, misalnya A1 – D15 (bukan looping sederhana seperti 1 – 20 dsb) jadi algoritma untuk loopingnya juga agak ribet, saya belum pernah nyobain, he3.. maap. Mungkin mas bisa cek di mbah google ato coba saran saya di atas, maap tidak banyak membantu 🙂

  6. @paksoleh: waduh saya juga udah kehilangan programnya kang, sebenernya bisa bikin baru sih… tapi baru aja nginstal ulang kompie… hehehe… kopas aja kode di atas kang 🙂

    1. mas cimeng, apa konfirm error out of range yang dimaksud itu “subscript out of range”? kalo iya, mungkin mas cimeng menggunakan array, kemudian gak sengaja manggil elemen array yg ada di luar batas yang sudah ditetapkan, misalnya array diset terdiri dari 5 elemen, kemudian memanggil elemen array ke-6, maka akan muncul error seperti itu.
      Mohon maaf klo jawaban saya kurang memuaskan, untuk lebih jelasnya tentang subscript out of range, mas cimeng bisa baca di sini

  7. wah… pas bgt mas, saya kebetulan lgi pemula vb6. berhari-hari ngobok internet baru ketemu yg bisa sy pahami. kalo pake looping gimna y mas?
    trus klo ngimput rumus gmna crnya? misal “=vlookup(a1,sheet1’A:D,4,false)”
    trims sblmnya
    bls ke email aja mas : suastikabali@yahoo.com

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s