Tôi có thể sử dụng javascript thay vì vba không?

VBA là ngôn ngữ lập trình được hàng triệu người trên thế giới sử dụng để tự động hóa các tác vụ trong các sản phẩm Microsoft Office. Đó là một ngôn ngữ đã tồn tại hàng thập kỷ và là một trong những ngôn ngữ mã hóa dễ học nhất nếu bạn không có nền tảng về khoa học máy tính. Với sự phổ biến vô tận của nó trong các chương trình như Excel, có thể ngạc nhiên khi có nỗi lo sợ kéo dài rằng VBA sẽ bị xóa khỏi Microsoft Office trong tương lai gần. Tôi liên tục thấy các câu hỏi trên các diễn đàn là “có đáng để học VBA vào thời điểm này không?”

Đừng hiểu sai ý tôi, đây đều là những câu hỏi hợp lệ; . Nhưng vẫn còn hy vọng và thông qua bài viết này, tôi sẽ trình bày những suy nghĩ và dự đoán của mình về cái gọi là “cái chết tất yếu” của ngôn ngữ lập trình VBA

Tại sao nên học VBA ngay hôm nay?

Nói một cách đơn giản, đó là thứ mà hầu như ai cũng có thể tự học mà không cần nỗ lực nhiều.

Bây giờ trước khi tôi đi quá xa, hãy lùi lại và nói về tôi trong một phút. Tôi, Chris Newman, người sáng lập TheSpreadsheetGuru, trước hết là một người làm về tài chính. Tại sao điều này quan trọng để làm rõ? . Không cần phải nói, tôi không phải là đứa trẻ tiêu biểu để viết một cách có thẩm quyền về ngôn ngữ mã hóa máy tính

Nhưng tôi. Làm sao? . Không có cú pháp kỳ lạ như dấu ngoặc nhọn hoặc cụm từ phức tạp để ghi nhớ, bạn chỉ cần viết những gì bạn muốn làm và thế là xong

Nhưng vẻ đẹp thực sự của VBA và tính dễ học của nó là sự sẵn có của Trình ghi Macro. Tính năng này cho phép bạn nhấp vào nút ghi và nó sẽ viết mã cho mọi thứ bạn thực hiện trên màn hình của mình. Mặc dù đây có thể không phải là cách hiệu quả nhất để viết mã, nhưng nó viết theo cách mà trong hầu hết các trường hợp sẽ tự động hóa quy trình của bạn mà không cần sửa đổi gì thêm. Dạy bản thân cách tự động hóa các tác vụ cụ thể có thể dễ dàng như sử dụng máy ghi âm và sao chép mã mà nó tạo ra

Hãy quay lại câu hỏi ở tiêu đề, "Tại sao nên học VBA ngay hôm nay?"

Bạn CÓ THỂ LÀM BẤT CỨ ĐIỀU GÌ

Bạn đã bao giờ ước mình có thể xây dựng ứng dụng điện thoại hoặc trang web của riêng mình hoặc thậm chí là robot để dọn dẹp nhà cửa chưa? . Tôi nhớ lại khi tôi còn là một thanh niên 22 tuổi đầy tham vọng, mới ra trường và sẵn sàng chinh phục thế giới. Các ứng dụng dành cho điện thoại thông minh còn sơ khai và tôi có một hoặc hai ý tưởng sẽ biến mình thành triệu phú. Thật may mắn cho tôi, Apple đã có một lượng lớn người theo dõi và rất nhiều nội dung giáo dục để giúp những người mới như tôi học cách tạo ứng dụng. Để truyện ngắn còn ngắn hơn nữa, sau một tháng cố gắng hết sức, tôi chẳng đi đến đâu. Đơn giản là có quá nhiều thứ để học và ngay cả những khái niệm viết mã cơ bản cũng không có ý nghĩa gì đối với tôi. Thật buồn khi tôi phải loay hoay tạo ứng dụng triệu đô từ danh sách “Việc cần làm” của mình

