Jaka jest różnica między nimi. Zawsze myślałem, że VBA jest nieco „kaleką” wersją VB, ale kiedy przyjaciel zapytał mnie innego dnia, nie miałem pojęcia, jakie są rzeczywiste różnice.
Ponadto, gdy używasz na przykład Excela, czy to VB czy VBA?
Dla prawie wszystkich celów programowania VBA i VB 6.0 są tym samym.
VBA nie może skompilować twojego programu do wykonywalnego pliku binarnego. Zawsze będziesz potrzebować hosta (na przykład pliku Word i MS Word), aby zatrzymać i wykonać swój projekt. Nie będziesz także mógł tworzyć bibliotek DLL COM z VBA.
Poza tym istnieje różnica w IDE - IDE VB 6.0 jest silniejsze w porównaniu. Z drugiej strony masz ścisłą integrację aplikacji hosta z VBA. Obiekty globalne dla aplikacji (takie jak „ActiveDocument”) i zdarzenia są dostępne bez deklaracji, więc programowanie specyficzne dla aplikacji jest proste.
Mimo to nic nie powstrzymuje cię przed uruchomieniem programu Word, załadowaniem VBA IDE i rozwiązaniem problemu, który nie ma żadnego związku z programem Word. Nie jestem pewien, czy jest coś, co VB 6.0 może zrobić (technicznie), a VBA nie. Szukam jednak arkusza porównawczego na MSDN.
VBA oznacza Visual Basic for Applications, podobnie jak mały brat VB zajmujący się skryptami „dla aplikacji”. VBA jest rzeczywiście dostępny w Excelu, ale także w innych aplikacjach biurowych.
Za pomocą VB można utworzyć samodzielną aplikację systemu Windows, co nie jest możliwe w przypadku VBA.
Programiści mogą jednak „osadzić” VBA we własnych aplikacjach, jako języku skryptowym do automatyzacji tych aplikacji.
Edycja : z FAQ VBA :
Zauważ, że VB.NET jest nawet innym językiem, który dzieli składnię tylko z VB.
źródło
Oto bardziej techniczna i dokładna odpowiedź na stare pytanie: Visual Basic for Applications (VBA) i Visual Basic (pre-.NET) to nie tylko podobne języki, to ten sam język. Konkretnie:
W starej książce VB, którą natknąłem się w zeszłym roku, autor (Paul Lomax) nawet twierdził, że „VBA” zawsze była nazwą samego języka, niezależnie od tego, czy jest używany w samodzielnych aplikacjach, czy w kontekstach osadzonych (takich jak MS Office ):
Drobne różnice
Hostowany vs. samodzielny : w praktyce, gdy większość ludzi mówi „VBA”, to znaczy „VBA, gdy jest używany w MS Office”, a „VB6” oznacza „VBA używany w ostatniej wersji autonomicznego VBA” kompilator (tj. Visual Studio 6) ”. IDE i kompilator w pakiecie z MS Office są prawie identyczne jak Visual Studio 6, z tym ograniczeniem, że nie pozwala kompilacji na samodzielne pliki dll lub exe. To z kolei oznacza, że klasy zdefiniowane we wbudowanych projektach VBA nie są dostępne dla niewbudowanych konsumentów COM, ponieważ nie można ich zarejestrować.
Dalszy rozwój : Microsoft przestał produkować samodzielny kompilator VBA z Visual Studio 6, ponieważ przeszedł na środowisko uruchomieniowe .NET jako platformę z wyboru. Jednak zespół MS Office nadal utrzymuje VBA, a nawet wydał nową wersję (VBA7) z nową maszyną wirtualną (teraz o nazwie VBA7.dll), zaczynając od MS Office 2010. Jedyna główna różnica polega na tym, że VBA7 ma 32- oraz wersja 64-bitowa i ma kilka ulepszeń do obsługi różnic między nimi, szczególnie w odniesieniu do zewnętrznych wywołań API.
źródło
Czy chcesz porównać VBA z VB-Classic (VB6 ..) czy VB.NET?
VBA (Visual Basic for Applications) jest klasycznym językiem skryptowym opartym na vb wbudowanym w aplikacje Microsoft Office. Myślę, że jego funkcje językowe są podobne do VB5 (brakuje mu tylko kilku wbudowanych funkcji), ale:
Masz dostęp do dokumentu biurowego, dla którego napisałeś skrypt VBA, dzięki czemu możesz np
Przykład: Ustaw wartość komórki programu Excel
VBC i -.NET nie są językami skryptowymi. Używasz ich do pisania samodzielnych aplikacji z oddzielnymi IDE, których nie możesz zrobić z VBA (skrypty VBA po prostu „istnieją” w pakiecie Office)
VBA nie ma nic wspólnego z VB.NET (po prostu mają podobną składnię).
źródło
W rzeczywistości VBA można wykorzystać do kompilacji bibliotek DLL. Edycje dla deweloperów pakietu Office 2000 i Office XP zawierały edytor VBA, którego można używać do tworzenia bibliotek DLL do wykorzystania jako dodatki COM.
Ta funkcja została usunięta w późniejszych wersjach (2003 i 2007) wraz z pojawieniem się oprogramowania VSTO (VS Tools for Office), chociaż oczywiście nadal można tworzyć dodatki COM w podobny sposób bez użycia VSTO (lub VS.Net) przez za pomocą VB6 IDE.
źródło
To jest VBA. VBA oznacza Visual Basic for Applications i jest używany do makr w dokumentach Office. Nie ma dostępu do funkcji VB.NET, więc przypomina bardziej zmodyfikowaną wersję VB6 z dodatkami umożliwiającymi pracę z dokumentem (np. Arkusz roboczy w VBA dla programu Excel).
źródło
VB nie jest językiem . VB to program obsługujący VBA, podobnie jak VBA pakietu Office. VB to zestaw obiektów aplikacji, podobnie jak Word i Excel, oraz pakiet formularzy, podobnie jak w pakiecie Office.
Możesz więc pisać tylko kod VBA w VB.
PS ta informacja znajduje się w zakładce INFO na stronie pytań VB dla VB.
Z informacji VBA
źródło
VBA oznacza Visual Basic For Applications i jego implementację Visual Basic przeznaczoną do użycia w pakiecie Office.
Różnica między nimi polega na tym, że VBA jest osadzony w dokumentach pakietu Office (jest to funkcja pakietu Office). VB to ide / język do tworzenia aplikacji.
źródło
VB (Visual Basic tylko do 6.0) jest nadzbiorem VBA (Visual Basic for Applications). Wiem, że inni wymknęli się temu, ale rozumiem, że semantyka (tj. Słownictwo) VBA jest zawarta w VB6 (z wyjątkiem obiektów specyficznych dla produktów Office), dlatego VBA jest podzbiorem VB6. Składnia (tj. Kolejność zapisywania słów) jest dokładnie taka sama w VBA, jak w VB6, ale różnica polega na tym, że obiekty dostępne dla VBA lub VB6 są różne, ponieważ mają różne cele. W szczególności celem VBA jest programowa automatyzacja zadań, które można wykonać w MS Office, podczas gdy celem VB6 jest tworzenie standardowych plików EXE, formantów ActiveX, bibliotek DLL ActiveX i plików DLL ActiveX, które mogą działać samodzielnie lub w innych programach, takich jak MS Office lub Windows.
źródło