VBA RegEx

Apa itu RegEx di Excel VBA?

RegEx adalah singkatan dari " Regular Expression " di VBA Excel dan merupakan urutan karakter yang menentukan pola pencarian untuk menemukan pola karakter tertentu dalam string nilai. Dengan kata sederhana "kita dapat membuat pola ekspresi reguler dan menggunakannya untuk mencari string pola itu".

VBA RegEx adalah model objek. Saya tahu itu menakutkan dengan melihat penjelasannya tetapi masalahnya adalah sifat dari objeknya. Satu hal yang perlu Anda ingat di sini adalah VBA RegEx (Regular Expression) adalah objek fungsi teks seperti fungsi teks lainnya "LEFT, RIGHT, MID".

Bagaimana cara mengaktifkan RegEx di Excel VBA?

Seperti yang saya katakan VBA RegEx adalah model objek di VBA seperti perangkat lunak eksternal kami seperti "MS Word" dan "MS PowerPoint". Demikian pula, RegEx juga merupakan Model Objek Komponen (COM) yang perlu kita rujuk di editor VBA. Untuk mengaktifkan RegEx, ikuti langkah-langkah di bawah ini.

Langkah 1: Buka Editor Visual Basic (Alt + F11)

Langkah 2: Buka Alat dan Referensi.

Langkah 3: Sekarang Anda akan melihat referensi ke Proyek VBA. Gulir ke bawah dan pilih "Microsoft VBScript Regular Expression 5.5"

Langkah 4: Sekarang klik OK. Kita dapat mengakses objek RegEx ini sekarang dalam pengkodean VBA.

Contoh - Sekarang saya akan menunjukkan satu contoh sederhana. Misalnya Anda memiliki kata-kata "Penjualan 2019, Penjualan 2018, dan Penjualan 2017". Jika Anda mendefinisikan pola sebagai [0 - 7], pola itu cocok dengan semua angka antara 0 sampai 7, jadi kecocokan kita akan menjadi 201, 201, dan 2017 di setiap string.

Pola RegEx VBA

Pola fungsi VBA RegEx terlihat mengintimidasi dan membutuhkan beberapa waktu untuk memahami polanya. Kita dapat melihat dua jenis urutan karakter di sini, satu adalah "Karakter Literal" dan yang lainnya adalah "Karakter Metak".

  • Karakter Literal mencari yang sama persis dengan string yang disediakan. Misalnya, urutan karakter literal "EFG" hanya mencari semua kecocokan "EFG" dalam teks yang tersedia.
  • Metakarakter hanyalah kombinasi dari karakter dengan arti yang tepat dalam pola RegEx. Ini sangat berbeda dari Karakter Literal. Ini adalah topik yang sangat besar untuk dibahas, di bawah ini adalah beberapa sintaks penting.
SintaksisDeskripsiContohContoh Pertandingan
.Ini cocok dengan salah satu karakter dari string inputptMembelai. Pot, Taruh, Pola
[]Ini cocok dengan karakter tunggal apa pun di antara braket string input[pt]Cocok dengan p atau t
[^]Ini cocok dengan karakter tunggal apa pun, tidak di antara tanda kurung dari string input[^ pt]Tidak cocok dengan p atau t
[Pertama-Terakhir]Ini cocok dengan karakter apa pun di antara rentang yang disediakan dalam tanda kurung[0-9]Ini cocok dengan digit apa pun dari 0 hingga 9
[az]Ini cocok dengan semua karakter huruf kecil dari a hingga z
[AZ]Ini cocok dengan semua karakter huruf besar dari A hingga Z
\ sCocok dengan semua karakter spasi-Cocok dengan Spasi, Baris Baru, atau Karakter Tab
\ SIni cocok dengan karakter non-spasi-Karakter yang cocok bukan Spasi, bukan Baris Baru, atau bukan Karakter Tab
\ dIni cocok dengan karakter satu digit apa punSE 5 VG 6Pertandingan 5 dan 6
\ DIni cocok dengan satu karakter bukan digitSE 5 VG 6Cocok dengan SEVG

Properti dan Metode Objek RegEx

Seperti semua model objek kami, RegEx juga memiliki properti dan metodenya sendiri. Sekarang kita akan lihat satu per satu secara detail.

Properti Objek Regex VBA

  • Pola: Ini digunakan untuk mencocokkan string yang disediakan.
  • Abaikan Huruf : Ini untuk mengabaikan huruf besar dan huruf kecil.
  • Global: Jika Anda ingin menemukan semua kecocokan dalam pola maka TRUE adalah argumennya atau kecocokan pertama akan ditemukan.
  • Multi-Line: Jika Anda ingin menemukan jeda baris baru, Anda dapat menggunakan ini.

Metode Objek RegEx

  • Test: Ini untuk menguji apakah pola dapat ditemukan dalam string yang disediakan. Ini akan mengembalikan TRUE jika ditemukan atau FALSE.
  • Jalankan: Ini akan mengembalikan semua kecocokan pola terhadap string yang ditemukan.
  • Replace: Ini akan mengganti string pencarian dengan string baru.

Contoh RegEx di VBA Excel

Sekarang lihat contoh kode VBA di bawah ini.

Anda dapat mendownload Template VBA RegEx Excel ini di sini - Template VBA RegEx Excel

Kode:

Sub RegEx_Example () Redupkan RegEx Sebagai Objek, MyString Sebagai String Set RegEx = CreateObject ("VBScript.RegExp") Dengan RegEx .Pattern = "[0-9] +" Akhiri Dengan MyString = "Tanggal Lahir tahun 1985" MsgBox RegEx .Test (MyString) MyString = "Tanggal Lahir tahun adalah ???" MsgBox RegEx.Test (MyString) End Sub

bebas

Pada kode di atas, kita telah mengatur pola pencarian angka dari 0 sampai 9 sebagai berikut.

 Dengan RegEx .Pattern = "[0-9] +" Akhiri Dengan 

Kemudian variabel MyString = "Tanggal Lahir tahun 1985" ini memegang nilai dari 0 sampai 9, jadi kotak pesan kita akan mengembalikan TRUE.

MyString = “Tanggal Lahir tahun adalah ???” tidak memiliki angka dari 0 sampai 9 sehingga akan mengembalikan FALSE sebagai hasil kotak pesan.