Nhanh chóng chuyển tiếp một năm và tôi bắt đầu đi sâu vào VBA. Chỉ với một vài dòng mã, tôi đang thao tác hàng nghìn dòng dữ liệu trong vài giây. Tôi bắt đầu thích thú và tạo giao diện với các nút và thanh trượt. Tôi tìm ra cách lấy dữ liệu từ internet. Cuối cùng tôi nhận ra rằng tôi có thể dễ dàng tìm ra cách làm hầu như mọi thứ tôi muốn với VBA và Excel và cả thế giới của tôi đã thay đổi

Tôi cho rằng nhiều người trong số các bạn lập trình viên VBA cũng có một câu chuyện tương tự khi những khả năng bạn khám phá được thông qua VBA đã biến những giấc mơ điên rồ nhất của bạn thành hiện thực. Tôi đã thấy rất nhiều giải pháp sáng tạo sử dụng mã VBA. Có những ví dụ về việc sử dụng VBA để xây dựng trò chơi với AI của đối thủ, biểu đồ động và giao diện quản lý doanh nghiệp. Bạn thực sự có thể làm những điều tuyệt vời với ngôn ngữ đơn giản này

Trạng thái chuyên gia

Học cách sử dụng VBA là một cách nhanh chóng để bạn khác biệt với hàng triệu người dùng Excel khác trên khắp thế giới. Người dùng Excel ngay lập tức liên kết những người sử dụng VBA với tư cách là người dùng nâng cao và sẽ tìm đến họ để được trợ giúp. Rất có thể, nếu bạn có thể tự học VBA, bạn sẽ khá giỏi trong việc tìm kiếm trợ giúp về Excel và nhiều khả năng bạn có thể cung cấp giải pháp cho người khác một cách nhanh chóng ngay cả khi bạn không biết giải pháp đó (cảm ơn bạn . )

Hàng tấn tài liệu và trợ giúp

VBA là một ngôn ngữ đã có từ lâu và vì điều này, có rất nhiều tài liệu và trợ giúp sẵn có cho chúng ta. Tôi vẫn ngạc nhiên về thời gian phản hồi trong các diễn đàn Excel như Mr. Excel nơi bạn thực sự có thể nhận trợ giúp/giải pháp được cung cấp cho bạn trong vòng vài phút (vâng, tôi đã nói vài phút) sau khi đăng một câu hỏi được viết tốt. Trợ giúp diễn đàn là một nguồn giáo dục chính đối với tôi khi tôi tự học VBA hoặc khám phá các ý tưởng về cách xử lý tự động hóa mà tôi muốn triển khai. Cộng đồng Excel VBA hoàn toàn là một trong những cộng đồng trực tuyến hào phóng và nhạy bén nhất hiện có và chính vì điều này mà mọi người có thể tận dụng ngôn ngữ này hàng ngày

Vì vậy, bây giờ chúng ta đã biết tại sao người dùng Excel có lý do để tìm hiểu và sử dụng VBA, suy nghĩ hiện tại của Microsoft về ngôn ngữ này là gì?

Tôi có thể sử dụng javascript thay vì vba không?

Tại sao Microsoft ghét VBA?

Hãy bắt đầu bằng cách giải tỏa không khí…Microsoft không ghét VBA, chỉ là nó không hấp dẫn như trước đây. Trên thực tế, nhiều nhà phát triển Excel mà tôi đã nói chuyện yêu thích VBA và sử dụng nó khá thường xuyên. Nhưng dường như có một phong trào chung bên trong Microsoft là không động đến bất kỳ VBA nào trừ khi (1) nó làm hỏng Excel hoặc (2) một khách hàng LỚN gặp sự cố cụ thể với một thứ đã từng hoạt động và giờ thì không

Tất cả các đề xuất về khả năng mới, hiệu quả và chức năng hiện đại hơn dường như đã bị bỏ qua với hy vọng rằng chúng tôi, những người dùng sẽ cảm thấy mệt mỏi khi hỏi. Khoảng thời gian im lặng này trong 10 năm lẻ vừa qua đã khiến người dùng Excel bối rối không biết liệu ngôn ngữ VBA có còn được hỗ trợ nữa hay không

