[vba] Visual Basic 6.0과 VBA의 차이점

둘의 차이점은 무엇입니까? 나는 항상 VBA가 VB의 다소 ‘파괴 된’버전이라고 생각했지만 친구가 다른 날에 물었을 때 실제 차이점이 무엇인지 전혀 몰랐습니다.

또한 예를 들어 Excel을 사용하면 VB 또는 VBA입니까?



답변

거의 모든 프로그래밍 목적으로 VBA와 VB 6.0은 동일합니다.

VBA는 프로그램을 실행 가능한 바이너리로 컴파일 할 수 없습니다. 프로젝트를 포함하고 실행하려면 항상 호스트 (예 : Word 파일 및 MS Word)가 필요합니다. VBA를 사용하여 COM DLL을 만들 수도 없습니다.

그 외에도 IDE에는 차이가 있습니다. VB 6.0 IDE는 비교할 때 더 강력합니다. 반면 VBA에서 호스트 응용 프로그램을 긴밀하게 통합했습니다. 응용 프로그램 전역 개체 (예 : “ActiveDocument”) 및 이벤트는 선언없이 사용할 수 있으므로 응용 프로그램 별 프로그래밍이 간단합니다.

그럼에도 불구하고 Word를 시작하고 VBA IDE를로드하고 Word와 관련이없는 문제를 해결하는 데 방해가되는 것은 없습니다. VB 6.0이 (기술적으로) 할 수있는 일이 있고 VBA가 할 수없는 일이 있는지 확실하지 않습니다. 그래도 MSDN에서 비교 시트를 찾고 있습니다.


답변

VBA는 Visual Basic for Applications의 약자 이며 VB의 작은 “응용 프로그램”스크립팅 형제입니다. VBA는 실제로 Excel뿐만 아니라 다른 사무실 응용 프로그램에서도 사용할 수 있습니다.

VB를 사용하면 VBA에서는 불가능한 독립 실행 형 Windows 응용 프로그램을 만들 수 있습니다.

그러나 개발자는 해당 응용 프로그램을 자동화하기위한 스크립팅 언어로 VBA를 자체 응용 프로그램에 “포함”할 수 있습니다.

편집 : VBA FAQ에서 :

Q. Visual Basic for Applications 란 무엇입니까?

A. Microsoft VBA (Visual Basic for Applications)는 개발자가 Microsoft Visual Basic의 모든 기능을 사용하여 사용자 지정 솔루션을 구축 할 수 있도록 설계된 포함 가능한 프로그래밍 환경입니다. VBA를 호스팅하는 응용 프로그램을 사용하는 개발자는 응용 프로그램 기능을 자동화하고 확장하여 사용자 지정 비즈니스 솔루션의 개발주기를 단축 할 수 있습니다.

VB.NET은 VB와의 구문 만 공유하는 다른 언어이기도합니다.


답변

다음은 이전 질문에 대한보다 기술적이고 철저한 답변입니다. VBA (Visual Basic for Applications)와 .NET 이전의 Visual Basic은 유사한 언어가 아니라 동일한 언어입니다. 구체적으로 특별히:

  • 그것들은 같은 스펙을 가지고 있습니다 : 언어에 포함 된 것과 그 의미에 대한 구현 독립적 인 설명. 여기에서 읽을 수 있습니다 : [MS-VBAL] : VBA 언어 사양
  • 그들은 동일한 플랫폼을 가지고 있습니다 . 둘 다 Microsoft P-Code로 컴파일 되며, dll msvbvm [x.0] .dll에 구현 된 것과 동일한 가상 머신에 의해 실행됩니다.

에서 내가 건너 온 오래된 VB 참조 책 ‘VBA는’항상 언어 자체의 이름이었다 지난해, 저자 (폴 맥스)도 독립 실행 형 응용 프로그램에서 또는 MS Office와 같은 임베디드 상황 (에 사용 여부, 주장 ) :

“더 나아 가기 전에 기본 요점을 명확히하겠습니다. VBA (Visual Basic for Applications)는 VB (Visual Basic)에서 프로그래밍하는 데 사용되는 언어입니다. VB 자체는 개발 환경입니다. 해당 환경의 언어 요소는 VBA입니다. “

사소한 차이

