phuongnam366377
Thành viên hoạt động



- Tham gia
- 25/10/19
- Bài viết
- 192
- Được thích
- 205
1/ Nội dụng bài Viết do ChatGPT biên soạn theo ý của tôi chỉ huy nó
2/ Code viết trên Delphi 13 + ChatGPT hổ trợ tạo nên thư viện này
3/ là bản thử nghiệm nên phát sinh lỗi là điều đương nhiên ...
Nên quá trình sử dụng có lỗi mô tả chi tiết nếu khả năng có thể Tôi sẽ điều chỉnh viết lại
# COM DLL `ScriptHelper.RegExp` – Thay thế VBScript.RegExp trong VBA
Microsoft đã loại bỏ **VBScript.RegExp** (trong `vbscript.dll`) trên Windows mới, khiến nhiều macro VBA cũ bị lỗi.
Giải pháp: **COM DLL `ScriptHelper.RegExp`** viết bằng Delphi, có thể đăng ký vào Windows và sử dụng trực tiếp trong VBA/Excel/Access/Word.
---
## Cài đặt
1. Copy file `ScriptHelper.dll` vào thư mục tùy ý.
2. Đăng ký bằng lệnh (chạy CMD với quyền admin):
3. Trong VBA, tạo đối tượng như sau:
---
## Ví dụ sử dụng
### 1. Execute – tìm tất cả match
Kết quả:
```
Match count: 1
First Match: 123 abc @@@
```
---
### 2. Replace – thay thế toàn bộ
---
### 3. FirstMatch – tìm match đầu tiên
---
### 4. Split – tách chuỗi theo Regex
---
##
Ưu điểm
* Chạy tốt trên Windows 10/11 (không cần VBScript).
* Hỗ trợ Unicode đầy đủ.
* Giao diện tương tự `VBScript.RegExp`.
* Dùng được ngay trong Excel, Access, Word.
---
Nếu bạn đang bảo trì macro VBA cũ, hãy thay `VBScript.RegExp` bằng **ScriptHelper.RegExp** để code tiếp tục chạy ổn định trên Windows mới.

Giao diện sau khi đăng ký COM thành công nếu Add DLL sử dụng trong VBA sẽ thấy các hàm cơ bản như trên
vọc chơi cho vui lúc rảnh hai ngày tạm định hình xong thư viện cơ bản .... thong thả và dong chơi nếu thích bổ sung thêm các hàm tiện ích khác
đính kèm File phía dưới là COM DLL 64 bít vậy chỉ sử dụng cho Excel 64 bít ... nếu ai dùng bản 32 bít thì báo Tôi úp thêm
kèm các ví dụ sử dụng trong File Excel các kiểu
Password WinRaR là : 123
2/ Code viết trên Delphi 13 + ChatGPT hổ trợ tạo nên thư viện này
3/ là bản thử nghiệm nên phát sinh lỗi là điều đương nhiên ...
Nên quá trình sử dụng có lỗi mô tả chi tiết nếu khả năng có thể Tôi sẽ điều chỉnh viết lại
# COM DLL `ScriptHelper.RegExp` – Thay thế VBScript.RegExp trong VBA
Microsoft đã loại bỏ **VBScript.RegExp** (trong `vbscript.dll`) trên Windows mới, khiến nhiều macro VBA cũ bị lỗi.
Giải pháp: **COM DLL `ScriptHelper.RegExp`** viết bằng Delphi, có thể đăng ký vào Windows và sử dụng trực tiếp trong VBA/Excel/Access/Word.
---
## Cài đặt
1. Copy file `ScriptHelper.dll` vào thư mục tùy ý.
2. Đăng ký bằng lệnh (chạy CMD với quyền admin):
Mã:
regsvr32 ScriptHelper.dll
3. Trong VBA, tạo đối tượng như sau:
Mã:
Dim re As Object
Set re = CreateObject("ScriptHelper.RegExp")
---
## Ví dụ sử dụng
### 1. Execute – tìm tất cả match
Mã:
Sub TestRegExp()
Dim re As Object, m As Variant
Set re = CreateObject("ScriptHelper.RegExp")
re.Pattern = "123.+?abc.+?@@@"
re.Global = True
re.IgnoreCase = False
m = re.Execute("123 abc @@@")
Debug.Print "Match count: "; UBound(m) - LBound(m) + 1
Debug.Print "First Match: "; m(0)
```
End Sub
Kết quả:
```
Match count: 1
First Match: 123 abc @@@
```
---
### 2. Replace – thay thế toàn bộ
Mã:
Sub TestReplace()
Dim re As Object, result As Variant
```
Set re = CreateObject("ScriptHelper.RegExp")
re.Pattern = "\d+"
re.Global = True
result = re.Replace("Số 123 và 456", "###")
Debug.Print result ' Kết quả: Số ### và ###
```
End Sub
---
### 3. FirstMatch – tìm match đầu tiên
Mã:
Sub TestFirstMatch()
Dim re As Object, first As Variant
```
Set re = CreateObject("ScriptHelper.RegExp")
re.Pattern = "\w+"
re.Global = True
first = re.FirstMatch("Xin chao cac ban")
Debug.Print first ' Kết quả: Xin
```
End Sub
---
### 4. Split – tách chuỗi theo Regex
Mã:
Sub TestSplit()
Dim re As Object, parts As Variant, i As Long
```
Set re = CreateObject("ScriptHelper.RegExp")
re.Pattern = "[,; ]+"
parts = re.Split("A,B;C D")
For i = LBound(parts) To UBound(parts)
Debug.Print parts(i)
Next
' Kết quả:
' A
' B
' C
' D
```
End Sub
---
##

* Chạy tốt trên Windows 10/11 (không cần VBScript).
* Hỗ trợ Unicode đầy đủ.
* Giao diện tương tự `VBScript.RegExp`.
* Dùng được ngay trong Excel, Access, Word.
---
Nếu bạn đang bảo trì macro VBA cũ, hãy thay `VBScript.RegExp` bằng **ScriptHelper.RegExp** để code tiếp tục chạy ổn định trên Windows mới.

Giao diện sau khi đăng ký COM thành công nếu Add DLL sử dụng trong VBA sẽ thấy các hàm cơ bản như trên
vọc chơi cho vui lúc rảnh hai ngày tạm định hình xong thư viện cơ bản .... thong thả và dong chơi nếu thích bổ sung thêm các hàm tiện ích khác
đính kèm File phía dưới là COM DLL 64 bít vậy chỉ sử dụng cho Excel 64 bít ... nếu ai dùng bản 32 bít thì báo Tôi úp thêm
kèm các ví dụ sử dụng trong File Excel các kiểu
Password WinRaR là : 123
File đính kèm
Lần chỉnh sửa cuối: