2009-07-10 35 views
12

Với phiên bản MS-Office 2007 mới, Microsoft bắt đầu "đe dọa" VBA với VSTA. Vì VBA được sử dụng khá phổ biến, bạn tin gì về tương lai của nó là phát triển kịch bản trong 3-5 năm tới?Tương lai của VBA là gì?

Hoặc, nó có bị giết bất ngờ, như VB6 không?

Autodesk cũng dropped it (loại) khi nghe tin tức từ MS.

+1

Tại sao mọi người lại muốn VBA? –

+7

VBA vẫn là cách duy nhất có ý nghĩa để lập trình MSACCESS. –

+0

@ John: Thật buồn cười.Không ai muốn VSTA cho vấn đề đó. VBA đến từ microsoft được sử dụng hiệu quả. Những người không phát triển cũng có thể sử dụng nó một cách dễ dàng. Tại sao mọi người yêu cầu VSTA, khi nó sử dụng COM interop vào cuối ngày? – shahkalpesh

Trả lời

2

Ngôn ngữ đã thay đổi & cách thức thực hiện (ví dụ: kéo/thả biểu mẫu, tạo macro, sửa đổi một vài dòng & bạn đã hoàn thành) cũng sẽ thay đổi.

Nó sẽ không còn là công cụ mà người không phải nhà phát triển sẽ thấy dễ sử dụng.

mô hình đối tượng nên vẫn giống nhau cho các công cụ cơ bản (Workbook, Worksheet, Range) vv
Tập hợp mới của sự vật sẽ được thêm vào & đó sẽ thay đổi mô hình đối tượng & học tập vì thế mới (ví dụ như giao diện Ribbon)

Đừng quên, .net mang đến những khái niệm/sự phức tạp của riêng nó.

+1

Vâng, tôi đồng ý. Tại sao nó luôn luôn là khi bạn tìm thấy một khái niệm mà các nhà phát triển không tìm thấy dễ sử dụng, sau đó bạn mong muốn thay đổi nó. VB6 và VBA là những thứ có năng suất cao vì lý do đó (một số khác nữa, nhưng điều này là quan trọng). – Rook

6

Tôi muốn đề xuất rằng VB6 không bị giết bất ngờ. Hỗ trợ MS chính thức, có lẽ, nhưng cộng đồng vẫn còn sống cho cả VB6VBA ở đây trên SO.

Cũng như với bất kỳ công nghệ nào có người dùng WIDE/khách hàng/nhà cung cấp bên thứ 3, sẽ mất một thời gian dài để VBA làm công nghệ viết mã mờ đi. Tôi sẽ tưởng tượng rằng sẽ mất nhiều năm để người kế nhiệm của nó vượt qua VBA.

+0

Có, nhưng với hệ điều hành mới đến chậm, nó sẽ cho giết cuối cùng. Tôi không biết bất cứ ai thành công sáp nhập công cụ VB6 của họ để Vista từ XP, và có nó chạy khá tốt, mà không cần suy nghĩ của chỉ cần chuyển sang. NET và viết lại toàn bộ điều. – Rook

+0

Người thông minh. Chạy trễ một chút, nhưng thông minh. –

+0

Tôi hy vọng bạn không có nghĩa là tôi là một thằng ngốc;) – shahkalpesh

3

Nó sẽ chết, IMO, nhưng không đột ngột. Excel đã từng có một ngôn ngữ macro gọi là XLM - về cơ bản là một phát lại bàn phím trên các steroid. XLM vẫn được hỗ trợ, và có thể dễ dàng một tá người sử dụng nó. Đó là lý do tại sao tôi nghĩ rằng VBA sẽ được khoảng một thời gian khá. Nó sẽ không được cập nhật, hỗ trợ, và thậm chí có thể không được thừa nhận, nhưng nó sẽ có sẵn.

Sớm hay muộn MS sẽ tích hợp .NET với các ứng dụng Office và ít người hơn sẽ quan tâm đến VBA. Ngay bây giờ, tôi có thể đặt một số VBA trong một bảng tính Excel, gửi nó cho một khách hàng, và triển khai được thực hiện. Tôi có thể nói với bộ phận CNTT rằng đó là một bảng tính Excel với các macro, và họ không cảm thấy bị đe dọa bởi vì họ không biết gì tốt hơn. Khi .NET có các tùy chọn triển khai đơn giản, tôi sẽ sử dụng nó thay thế. Ngày đó sẽ đến và VBA sẽ từ từ bắt đầu mờ đi.

+1

Vâng, bạn nói đúng. Nhưng .xlm, bây giờ là một chút lỗi thời, là một, làm thế nào để đặt nó, địa phương để Excel. VBA, ít nhất là trong trường hợp của tôi, được lan truyền thông qua một số ứng dụng và chúng tôi sử dụng nó rất nhiều để kết nối các ứng dụng đó (ví dụ, các bảng và tọa độ từ excel đến autocad). Đó là một khía cạnh khác của thay đổi đó - ngay cả khi bạn thay đổi nó (MS), tất cả các nhà cung cấp khác vẫn phải thực hiện thay đổi. – Rook

6

Đồng ý với Dick Kusleika về việc triển khai

Những vấn đề với ti VBA là:

  1. Dễ triển khai
  2. Visual Studio - một IDE để học
  3. Đối với các cơ sở lớn làm việc, các ứng dụng VBA quan trọng trong kinh doanh, nơi không có gì sẽ được thêm bởi .NET, tại sao một người muốn dành thời gian và nỗ lực di chuyển?
  4. Với VBA, không phải nhà phát triển có thể gõ lên các ứng dụng hữu ích nhanh chóng trong Excel/Word, vv Bạn không thể làm điều này với .NET/VSTO.
+0

Tất cả các điểm đều đập vào mục tiêu. Đó là năm 2018 và tôi đang mã hóa trên VBA. – RBT

Các vấn đề liên quan