Ambil nilai dari file excel via VBA tanpa membukanya

Beberapa waktu lalu, saya sempat bingung mencari bagaimana caranya mengambil nilai suatu cell dari file excel tanpa membukanya. Pertama kali yang menjadi pikiranku adalah dengan membukanya secara hidden kemudian mengambil isi cellnya baru menutup file tersebut. Tapi cara tersebut sangat tidak efektif dan waktu eksekusinya juga lambat. Akhirnya saya temukan cara ini.

VBA memiliki satu metode yang bernama ExecuteExcel4Macro. Metode ini digunakan untuk menjalankan excel macro function dan mengembalikan nilai sesuai fungsi yang dimasukkan tersebut. Sintaxnya adalah :

return = ExecuteExcel4Macro(string)

string = suatu string yang berisi tentang fungsi macro yang dikehendaki, misalnya adalah MID(“”sometext”",1,4)

return = nilai yang dikembalikan oleh fungsi

Dalam konteks saya, metode diatas saya terapkan dalam sebuah fungsi untuk mengambil nilai dari suatu cell. Fungsi yang saya gunakan adalah di bawah ini :

Public Function GetValue(path, file, sheet, cell)
Dim arg As String
arg = “‘” & path & “[" & file & "]” & sheet & “‘!” & Range(cell).Range(“A1″).Address(, , xlR1C1)
GetValue = ExecuteExcel4Macro(arg)
End Function

  • path = lokasi direktori dari file yang akan diambil nilainya, misal(formatnya harus sama)  C:/data/vba/
  • file = nama filenya, misal belajar.xls
  • sheet = lokasi sheet dari cell yang akan diambil, misal Sheet1
  • cell = cell yang dikehendaki, misal C4
  • arg = string yang berisi alamat dari file serta argumen2 yang digunakan

Fungsi GetValue diatas akan mengembalikan string berupa nilai dari cell yang dikehendaki.

Referensi :

http://spreadsheetpage.com

http://msdn.microsoft.com

Tags: , ,
  • http://putravb.blogspot.com Putra VB

    Makasih yaa atas infonya !!!!!!!!!!!!!!!!

    • http://canggih.web.id admin

      sama-sama :)

  • edoel

    Salam kenal semua…!
    Saya ada masalah nih dg Macro di Excel 2010 dan di Excel 2003 macro ini jalan dgn baik.

    Masalahnya yaitu saat membuka file ber-password :
    Workbooks.open, parameter “password” tidak memberikan efek, system tetap meminta password.

    berikut cuplikan code macronya :
    If Not WorkbookOpened(filename) Then _
    Workbooks.Open filename:=MyFile, password:=kSystemPassword, WriteResPassword:=kSystemPassword

    File Excel yg dibuka dalam kondisi di-Password dan Shared

    Bagaimana solusinya bos…!!!

    Mohon bantuannya
    terima kasih
    edoel72@gmail.com