호스팅 된 독립형 및 독립형 : 실제로 대부분의 사람들이 “VBA”라고 말하면 구체적으로 “MS Office에서 사용되는 경우 VBA”를 의미하고 “VB6″은 “VBA6″이라고 말하여 독립형 VBA의 마지막 버전에 사용됩니다. 컴파일러 (예 : Visual Studio 6) “. MS Office와 함께 번들로 제공되는 IDE 및 컴파일러는 Visual Studio 6과 거의 동일하지만 독립 실행 형 dll 또는 exe 파일로 컴파일 할 수 없다는 제한이 있습니다. 이는 임베디드 VBA 프로젝트에 정의 된 클래스는 등록되지 않은 COM 소비자가 액세스 할 수 없음을 의미합니다.

지속적인 개발 : Microsoft는 선택한 플랫폼으로 .NET 런타임으로 전환하면서 Visual Studio 6을 사용하는 독립형 VBA 컴파일러의 생산을 중단했습니다. 그러나 MS Office 팀은 계속 VBA를 유지 관리하고 MS Office 2010부터 새로운 VM (현재는 VBA7.dll이라고 함)을 사용하여 새 버전 (VBA7)을 출시했습니다. VBA7의 주요 차이점은 64 비트 버전으로, 특히 외부 API 호출과 관련하여 둘 사이의 차이점을 처리하기 위해 몇 가지 기능이 향상되었습니다.


답변

VBA를 VB-Classic (VB6 ..) 또는 VB.NET과 비교 하시겠습니까?

VBA (Visual Basic for Applications)는 Microsoft Office 응용 프로그램에 포함 된 vb- 클래식 기반 스크립트 언어입니다. 언어 기능은 VB5의 언어 기능과 비슷하지만 (일부 내장 기능이 거의 없음) 생각합니다.

VBA 스크립트를 작성한 사무실 문서에 액세스 할 수 있으므로

  • 매크로 작성 (= 사무실에서 반복 작업이 거의없는 자동화 된 루틴)
  • 엑셀 셀 공식을위한 새로운 기능 정의
  • 사무실 데이터 처리

예 : 엑셀 셀의 값 설정

ActiveSheet.Cells("A1").Value = "Foo"

VBC 및 -.NET은 스크립트 언어가 아닙니다. VBA로 할 수없는 별도의 IDE로 독립 실행 형 응용 프로그램을 작성하는 데 사용합니다 (VBA- 스크립트는 Office에 “존재”)

VBA는 VB.NET과 관련이 없습니다 (유사한 구문 만 있음).


답변

실제로 VBA를 사용하여 DLL을 컴파일 할 수 있습니다. Office 2000 및 Office XP Developer 버전에는 COM 추가 기능으로 사용할 DLL을 만드는 데 사용할 수있는 VBA 편집기가 포함되어 있습니다.

이 기능은 VSTO (VS Tools for Office) 소프트웨어의 출현으로 이후 버전 (2003 및 2007)에서 제거되었지만 VSTO (또는 VS.Net)를 사용하지 않고도 비슷한 방식으로 COM 추가 기능을 만들 수 있습니다. VB6 IDE 사용.


답변

VBA입니다. VBA는 Visual Basic for Applications를 의미 하며 Office 문서의 매크로에 사용됩니다. VB.NET 기능에 액세스 할 수 없으므로 VB6의 수정 된 버전과 비슷하며 추가 기능 (예 : Excel 용 VBA의 워크 시트)을 사용할 수있는 추가 기능이 있습니다.


답변

VB는 언어가 아닙니다 . VB는 Office가 VBA를 호스팅하는 것처럼 VBA를 호스팅하는 프로그램입니다. VB는 Word 및 Excel과 마찬가지로 App 개체 집합이며 Office와 마찬가지로 양식 패키지입니다.

따라서 VB에서만 VBA 코드를 작성할 수 있습니다.

추신 : 이 정보는 VB 에 대한 VB 질문 페이지 의 정보 탭에 있습니다.

VBA 정보에서

VBA 6은 1998 년에 출시되었으며 Office 2000-2010, AutoCAD, PI Processbook 및 독립형 Visual Basic 6.0 등 수많은 라이센스 호스트를 포함합니다.