Jangan Salah Konversi Data di VBA Excel, Kenali CStr, CInt, CDbl, dan Format

Saat membuat aplikasi VBA Excel, kita akan sering menerima data dari berbagai sumber, seperti worksheet, file CSV, database, maupun input pengguna.

Masalahnya, data yang diterima belum tentu memiliki tipe yang sesuai dengan kebutuhan program.

Sebagai contoh:

  • angka terbaca sebagai teks;

  • tanggal disimpan dalam format string;

  • hasil perhitungan menjadi tidak akurat karena tipe data yang salah;

  • muncul pesan Type Mismatch saat program dijalankan.

Untuk mengatasi masalah tersebut, VBA menyediakan berbagai fungsi konversi tipe data, seperti CStr, CInt, CLng, CDbl, CDate, CBool, serta fungsi Format untuk mengatur tampilan data.

Memahami fungsi-fungsi ini akan membuat program lebih akurat, lebih aman, dan lebih mudah dipelihara.


Apa Itu Konversi Tipe Data?

Konversi tipe data (Type Conversion) adalah proses mengubah suatu nilai dari satu tipe data ke tipe lainnya.

Contohnya:

  • teks menjadi angka;

  • angka menjadi teks;

  • teks menjadi tanggal;

  • angka desimal menjadi bilangan bulat.


Fungsi Konversi yang Paling Sering Digunakan

FungsiMengubah Menjadi
CStr() String
CInt() Integer
CLng() Long
CDbl() Double
CSng() Single
CDate() Date
CBool() Boolean
CDec() Decimal (Variant)

Menggunakan CStr

CStr digunakan untuk mengubah suatu nilai menjadi String.

Sintaks:

CStr(Expression)

Contoh:

Sub ContohCStr()

    Dim Nilai As Integer

    Nilai = 150

    MsgBox CStr(Nilai)

End Sub

Nilai angka berubah menjadi teks.


Menggunakan CInt

CInt digunakan untuk mengubah data menjadi Integer.

Sub ContohCInt()

    Dim Nilai As Integer

    Nilai = CInt("125")

    MsgBox Nilai

End Sub

Jika teks berisi angka yang valid, konversi akan berhasil.


Cara Kerja Pembulatan CInt

Perhatikan contoh berikut.

Debug.Print CInt(12.3)

Hasil:

12

Sedangkan:

Debug.Print CInt(12.7)

Hasil:

13

CInt melakukan pembulatan ke bilangan bulat terdekat, bukan sekadar membuang angka di belakang koma.


Menggunakan CDbl

CDbl digunakan untuk mengubah data menjadi tipe Double.

Sub ContohCDbl()

    Dim Harga As Double

    Harga = CDbl("1250.75")

    MsgBox Harga

End Sub

Gunakan CDbl ketika membutuhkan angka desimal dengan presisi tinggi.


Menggunakan CLng

Jika nilai melebihi batas Integer, gunakan CLng.

Sub ContohCLng()

    Dim Total As Long

    Total = CLng("500000")

    MsgBox Total

End Sub

Menggunakan CDate

Untuk mengubah teks menjadi tanggal.

Sub ContohTanggal()

    Dim Tanggal As Date

    Tanggal = CDate("15/08/2026")

    MsgBox Tanggal

End Sub

Pastikan format tanggal sesuai dengan pengaturan regional Windows agar hasil konversi tidak keliru.


Menggunakan CBool

Sub ContohBoolean()

    Dim Status As Boolean

    Status = CBool(True)

    MsgBox Status

End Sub

Mengenal Fungsi Format

Berbeda dengan fungsi konversi, Format tidak mengubah tipe data asli, melainkan menghasilkan representasi teks sesuai format yang ditentukan.

Sintaks:

Format(Expression, FormatString)

Memformat Angka

Sub FormatAngka()

    MsgBox Format(12345.678, "#,##0.00")

End Sub

Hasil:

