응용 프로그램용 Visual Basic

Visual Basic for Applications
응용 프로그램용 Visual Basic
패러다임Multi-paradigm
개발자마이크로소프트
처음 등장한1993년, 29년 전(1993년).
안정된 릴리스
7.1(사무실, 2021년까지)
타이핑 분야Static/Dynamic 하이브리드, Strong/Weak 하이브리드
OSMicrosoftWindows, macOS
면허증.상업의 특허 소프트웨어
영향을 받다
퀵 베이식, VisualBasic

VisualBasic6.0 대부분의 데스크 톱 마이크로 소프트 오피스 어플리케이션에 내장된 마이크로 소프트의 이벤트 기반 프로그래밍 언어의 VisualBasic응용 프로그램(VBA)을 구현입니다.비록 이전에 근거한다.NET VisualBasic, 더 이상 또는 업데이트된 마이크로 소프트에서 지원되는 사무실의 VBA 구현 새로운 사무실 기능을 지원하려면 업데이트 계속되고 있다.[1][2]VBA고 최종 사용자 전문적인 개발을 위해 어떻게 생각한 사용 때문에 사용된다, 오피스의 식립하였다 userbase, 그리고 사업 상에서 광범위한 유산 설치되어 있다.

비주얼 베이직 포 애플리케이션, 그리고 dynamic-link 도서관(DLL)를 통해 WindowsAPI, 그리고 다른 낮은 수준의 기능에 접근하는 프로세스 자동화 건물 사용자 정의 기능(UDFs)할 수 있다.그것은, 워드의 WordBAS 같은 초에 응용 프로그램 관련 매크로 프로그래밍 언어의 능력에가 팽창하면서 대체한다.IC.그것은 호스트 응용 프로그램, 사용자 지정 사용자 신고서나 대화 상자를 일하는 메뉴와 도구 모음과 같은 사용자 인터페이스 기능, 조작하고 등과 같은 많은 측면을 제어하는 데 사용될 수 있다.

이름처럼, VBA 밀접하게 VisualBasic, VisualBasic런타임 라이브러리를 사용하여 관계가 있다.그러나 VBA 코드는 일반적으로 독립 실행형 프로그램이 아닌 호스트 애플리케이션 내에서만 실행할 수 있습니다.그러나 VBA는 OLE Automation을 사용하여 한 응용 프로그램을 다른 응용 프로그램에서 제어할 수 있습니다.예를 들어 VBA는 Microsoft Excel 데이터에서 자동으로 Microsoft Word 보고서를 생성할 수 있으며 Excel은 폴링된 센서에서 자동으로 수집됩니다.VBA는 ActiveX/COM DLL을 사용할 수 있지만 만들 수는 없습니다.이후 버전에서는 클래스 모듈에 대한 지원이 추가됩니다.

VBA는 Office for Mac OS X(버전 2008 제외)를 포함한 대부분의 Microsoft Office 애플리케이션과 Microsoft MapPointMicrosoft Visio 의 기타 Microsoft 애플리케이션에 내장되어 있습니다.또한 VBA는 ArcGIS, AutoCAD, CorelDraw, LibreOffice,[3] Reflection,[4] SolidWorks, WordPerfect 및 UNICOM System Architect(VBA 7.1 지원)를 포함한 마이크로소프트 이외의 기업에서도 부분적으로 구현됩니다.

설계.

VBA로 작성된 코드는 독점 중간 언어인 Microsoft P-Code(의사 코드)로 컴파일되며 호스트[5] 애플리케이션(Access, Excel, Word, Outlook 및 PowerPoint)은 COM Structured Storage 파일(예:.doc또는.xls)는 문서 스트림과는 무관합니다.그런[5] 다음 중간 코드가 가상 시스템(호스트 애플리케이션에 의해 호스트됨)에 의해 실행됩니다.VBA는 많은 오래된 BASIC 방언(특히 간접적으로 파생된 Microsoft BASIC)과 유사하지만 VBA 모듈 및 클래스의 소스 코드를 직접 Import할 수 있고 동일한 라이브러리와 가상 머신을 공유하는 Visual Basic을 제외한 모든 방언과 호환되지 않습니다.호환성은 Visual Basic 버전6에서 종료됩니다.VBA는 Visual Basic과 호환되지 않습니다.NET(VB)NET) VBA는 Microsoft의 독자적인 것으로, COM 인터페이스를 제외하고, 오픈 스탠다드는 아닙니다.

자동화

호스트 응용프로그램과의 상호 작용은 OLE 자동화를 사용합니다.일반적으로 호스트 애플리케이션은 VBA 프로그램이 애플리케이션과 어떻게 상호 작용할 수 있는지를 문서화하는 유형 라이브러리와 애플리케이션 프로그래밍 인터페이스(API) 문서를 제공합니다.이 매뉴얼은 오브젝트브라우저를 사용하여 VBA 개발 환경 내부에서 확인할 수 있습니다.

