Pytanie VBA VS. VSTO jaka jest różnica, czy powinienem uaktualnić?


Jestem wielkim fanem zasady KISS (Keep it simple) i długiego czasu VBA dla użytkowników Excela. Jednak wszystkie artykuły, które mogę znaleźć na VBA kontra VSTO (Visual Studio Tools for Office) wydają się bardzo skomplikowane.

Po pierwsze, mam dość bardzo słabego IDE wbudowanego w Excela i szukam nowego. VSTO używający Visual Studio jako IDE wydaje się być jedyną alternatywą.

Więc staram się zrozumieć, jaka jest różnica między VBA i VSTO, aby wiedzieć, czy warto się uczyć używania VSTO?


19
2018-05-27 09:24


pochodzenie


@David, wydaje mi się to bliskie, ale uważam, że nie można nazwać tego duplikatem - chollida
To nie jest duplikat: porównanie VB6 z VBA nie ma nic wspólnego z porównywaniem VSTO / VB.NET z VBA. - Charles Williams
Zdecydowanie nie duplikat! - StuartQ


Odpowiedzi:


Który zestaw narzędzi jest w dużej mierze kwestią osobistych preferencji, ale oto kilka rzeczy do rozważenia:
1. Wydajność: W przypadku większości zadań związanych z programem Excel VSTO działa bardzo wolno w porównaniu do VBA z powodu dodatkowej warstwy Interop.
2. UDF: VSTO nie obsługuje UDF
3. Model obiektowy: Trudniej jest pracować z modelem obiektowym Excela z VSTO niż z VBA, ponieważ nie ma rejestratora Macro .NET, który daje wskazówki.
4. IDE: Z VSTO uzyskujesz dostęp do najnowszego IDE Visual Studio (zakładając, że masz licencję Visual Studio)
5. .Net Framework: VSTO zapewnia dostęp do bardzo bogatego i wydajnego środowiska .NET
6. Krzywa uczenia się: VB.NET jest innym językiem niż VBA, a różnice w architekturze .NET i modelu obiektów oznaczają, że przejście nie jest tak proste, jak mogłoby być.
7. Jeśli chcesz wejść na stronę studia visual / .NET, polecam raczej Addin Express lub XLDNA niż VSTO: oba mają mniejsze ograniczenia niż VSTO


14
2018-05-28 10:55





VBA w Excelu daje ci przewagę szybkich rezultatów między edytowaniem kodu a uruchomieniem kodu. Ponieważ jesteś dobrym programistą VBA, możesz żyć bez super funkcji od Visual Studio (intellisense, try-catch-fanally, dziedziczy, każdy obiekt .NET, multi-threading ...)

VSTO jest sposobem pracy w bardzo dobrym IDE (Visual Studio), ale obawiam się, że zmarnujesz dużo czasu przełączając się między VB.NET i twoim Excelem. Nie jest tak bezpośredni jak twój VBA w twoim Excelu.

jeśli głównym celem programowania jest pozostawanie w pliku Excel, pozostań przy VBA. Jeśli naprawdę potrzebujesz grać poza swoim plikiem Excel lub jeśli chcesz zrobić coś, co nie jest konieczne, zależy od plików Excel, może powinieneś rozważyć VSTO. Poza tym VSTO jest całkiem nowy i dokumentacja może nie być genialna.

Zostałbym z VBA, gdybym był tobą. TO JEST MOJA PYCHA OPINIA. Napisałem trochę porównania między VBA i VB.NET (VSTO): Oto jest Różnica między VB.NET i VBA!


10
2018-06-04 00:05