Các nhà phát triển của Microsoft đã nói với tôi nhiều lần rằng chính sách hiện tại của họ là chỉ duy trì mô hình đối tượng của VBA khi các đối tượng mới được tạo để những người dùng muốn tự động tạo một số biểu đồ mới được triển khai như biểu đồ Thác nước có thể làm như vậy. Chỉ có một vấn đề LỚN. Mặc dù các nhà phát triển đang cấp cho người dùng của chúng tôi quyền truy cập vào các đối tượng mới (nghĩ về hình dạng, biểu đồ, bảng, ô, v.v.), nhưng họ không đảm bảo tất cả các thuộc tính hoạt động bình thường hoặc trong một số trường hợp không hoạt động

Hãy quay lại với các biểu đồ Thác nước mới sáng bóng mà Microsoft đã phát hành cho Excel vài năm trước. Tôi đã làm việc trong một dự án tư vấn nơi tôi đang xây dựng một phần bổ trợ Excel sẽ tự động tạo và định dạng nhiều loại biểu đồ khác nhau. Ví dụ: khách hàng muốn có một biểu đồ thanh với các định dạng phông chữ và tô màu nhất định. Tôi đã sử dụng trình ghi macro, tạo lại biểu đồ trong Excel theo thông số kỹ thuật mong muốn của chúng và tôi đã chuẩn bị sẵn sàng cho một macro sạch đẹp để tự động tạo biểu đồ

Bây giờ là lúc cho Biểu đồ thác nước. Tôi bật trình ghi macro, xây dựng Thác nước theo thông số kỹ thuật chính xác và đoán xem nội dung nào hiển thị trong Trình chỉnh sửa Visual Basic của tôi? . ), nhưng sau đó nó chỉ ghi lại tất cả các lựa chọn của tôi. Hoàn toàn không có định dạng nào liên quan đến mã

Tốt…. bất kỳ người đam mê VBA có kinh nghiệm nào cũng biết một số thứ không được chọn bằng máy ghi âm, vì vậy tôi sử dụng kiến ​​thức VBA tổng thể của mình để bắt đầu ghi lại các định dạng từ đầu. Tôi hoàn thành, chạy trình biên dịch của mình để kiểm tra mọi thứ theo thứ tự và kiểm tra OK. Tuyệt quá. Bây giờ đến giai đoạn thử nghiệm quan trọng nhất. Tôi chạy mã tạo thác nước tuyệt đẹp của mình và biểu đồ của tôi trông không ổn. Tôi nhận thấy màu chữ không thay đổi. Tiêu đề Trục không được điều khiển theo cách tôi muốn. Đường viền biểu đồ vẫn hiển thị. Trước sự bối rối của tôi, tôi đã phải nói với khách hàng rằng một số yêu cầu định dạng của họ đối với biểu đồ thác nước vẫn cần được thực hiện thủ công vì đơn giản là điều đó là không thể (họ thích câu trả lời đó…. )

Vâng, đó là một câu chuyện dài (và đau đớn khi hồi tưởng lại), nhưng tôi thấy trước nhiều ví dụ giống như câu chuyện tôi đã mô tả sẽ xảy ra trong tương lai khi Microsoft tiếp tục tung ra ngày càng nhiều tính năng mới. Thật đáng tiếc vì với sự kết hợp của VBA và Excel, bạn tạo ra các chức năng thực sự tuyệt vời và với những gì Excel có trong hệ thống của nó, sẽ rất khó khăn khi nghĩ rằng thật dễ dàng để tự động hóa một thứ gì đó và hai giờ sau nhận ra rằng chức năng đó đơn giản là không thể thực hiện được

Vì vậy, nếu Microsoft có kế hoạch chỉ duy trì VBA ở mức tối thiểu, thì họ đang đặt tất cả trứng vào giỏ nào?

Tôi có thể sử dụng javascript thay vì vba không?

Điều gì sẽ thay thế VBA?

Câu trả lời ngắn. JavaScript

JavaScript là ngôn ngữ mà Microsoft đã đầu tư rất nhiều khi hãng chuyển sang hợp nhất Office trên tất cả các thiết bị (PC, Mac, Trình duyệt & Di động). Mặc dù có sự phản đối mạnh mẽ từ hầu hết các MVP của Excel, nhưng trong bốn năm qua, Microsoft đã thu thập ý kiến ​​và mối quan tâm của cộng đồng chuyên gia về việc thúc đẩy toàn diện JavaScript để tự động hóa Excel