한 응용 프로그램의 OLE 자동화 인터페이스를 사용하도록 작성된 Visual Basic for Applications 프로그램은 OLE 자동화 인터페이스가 다르기 때문에 해당 응용 프로그램이 Visual Basic 런타임을 호스트하더라도 다른 응용 프로그램을 자동화하는 데 사용할 수 없습니다.예를 들어 Microsoft Word 자동화를 위해 작성된 VBA 프로그램은 다른 워드프로세서와 함께 사용할 수 없습니다.그 워드프로세서가 VBA를 호스트 하고 있는 경우에서도 마찬가지입니다.

반대로 VBA 코드 내에 Application 개체를 생성하여 하나의 호스트에서 여러 애플리케이션을 자동화할 수 있습니다.응용 프로그램에서 메서드, 오브젝트 등을 사용할 수 있게 되기 전에 VBA 클라이언트 내에서 다른 라이브러리에 대한 참조를 생성해야 합니다.이는 얼리 또는 레이트바인딩이라고 불리는 것을 통해 실현됩니다.이러한 응용프로그램 오브젝트는 처음 작성될 때 응용프로그램에 대한 OLE 링크를 만듭니다.다른 응용 프로그램에 대한 명령어는 올바르게 작동하려면 이러한 응용 프로그램개체를 통해 명시적으로 실행해야 합니다.

예를 들어 Microsoft Access에서 작성된 VBA 코드를 통해 Excel, Word 및 Outlook 라이브러리에 대한 참조를 확립할 수 있습니다.예를 들어 Access에서 쿼리를 실행하고 결과를 Excel로 내보낸 후 분석하여 출력 형식을 Word 문서에서 테이블로 지정하거나 Outlook 이메일로 전송할 수 있습니다.

VBA 프로그램은 메뉴 단추, 매크로, 키보드 바로 가기 또는 응용프로그램에서 문서 열기 등의 OLE/COM 이벤트에 첨부할 수 있습니다.이 언어는 추가 기능을 위해 ActiveX 컨트롤을 호스트할 수 있는 UserForms 형식의 사용자 인터페이스를 제공합니다.

프로세스 간 통신 자동화에는 동적 데이터 교환(DDE) 및 실시간 데이터 또는 과학 데이터를 위해 구성 요소 개체 모델(COM) 자동화 서버를 호출할 수 있는 실시간 데이터([6]RTD)가 포함됩니다.

보안에 관한 우려

일반적인 프로그래밍 언어와 마찬가지로 VBA 매크로도 악의적인 의도를 가지고 작성될 수 있습니다.VBA를 사용하면 보안 기능의 대부분은 작성자가 아닌 사용자의 손에 있습니다.사용자는 VBA 호스트 애플리케이션 옵션에 액세스할 수 있습니다.VBA 매크로가 포함된 문서를 실행하는 사용자는 소프트웨어를 사용자 기본 설정으로 사전 설정할 수 있습니다.최종 사용자는 매크로가 응용 프로그램에서 실행되지 않도록 설정하거나 문서의 소스를 신뢰할 수 있는 경우에만 문서에 VBA 코드를 실행할 수 있는 권한을 부여하여 공격으로부터 자신을 보호할 수 있습니다.

버전 이력

  • VBA는 1993년 MS Excel 5.0으로 처음 출시됐다.개발자들 사이에서 엑셀로 기업 솔루션을 만드는 것이 순식간에 성공했습니다.Microsoft Project, Access 및 Word를 대체하는 VBA 포함 BASIC 및 WordBASIC는 각각 그것을 더 인기 있게 만들었다.
  • VBA 4.0은 이전 버전보다 완전히 업그레이드된 다음 유명한 릴리스입니다.1996년에 출시된 이 언어는 C++로 쓰여져 객체 지향 언어가 되었다.
  • VBA 5.0은 모든 MS Office 97 제품과 함께 1997년에 출시되었습니다.유일한 예외는 VBScript를 사용한 Outlook 97이었습니다.
  • VBA 6.0 및 VBA 6.1은 1999년에 출시되었으며, 특히 Office 2000의 COM 애드인을 지원합니다.VBA 6.2는 Office 2000 SR-1과 함께 출시되었습니다.
  • VBA 6.3은 Office XP 이후, VBA 6.4는 Office 2003 이후, VBA 6.5는 Office 2007과 함께 출시되었습니다.
  • Office 2010에는 VBA 7.0이 포함되어 있습니다.VBA 6.5에 비해 개발자를 위한 VBA 7의 신기능은 64비트 지원 이외에는 없습니다.그러나 VBA 6.5/Office 2007 이후 Microsoft는 다른 애플리케이션의 VBA 라이선스를 중지했습니다.
  • Office 2013, Office 2016, Office 2019 및 Office 2021에는 VBA 7.1이 포함되어 있습니다.