12,345.68

Memformat Persentase

MsgBox Format(0.875, "0.00%")

Hasil:

87.50%

Memformat Tanggal

MsgBox Format(Date, "dd mmmm yyyy")

Contoh hasil:

02 Agustus 2026

Memformat Waktu

MsgBox Format(Time, "hh:mm:ss")

Studi Kasus

Misalkan kolom A berisi harga dalam bentuk teks.

12500
9800
7500

Anda ingin menghitung total seluruh harga.

Sub HitungTotal()

    Dim Total As Double
    Dim Sel As Range

    For Each Sel In Range("A2:A10")

        Total = Total + CDbl(Sel.Value)

    Next Sel

    MsgBox Format(Total, "#,##0")

End Sub

Pada contoh tersebut:

  • CDbl mengubah teks menjadi angka.

  • Format membuat hasil lebih mudah dibaca.


Format vs NumberFormat

Banyak pemula menganggap keduanya sama, padahal berbeda.

FormatNumberFormat
Menghasilkan string Mengubah format tampilan sel
Digunakan dalam kode VBA Digunakan pada objek Range
Tidak mengubah isi sel Mengubah tampilan data di worksheet

Contoh NumberFormat:

Range("A1").NumberFormat = "#,##0.00"

Kesalahan yang Sering Terjadi

Type Mismatch

CInt("ABC")

Kode tersebut akan menghasilkan Type Mismatch karena teks bukan angka.


Menggunakan CInt untuk Angka Besar

CInt(500000)

Nilai tersebut melebihi kapasitas Integer.

Gunakan:

CLng(500000)

Menganggap Format Mengubah Nilai

Misalnya:

Format(1250, "#,##0")

Hasilnya adalah String, bukan angka.

Jika masih ingin melakukan operasi matematika, gunakan nilai aslinya.


Tips Praktis

💡 Gunakan CStr saat menggabungkan angka dengan teks.

💡 Gunakan CDbl untuk data desimal.

💡 Gunakan CLng jika angka melebihi batas Integer.

💡 Gunakan Format hanya untuk mengatur tampilan hasil.

💡 Validasi data sebelum melakukan konversi untuk menghindari Type Mismatch.


Ringkasan

FungsiKegunaan
CStr() Mengubah menjadi String
CInt() Mengubah menjadi Integer
CLng() Mengubah menjadi Long
CDbl() Mengubah menjadi Double
CDate() Mengubah menjadi Date
CBool() Mengubah menjadi Boolean
Format() Memformat tampilan nilai

Kesimpulan

Fungsi konversi tipe data seperti CStr, CInt, CLng, CDbl, CDate, dan CBool merupakan bagian penting dalam pengembangan aplikasi VBA Excel. Fungsi-fungsi tersebut memastikan setiap data diproses menggunakan tipe yang tepat sehingga mengurangi risiko kesalahan saat menjalankan program. Sementara itu, fungsi Format membantu menyajikan hasil dalam bentuk yang lebih mudah dibaca tanpa mengubah nilai aslinya. Dengan memahami perbedaan antara konversi tipe data dan pemformatan, Anda dapat menulis kode VBA yang lebih andal, aman, dan profesional.

Hubungi Kami

Kantor Berkreasi
Alamat :
Pens Sky Venture - Sukolilo Surabaya
Karangrejo Tmur 17 Surabaya

Email : kantor.berkreasi@gmail.com
WA : wa.me/6287761589881  
(Support  Mbak Ana)

Tim Pengembang

Dr. Rojabi Azharghany, M.Si, S.Sos
Dr. H. Agus Sulthoni Imami, S.Psi. M.Pd.I.
Ali Ishaq, M.Pd.
Didik Rahwiniyanto, S.Si., M.Pd.
Mujiburrohman, M.Pd.
Mohammad Zikky, S.ST, M.T
Amien sawedi, S.Pd.
Didik P Wicaksono, M.Pd.