Vậy tại sao Microsoft lại chọn JavaScript làm đứa con vàng của họ thay vì VBA và bất kỳ ngôn ngữ nào khác ngoài đó?

Đầu tiên, JavaScript có thể hoạt động trên hầu hết mọi thiết bị đang chạy Ứng dụng Office. Hiện tại, không có cách nào để chạy VBA trên Excel mobile hoặc Excel Online. Và nếu bạn đã từng thử tạo mã VBA tương thích với cả PC và Mac, thì bạn sẽ biết điều đó khó khăn đến mức nào. Với JavaScript, về mặt lý thuyết, bạn có thể viết một tập lệnh duy nhất hoạt động trên mọi thiết bị, đây là mục tiêu cho tất cả các Ứng dụng Office

Một lý do khác là JavaScript cực kỳ nhanh trong việc lấy dữ liệu từ các nguồn bên ngoài. Với ngày càng nhiều công ty tìm kiếm sự tích hợp liền mạch từ nhiều nguồn dữ liệu, việc Excel được tích hợp với JavaScript là một phần thưởng nhất định

Cũng cần lưu ý rằng Google Suite (G Suite) đã sử dụng JavaScript làm ngôn ngữ kịch bản trong một thời gian khá dài. Tôi không chắc điều đó ảnh hưởng đến quyết định của Microsoft như thế nào nhưng thật thú vị khi chỉ ra

Thật không may (đối với Microsoft), kế hoạch thay thế JavaScript đang diễn ra rất chậm. API vẫn không thể thay thế hoàn toàn tất cả các chức năng mà VBA hiện cung cấp cho chúng tôi và việc cộng đồng Excel chấp nhận chậm đến mức không tồn tại

Tôi có thể sử dụng javascript thay vì vba không?

Khi nào VBA sẽ chết?

OK, đây là phần mà tất cả các bạn đã chờ đợi. Khi nào VBA sẽ biến mất?

Làm sao tôi có thể tự tin rằng nó sẽ không biến mất sớm?

  1. Quá nhiều công ty dựa vào VBA để tự động hóa quy trình

  2. Quá nhiều người dùng Excel đã đầu tư thời gian vào việc học VBA để bỏ nó và học một cái gì đó hoàn toàn khác

Hãy nói về các khoản đầu tư của công ty. Nhiều công ty lớn và nhỏ phụ thuộc rất nhiều vào VBA để tự động hóa các tác vụ. Cá nhân tôi làm việc với các công ty trong suốt cả năm triển khai các giải pháp VBA để tự động hóa các tác vụ, đầu tư khá lớn vào việc triển khai VBA. Đây có thể là bất cứ điều gì, từ dọn dẹp dữ liệu đến tùy chỉnh bảo vệ mô hình, đến thúc đẩy một phần bổ trợ dành riêng cho công ty. Chỉ đơn giản là có quá nhiều tiền/thời gian đầu tư vào tự động hóa VBA trên toàn thế giới để Microsoft có thể loại bỏ hoàn toàn nó

Bây giờ hãy nói về cơ sở người dùng VBA. Như tôi đã đề cập trước đó trong bài viết này, hầu hết những người viết mã VBA không phải là chuyên gia viết mã. Phần lớn người dùng VBA là các chuyên gia Tài chính, Nhân sự, Tiếp thị hoặc Quản lý Dự án. Đây là những chuyên gia có thể tự dạy mình cách viết và triển khai các tập lệnh tự động hóa để giúp cuộc sống của họ dễ dàng hơn. Những người này không phải là lập trình viên toàn thời gian, những người đã quen (hoặc tôi dám nói là thích) học ngôn ngữ mới mọi lúc

Phần lớn các lập trình viên VBA có thể tự học vì ngôn ngữ đó có ý nghĩa với họ và sẽ không có nhiều động lực để học một ngôn ngữ hoàn toàn mới trong thời gian rảnh rỗi, đặc biệt là hiện tại có rất ít thông tin/hướng dẫn dành cho họ. Do đó, dân số này (phần lớn) người dùng VBA có nhiều khả năng sẽ ở trong giới hạn của những gì họ biết trong suốt sự nghiệp của họ

