Bạn có thể sử dụng javascript thay vì vba không?

Trong nhiều năm nay, những người yêu thích Excel đã dự đoán động thái của Microsoft sẽ như thế nào về mặt kịch bản trong Microsoft Office. Cho đến nay, nhiều người dùng đang tạo các ứng dụng sử dụng văn phòng nhỏ và tự động hóa trên Excel và các giải pháp MS Office khác dù tốt hay xấu, đơn giản là do bạn có thể mở rộng chúng một cách dễ dàng. Tuy nhiên, câu hỏi đặt ra là – Microsoft dự định làm gì. VBA đã tồn tại hơn 20 năm và đã lâu không được mở rộng với bất kỳ khả năng mới nào. Cửa sổ Nhà phát triển cũng không có nhiều thay đổi và đã có nhiều tin đồn rằng VBA sẽ được lên kế hoạch thay thế bằng một ngôn ngữ lập trình hoặc nền tảng khác (như Python). Hãy xem câu chuyện đằng sau Office Scripts vs VBA là gì…

Sự xuất hiện của TypeScript cho Excel

Trong những năm/tháng gần đây, chúng tôi đã thấy sự xuất hiện của một ngôn ngữ kịch bản mới cho Excel – TypeScript và Javascript. Typescript là ngôn ngữ thuộc sở hữu của Microsoft và là siêu bộ của Javascript

Việc chuyển sang Javascript/TypeScript có lẽ có ý nghĩa đối với Microsoft vì Javascript duy trì vị trí số 1 là ngôn ngữ lập trình phổ biến trong nhiều năm nay. Bản đánh máy nằm trong top 7, đây là một thành tích cũng như đặc biệt là cả hai ngôn ngữ đều có cú pháp tương tự nhau

Ngôn ngữ lập trình hàng đầu năm 2021 – Stack OverflowMặc dù cảm giác cá nhân của tôi là có lẽ Python sẽ là lựa chọn tốt hơn, nhưng Microsoft muốn một ngôn ngữ có thể chạy tự nhiên trên trình duyệt, dễ truy cập và di động hơn. Microsoft muốn các ứng dụng Office của họ hoạt động tương tự trên mọi nền tảng, có thể là Mac, Windows, Android, iOS, v.v. Có một ngôn ngữ kịch bản yêu cầu trình thông dịch hoặc trình biên dịch của riêng nó đơn giản là khó hơn. Tập lệnh Office chỉ hoạt động trên phiên bản web của MS Office và Excel – vì vậy đừng mong đợi có thể bắt đầu viết lại tập lệnh của bạn

Office Scripts chỉ hoạt động trên phiên bản web của MS Office và Excel

Trong nhiều tháng, tôi đã tò mò liệu Microsoft có di chuyển và thay thế VBA bằng Typescript hay không

Chiến lược mới cho kịch bản trong MS Office

Các bản cập nhật mới trên tài liệu của Microsoft dường như đề xuất Office Scripts (TypeScript/Javascript) sẽ không sớm chuyển sang phiên bản Excel dành cho máy tính để bàn và đây là chiến lược mà họ sẽ theo đuổi. Như bạn có thể đọc trên trang web của Microsoft, cả VBA và Office Script đều có vai trò riêng

Quan điểm của Microsoft về Office Script so với VBA

VBA sẽ là ngôn ngữ máy tính ưa thích để tự động hóa sổ làm việc ngoại tuyến của bạn. Tuy nhiên, trích dẫn Microsoft VBA không có cách thuận tiện để gọi ra internet – do đó bạn sẽ không có cách dễ dàng để xây dựng các tập lệnh và giải pháp API được kết nối. Mặt khác, Office Scripts là giải pháp tạo tập lệnh được chỉ định cho phiên bản trực tuyến của các ứng dụng Excel và MS Office. Microsoft gợi ý rằng Office Scripts sẽ được kết nối với web nhiều hơn và tốt hơn về tính di động và khả năng truy cập

Tập lệnh Office sử dụng thời gian chạy chung cho JavaScript. Điều này mang lại hành vi và khả năng truy cập nhất quán, bất kể máy được sử dụng để chạy tập lệnh. Họ cũng có thể thực hiện cuộc gọi đến các dịch vụ web khác

Rõ ràng là Microsoft muốn cho phép bạn tự động hóa các Tập lệnh Office bằng các nền tảng khác của mình như Power Automate. Cho phép bạn tạo tác vụ văn phòng tự động E2E mà bạn có thể lên lịch với nền tảng đám mây của nó mà không cần thời gian chạy Excel. Tôi nghĩ đây là một động thái tuyệt vời và sẽ tạo động lực cho nhiều người dùng bắt đầu học Office Scripts

LAMBDA, PowerQuery

Nó có vẻ không được liên kết trực tiếp nhưng điều quan trọng cần lưu ý là Microsoft đang đầu tư vào việc mở rộng các công cụ Excel được nhúng và ngôn ngữ Công thức để hạn chế các trường hợp người dùng hiện đang tiếp cận với tập lệnh. Ý tưởng là hạn chế mọi trường hợp sử dụng mã hóa