발전

2007년 7월 1일부터 Microsoft는 신규 고객에게 VBA 디스트리뷰션 라이선스를 제공하지 않게 되었습니다.Microsoft 에서는, 을 추가하려고 하고 있습니다.출시 이후 최신 버전의 VBA에 대한 NET 기반 언어NET [7]Framework 버전 1.0 및 1.1에는 스크립트라는 이름의 스크립트 런타임테크놀로지가 포함되어 있습니다.NET [8]프레임워크Visual Studio.NET 2002 및 2003 SDK에는 VB를 지원하는 VSA(Visual Studio for Applications)라는 별도의 스크립트 IDE가 포함되어 있습니다.NET.[9][10][11] 그 중요한 기능 중 하나는 액티브스크립트(VBScriptJScript)를 통해 테크놀로지에 대한 인터페이스를 사용할 수 있다는 점이었고, 이를 통해 심지어 사용할 수도 있었습니다.를 통해 스크립팅되는 NET 비웨어 응용 프로그램.NET 언어그러나 VSA는 의 버전 2.0에서 더 이상 사용되지 않습니다.NET [11]Framework를 사용하면 액티브스크립트 지원을 필요로 하는 어플리케이션의 업그레이드 경로가 명확하지 않습니다(단, "스크립트"는 C#, VBScript 및 기타에서 작성할 수 있습니다).NET 언어:표준의 일부로 설치된 라이브러리를 통해 런타임에 컴파일 및 실행할 수 있습니다.NET 런타임).

Microsoft는 Microsoft Office 2008 for [12][13]Mac에 대한 VBA 지원을 중단했습니다. VBA는 Microsoft Office 2011 for Mac에서 복원되었습니다.마이크로소프트는 윈도우 버전의 [14][15]Office에서 VBA를 제거할 계획이 없다고 말했다.

Office 2010에서 마이크로소프트는 진정한 포인터 데이터 유형인 LongPtr을 포함하는 VBA7을 발표했습니다.이를 통해 64비트 주소 공간을 참조할 수 있습니다.Office 2010의 64비트 설치에서는 MSComCtl(탭스트립, 툴바, 상태바, 프로그레스바, 트리뷰, ListViews, ImageList, 슬라이더, ImageComBox) 또는 MSComCt2(애니메이션, 업다운, ImageComBox)의 공통 컨트롤이 지원되지 않습니다.union을 클릭합니다.32비트판 Office [16]2010에는 영향을 주지 않습니다.VBA7에는 64비트 버전의 공통 컨트롤이 포함되어 있지 않기 때문에 개발자는 VBA 애플리케이션을 64비트로 이행할 수 없습니다.Microsoft는 64비트 버전의 VBA 컨트롤에 대해 소프트웨어 벤더에 문의할 것을 권장합니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ "Compatibility Between the 32-bit and 64-bit Versions of Office 2010". msdn.microsoft.com.
  2. ^ o365devx. "What's new for VBA in Office 2019". docs.microsoft.com. Retrieved 2022-05-02.
  3. ^ "Reflection Desktop VBA Guide". docs.attachmate.com. Retrieved 2017-07-01.
  4. ^ "2016 SolidWorks Help – VBA". help.solidworks.com. Retrieved 2016-07-25.
  5. ^ a b "ACC: Visual/Access Basic Is Both a Compiler and an Interpreter". Microsoft. 2012. Archived from the original on 2012-10-21.
  6. ^ "How to set up and use the RTD function in Excel". msdn.microsoft.com.
  7. ^ "Visual Studio for Applications". Archived from the original on 2007-12-17.
  8. ^ "Introducing Visual Studio for Applications". msdn.microsoft.com.
  9. ^ "Script Happens .NET". msdn.microsoft.com.
  10. ^ "Microsoft Takes Wraps Off VSA Development Technology". Archived from the original on 2007-12-17.
  11. ^ a b "VSA scripting in .NET". Archived from the original on 2007-02-11.
  12. ^ "WWDC: Microsoft updates Universal status of Mac apps". Macworld. 2006-08-07. Retrieved 2007-05-25.
  13. ^ "What is Microsoft Office and Office 365 – FAQs".
  14. ^ "The Reports of VBA's Demise Have Been Greatly Exaggerated".
  15. ^ "Clarification on VBA Support". Archived from the original on 2008-01-19.
  16. ^ "Compatibility Between the 32-bit and 64-bit Versions of Office 2010". msdn.microsoft.com.