Microsoft đã công bố lộ trình ngừng hỗ trợ (deprecation) dần dần VBScript trong hệ điều hành Windows. Sự thay đổi này tác động đáng kể đến các nhà phát triển VBA vốn phụ thuộc vào thư viện VBScript để xử lý biểu thức chính quy (RegExp) và thực thi các script bên ngoài. Để đảm bảo an toàn thông tin và tương thích lâu dài, việc cập nhật bản vá và điều chỉnh mã nguồn là cần thiết.
Tổng quan về lộ trình ngừng hỗ trợ VBScript
Microsoft đã phác thảo một lộ trình và cung cấp hướng dẫn di chuyển toàn diện nhằm giúp các nhà phát triển chuẩn bị dự án của mình cho tương lai.
Quá trình ngừng hỗ trợ VBScript sẽ diễn ra theo ba giai đoạn riêng biệt trong những năm tới.
Giai đoạn 1: Duy trì VBScript như một Tính năng theo yêu cầu (FoD)
- Giai đoạn này đang được kích hoạt và kéo dài đến khoảng năm 2026 hoặc 2027.
- VBScript vẫn được duy trì như một Tính năng theo yêu cầu (Feature on Demand – FoD) được bật mặc định.
- Điều này đảm bảo rằng các dự án VBA hiện có vẫn tiếp tục hoạt động bình thường, duy trì khả năng tương thích ngược trong giai đoạn chuyển đổi ban đầu.
Giai đoạn 2: VBScript FoD bị tắt theo mặc định
- Giai đoạn này dự kiến bắt đầu vào khoảng năm 2026 hoặc 2027.
- Các FoD của VBScript sẽ bị tắt theo mặc định trên các bản phát hành Windows.
- Mặc dù vẫn có thể được bật lại thủ công, việc này đòi hỏi sự can thiệp từ người dùng hoặc quản trị viên hệ thống.
Giai đoạn 3: Loại bỏ hoàn toàn VBScript khỏi Windows
- Thời điểm bắt đầu giai đoạn này chưa được xác định cụ thể.
- VBScript sẽ bị loại bỏ hoàn toàn khỏi các bản phát hành Windows trong tương lai.
- Trong giai đoạn cuối cùng này, việc gọi các script
.vbs
từ VBA sẽ không còn hoạt động. - Tham chiếu đến các thư viện VBScript RegExp sẽ bị lỗi trừ khi các ứng dụng Office được cập nhật lên các bản dựng được hỗ trợ.
- Sự chuyển đổi này yêu cầu các nhà phát triển sử dụng các chức năng này phải có sự chú ý và hành động ngay lập tức để tránh các rủi ro bảo mật và lỗi hệ thống.
Giải pháp của Microsoft: Tích hợp RegExp Native vào VBA
Microsoft đã giải quyết tác động của việc ngừng hỗ trợ VBScript bằng cách tích hợp trực tiếp các lớp RegExp vào VBA cho các phiên bản Office 2508 (Build 19127.20154) và mới hơn.
Sự tích hợp này loại bỏ sự cần thiết của các tham chiếu thư viện VBScript bên ngoài, cung cấp bốn loại đối tượng chính:
RegExp
Match
MatchCollection
SubMatches
Các nhà phát triển có thể triển khai chức năng RegExp thông qua early binding, tạo các biến mà không cần tham chiếu thư viện bên ngoài.
- Phương pháp này hoạt động độc quyền trên các phiên bản Office 2508 trở lên.
- Tính tương thích được đảm bảo bất kể phiên bản Windows client đang sử dụng.
Ngoài ra, late binding sử dụng CreateObject(“VBScript.RegExp”)
vẫn tương thích với Office 2508+ trên tất cả các phiên bản Windows và các hệ thống Windows cũ hơn nếu VBScript vẫn được bật.
Hướng dẫn di chuyển và các khuyến nghị quan trọng
Để đảm bảo quá trình chuyển đổi diễn ra liền mạch và duy trì tính ổn định của các ứng dụng, Microsoft khuyến nghị một số bước quan trọng.
Nâng cấp Microsoft 365 và sử dụng chức năng tích hợp
Microsoft khuyến nghị nâng cấp lên Microsoft 365 Version 2508 hoặc mới hơn để có khả năng tương thích liền mạch với việc triển khai RegExp gốc.
Các nhà phát triển nên ưu tiên sử dụng chức năng RegExp tích hợp sẵn trong VBE cho các macro mới, thay vì tham chiếu thủ công đến vbscript.dll
.
Kiểm tra và xác định các phụ thuộc VBScript
Thử nghiệm các dự án trong môi trường đã tắt VBScript sẽ giúp xác định các phụ thuộc ẩn trước khi các giai đoạn ngừng hỗ trợ có hiệu lực.
Các script VBA sử dụng thư viện VBScript RegExp từ các phiên bản Office cũ hơn 2508 vẫn sẽ tiếp tục hoạt động với các phiên bản Office mới hơn trên các hệ thống Windows nơi VBScript vẫn được bật.
Quá trình chuyển đổi này cung cấp cho các nhà phát triển đủ thời gian để cập nhật các dự án của mình, đồng thời duy trì khả năng tương thích ngược trong các giai đoạn đầu.
Phản hồi và tài nguyên bổ sung
Microsoft khuyến khích các nhà phát triển gửi phản hồi thông qua tính năng “Help Improve Office” trong các ứng dụng Office hoặc bình luận trên blog của họ để tinh chỉnh quá trình di chuyển.
Để biết thêm chi tiết về cách chuẩn bị các dự án VBA cho việc ngừng hỗ trợ VBScript, bạn có thể tham khảo hướng dẫn chính thức từ Microsoft.