Chỉ gần đây tôi mới thấy một tiêu đề tin tức nói rằng ngôn ngữ Công thức Excel hiện là Turing-Complete, đã đạt đến cột mốc cho phép bạn triển khai bất kỳ thuật toán nào bằng ngôn ngữ đó. Điều này xảy ra khi giới thiệu hàm LAMBDA từ lâu đã được tìm kiếm như một tính năng còn thiếu của ngôn ngữ Công thức Excel để tạo các thuật toán phức tạp của riêng bạn. LAMBDA cho phép bạn tạo các Hàm Excel tùy chỉnh có thể nhận các đối số và dựa trên các hàm khác – tương tự như bạn làm với Hàm do người dùng xác định trong VBA. Hàm Excel là cách chính mà Microsoft muốn bạn viết các phép tính và mô hình của mình, ngày càng có nhiều trường hợp sử dụng mà Microsoft thấy người dùng viết các tập lệnh phức tạp như một giải pháp thay thế. Nó hoàn toàn thích cách tiếp cận này

Xem thêm   Làm việc với tệp XML trong VBA (VBA XML)

Ngoài việc đầu tư vào việc mở rộng ngôn ngữ Công thức Excel, Microsoft nhận thấy nhiều người dùng đang sử dụng các tập lệnh để xóa tập dữ liệu của họ và chạy các truy vấn đối với trang tính của họ. Với Power Query, bạn không cần chạy thêm bất kỳ tập lệnh VBA nào để sửa cột hoặc chạy truy vấn đối với nhiều trang tính – bạn chỉ cần tải chúng vào Power Query, liên kết các bảng của mình và làm mới truy vấn bất kỳ lúc nào bạn cần. Cần cạo dữ liệu từ một trang web?

Ngoài ra – họ muốn kết nối người dùng với Power Query và bắt đầu chuyển họ sang các công cụ thích hợp cho các trường hợp sử dụng của họ – như Power BI. Nếu bạn đã học Power Query, thì sẽ không có nhiều thời gian học tập để dùng thử Power BI, vì Power BI được tích hợp sẵn Power Query để nhập dữ liệu. Tương tự, ngay cả Azure, giải pháp đám mây của Microsoft, cũng có Power Query làm công cụ nhập dữ liệu khả dụng cho Data Factory và một số dịch vụ khác. Họ biết rằng việc thu hút người dùng quen thuộc với Power Query đến với các giải pháp khác của họ sẽ dễ dàng hơn

kết luận

Tôi nghĩ rằng Microsoft đã đưa ra một quyết định đúng đắn khi duy trì VBA cho các thế hệ người dùng Excel trong tương lai. Có nhiều giải pháp kế thừa chạy trên VBA và mặc dù ngôn ngữ này chưa phát triển nhưng nó vẫn phù hợp với mục đích cho các tác vụ tự động hóa nhỏ

Office Scripts vẫn còn trong giai đoạn sơ khai. Tuy nhiên, Microsoft có tầm nhìn tốt về cách khuyến khích người dùng chuyển sang Office 365 và bắt đầu học Office Scripts. Các công ty muốn tự động hóa các giải pháp Excel của họ dễ dàng hơn sẽ muốn chuyển sang một nền tảng dễ tích hợp hơn với các giải pháp Tự động hóa thông minh (như Power Automate). Theo thời gian, Office Script sẽ an toàn hơn, dễ chia sẻ và chạy hơn VBA Macros. Quá trình chuyển đổi sẽ vẫn mất nhiều thời gian do không có cách nào dễ dàng để bắt đầu phát triển các tác vụ tự động hóa TypeScript trên phiên bản Excel dành cho máy tính để bàn

Tôi nên học VBA hay JavaScript?

JavaScript là một ngôn ngữ tuyệt vời để học vì tất cả những gì bạn cần là một trình soạn thảo và một trình duyệt web. VBA là ngôn ngữ của Excel để tạo macro. Là một ngôn ngữ kịch bản trong Office, JavaScript có nhiều khả năng hơn - vì Microsoft dường như đã bắt đầu đưa nó vào Office.

Tôi có thể sử dụng JavaScript để tự động hóa Excel không?

Bạn có thể sử dụng bất kỳ ngôn ngữ tập lệnh nào như JavaScript từ Internet Explorer để tự động hóa Excel (ngoài quy trình), nhưng hầu hết các trình duyệt web (nơi có thể chạy mã tập lệnh của bạn) .

VBA có còn phù hợp với năm 2022 không?

– Có, chắc chắn rồi. VBA chắc chắn không phải là ngôn ngữ lập trình hiện đại nhất, nhưng do sự phổ biến rộng rãi của Microsoft Office nó vẫn là một ngôn ngữ rất phù hợp trong năm 2022 .

JavaScript có nhanh hơn VBA không?

Tác vụ này chậm hơn nhiều so với VBA . JavaScript mất khoảng 290 mili giây để đọc 100000 hàng và 2 cột, nhưng VBA chỉ mất khoảng 16 mili giây. Hãy bỏ qua điều đó và chỉ tập trung vào mức độ hiệu quả của JavaScript trong việc xử lý các mảng.

Chủ đề