Mengambil Teks dengan Fungsi Mid di VBA Excel

Pada artikel sebelumnya kita telah mempelajari fungsi Left dan Right untuk mengambil karakter dari bagian kiri maupun kanan sebuah teks.

Namun, bagaimana jika informasi yang dibutuhkan justru berada di tengah sebuah string?

Misalnya:

  • kode INV-2026-00125, Anda ingin mengambil 2026;

  • NIK 3578123456789012, Anda ingin mengambil kode wilayah;

  • tanggal 2026-08-15, Anda ingin mengambil bulan;

  • nomor seri PRD-A12-009, Anda hanya membutuhkan bagian A12.

Untuk kebutuhan seperti ini, VBA menyediakan fungsi Mid.


Apa Itu Fungsi Mid?

Mid adalah fungsi string yang digunakan untuk mengambil sejumlah karakter mulai dari posisi tertentu di dalam sebuah teks.

Berbeda dengan Left dan Right, fungsi ini memberikan fleksibilitas karena Anda dapat menentukan sendiri posisi awal karakter yang akan diambil.


Sintaks Fungsi Mid

Sintaks umum fungsi Mid adalah:

Mid(String, Start, Length)

Keterangan:

  • String adalah teks yang akan diproses.

  • Start adalah posisi karakter pertama yang akan diambil.

  • Length adalah jumlah karakter yang ingin diambil.

Catatan: Posisi karakter pada VBA dimulai dari 1, bukan dari 0.


Cara Kerja Fungsi Mid

Misalkan terdapat teks berikut.

Microsoft Excel

Kemudian dijalankan kode berikut.

Mid("Microsoft Excel", 11, 5)

Hasilnya:

Excel

Artinya:

  • mulai dari karakter ke-11;

  • ambil sebanyak 5 karakter.


Contoh Dasar

Sub ContohMid()

    MsgBox Mid("Belajar VBA Excel", 9, 3)

End Sub

Hasil:

VBA

Mengambil Data dari Sel

Sub AmbilData()

    MsgBox Mid(Range("A1").Value, 5, 4)

End Sub

Jika A1 berisi:

INV-2026-00125

hasilnya:

2026

Menggunakan Variabel

Sub ContohVariabel()

    Dim Kode As String

    Kode = "PRD-A12-009"

    MsgBox Mid(Kode, 5, 3)

End Sub

Hasil:

A12

Jika Length Dihilangkan

Parameter ketiga bersifat opsional.

Mid("Belajar VBA Excel", 9)

Hasil:

VBA Excel

Karena VBA akan mengambil seluruh karakter mulai dari posisi ke-9 hingga akhir string.


Menggunakan Mid Bersama Len

Sering kali panjang teks perlu diperiksa terlebih dahulu.

Sub Contoh()

    Dim Teks As String

    Teks = Range("A1").Value

    If Len(Teks) >= 10 Then

        MsgBox Mid(Teks, 6, 5)

    End If

End Sub

Pendekatan ini membuat kode lebih aman ketika memproses data dengan panjang yang bervariasi.


Menggunakan Mid Bersama InStr

Misalkan terdapat data berikut.

Andi|Surabaya|Programmer

Untuk mengambil nama kota.

Sub AmbilKota()

    Dim Data As String
    Dim Posisi As Long

    Data = "Andi|Surabaya|Programmer"

    Posisi = InStr(Data, "|")

    MsgBox Mid(Data, Posisi + 1, 9)

End Sub

Hasil:

Surabaya

Studi Kasus

Perusahaan menggunakan format nomor transaksi berikut.

TRX-2026-JKT-00125

Kode cabang selalu berada di posisi ke-10 sebanyak tiga karakter.

Sub AmbilCabang()

    Dim Nomor As String

    Nomor = Range("A2").Value

    MsgBox Mid(Nomor, 10, 3)

End Sub

Hasil:

JKT

Mid vs Left vs Right

Ketiga fungsi ini sering digunakan bersama.

FungsiKegunaan
Left Mengambil karakter dari kiri
Mid Mengambil karakter dari posisi tertentu
Right Mengambil karakter dari kanan

Pilih fungsi sesuai letak data yang ingin diambil.


Kesalahan yang Sering Terjadi

Menganggap Posisi Dimulai dari Nol

Salah.

Mid("Excel", 0, 2)

Posisi pertama pada VBA adalah 1, bukan 0.


Salah Menentukan Posisi Awal

Jika posisi awal bergeser satu karakter saja, hasil yang diperoleh juga akan berbeda.

Selalu periksa struktur data sebelum menentukan nilai parameter Start.


Tidak Memvalidasi Panjang String

Jika posisi awal melebihi panjang string, fungsi Mid tidak akan menghasilkan data yang diharapkan.

Gunakan Len bila diperlukan.


Tips Praktis

💡 Gunakan Mid jika data berada di tengah string.

💡 Kombinasikan Mid dengan Len agar proses ekstraksi lebih aman.

💡 Gunakan InStr untuk menentukan posisi awal secara dinamis, sehingga kode tetap bekerja meskipun panjang data berubah.

💡 Jangan menggunakan angka posisi secara sembarangan. Pastikan Anda memahami format data yang diproses.

💡 Jika struktur data sering berubah, hindari menggunakan posisi tetap dan manfaatkan kombinasi InStr, InStrRev, atau Split.


Ringkasan

FungsiKegunaan
Mid Mengambil karakter dari posisi tertentu
Mid + Len Memvalidasi panjang teks sebelum diproses
Mid + InStr Mengambil data berdasarkan posisi karakter tertentu
Mid tanpa Length Mengambil teks hingga akhir string

Kesimpulan

Mid merupakan fungsi string yang sangat fleksibel karena memungkinkan Anda mengambil karakter mulai dari posisi tertentu di dalam sebuah teks. Fungsi ini sering digunakan untuk mengekstrak kode, tanggal, nomor transaksi, maupun bagian tertentu dari data yang memiliki format tetap. Dengan mengombinasikannya bersama Len dan InStr, Anda dapat membangun proses pengolahan teks yang lebih dinamis, akurat, dan mudah dipelihara.

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.