Vì những lý do đó, tôi tin rằng thế hệ người dùng Excel tiếp theo chưa từng tiếp xúc với VBA sẽ thúc đẩy việc sử dụng JavaScript vào lực lượng lao động. Những đứa trẻ này vẫn đang học trung học và sẽ không sớm đi làm. Vào thời điểm họ kiếm được việc làm, sẽ có lợi hơn cho họ khi theo đuổi việc học JavaScript trong Excel so với VBA. Nhiều khả năng họ sẽ tiếp thu JavaScript dễ dàng hơn vì rất có thể, họ đã tham gia một lớp viết mã máy tính ở trường Trung học hoặc Đại học với tư cách là “Gen Ed”

Điểm mấu chốt

Đối với những người bạn không có thời gian để thưởng thức những câu nói dài dòng của tôi, đây là ý chính của những suy nghĩ của tôi về tương lai của VBA

  1. VBA sẽ là giải pháp tự động hóa được sử dụng rộng rãi trong ít nhất 10-15 năm tới

  2. VBA sẽ không bao giờ biến mất hoàn toàn vì có quá nhiều công ty đã đầu tư vào nó

  3. Microsoft sẽ tiếp tục đẩy mạnh các API JavaScript dưới dạng thay thế VBA mới trên tất cả các nền tảng của mình (PC, Mac, Máy tính bảng, Trình duyệt)

  4. VBA vẫn là thứ nên học và có thể dễ dàng phân biệt bạn với những người dùng Excel khác

Vì vậy, đừng vội từ bỏ VBA. Tôi biết tôi sẽ không còn sớm nữa. )

Bạn nghĩ sao?

Tôi rất thích nghe suy nghĩ của bạn về chủ đề này. Có thể bạn đã từng sử dụng JavaScript và có thể làm sáng tỏ thêm về những ưu điểm/nhược điểm của nó. Bạn có đồng ý với suy nghĩ của tôi về tuổi thọ còn lại của VBA không? . Tôi mong được đọc và tương tác với những suy nghĩ của bạn


Tôi có thể sử dụng javascript thay vì vba không?
Tôi có thể sử dụng javascript thay vì vba không?

Thông tin về các Tác giả

chào bạn. Tôi là Chris và tôi điều hành trang web TheSpreadsheetGuru trong thời gian rảnh rỗi. Ban ngày, tôi thực sự là một chuyên gia tài chính phụ thuộc khá nhiều vào Microsoft Excel trong thế giới doanh nghiệp. Tôi thích lấy những điều tôi học được trong “thế giới thực” và chia sẻ chúng với mọi người ở đây trên trang web này để bạn cũng có thể trở thành chuyên gia bảng tính tại công ty của mình

Qua nhiều năm làm việc trong thế giới doanh nghiệp, tôi đã có thể nắm bắt các cơ hội để làm việc với Excel tốt hơn và đã xây dựng nhiều phần bổ trợ Excel khác nhau, từ việc chèn ký hiệu dấu tích đến tự động sao chép/dán từ Excel sang PowerPoint. Nếu bạn muốn cập nhật những tin tức mới nhất về Excel và trực tiếp nhận được các mẹo Excel có ý nghĩa nhất mà tôi đã học được qua email trong nhiều năm, bạn có thể đăng ký nhận bản tin miễn phí của tôi. Tôi hy vọng tôi có thể cung cấp cho bạn một số giá trị ngày hôm nay và tôi hy vọng sẽ sớm gặp lại bạn ở đây

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) .

Điều gì sẽ thay thế Excel VBA?

Điều gì sẽ thay thế VBA? . JavaScript . JavaScript là ngôn ngữ mà Microsoft đã đầu tư rất nhiều khi hãng chuyển sang hợp nhất Office trên tất cả các thiết bị (PC, Mac, Trình duyệt & Di động).

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 .

VBA sẽ bị xóa?

Microsoft cho biết rằng họ không có kế hoạch xóa VBA khỏi phiên bản Office dành cho Windows .