문제

VB6처럼 VBA도 곧 사라질 예정인가요?VBA를 사용하여 새로운 Office 응용 프로그램을 개발하면 안 됩니까?아니면 VSTO를 사용하여 모든 새로운 Office 앱을 개발해야 합니까?

업데이트:최근에 이것을 읽었습니다. 기사.

도움이 되었습니까?

해결책

Office VSTO는 Office VBA에 비해 훨씬 더 많은 추가 기능을 제공합니다. Microsoft가 VBA를 종료할 것이라는 신호를 보냈다고는 생각하지 않습니다(실제로 그들은 분명히 말했다 적어도 Office 14까지는 있을 것입니다.Office 2007 = Office 12), 추가적인 유연성과 성능을 활용하기 위해 애플리케이션을 VSTO로 이동하는 노력은 충분히 가치가 있다고 생각합니다.

저는 실제로 VBA를 사용하지 않는 것이 가능하다고 생각하지 않습니다. 상당한 양의 Office 프로그래밍이 비즈니스 사용자에 의해 거시적 수준에서 이루어지고 이것이 곧 사라질 것이라고 생각하지 않기 때문입니다.이러한 사람들은 일반적으로 VSTO 지원 IDE에 액세스할 수 없습니다.

다른 팁

VSTO에는 새로운 기능이 있지만 VBA에 비해 여러 가지 주요 결함도 있습니다.

우선, 코드 액세스 보안으로 인해 VSTO 애플리케이션 배포가 어려워질 수 있습니다(정중한 표현입니다).

또 다른 이유는 VSTO 개발 환경은 VBA만큼 "고급 사용자" 개발자가 액세스할 수 있는 환경이 아닙니다.예를 들어 시작하는 데 도움이 되는 매크로 레코더가 없습니다.

그리고 가장 큰 문제는 out-of-process COM 개체와의 .NET 상호 운용성이 제대로 작동하지 않는다는 것입니다.예를 들어 Excel VSTO 애플리케이션 내에서 다른 Office 애플리케이션(Word, PowerPoint, Outlook)을 조작하려는 경우 에 설명된 이유로 백그라운드에서 실행되는 이러한 애플리케이션의 여러 복사본을 찾을 수 있습니다. 이 KB 문서.

이 모든 것이 기존 VBA 앱에 대한 막대한 투자와 결합되어 VBA가 곧 사라지지 않을 것임을 의미합니다.

마이크로소프트는 다음과 같이 밝혔습니다. VBA가 지원됩니다 가까운 미래를 위해 앞으로 나아가고 있지만 새로운 앱에 VSTO를 사용하도록 권장하고 있습니다.

MS Office의 최신 Mac 버전은 VBA를 지원하지 않으며, 64비트 Windows에서는 이를 가상 32비트 Out-of-Process 모드에서 실행합니다.따라서 Office를 플랫폼으로 사용하여 새로운 애플리케이션을 계획하고 있다면 VSTO는 분명히 갈 길은 있지만 레거시 지원에 대해 너무 걱정해서는 안됩니다.

@cori가 지적했듯이 MS가 지원을 중단하고 기존 소프트웨어를 너무 많이 깨뜨리는 것은 큰 마케팅이 아닙니다.

Microsoft는 .NET이 처음 출시된 이후부터 VSTO가 통합된 Office의 관리 코드 버전에 대한 힌트를 제공해 왔습니다(VB6 IDE가 VBA에 통합된 것과 같은 방식이므로 VS IDE가 VSTO에 통합될 것임).

얼마나 많은 코딩이 필요하고 이것이 사용자에게 표시되는 기능을 생성하지 않는다는 점을 고려하면 이것이 Microsoft 우선 순위 목록에서 높은지 의심스럽습니다.나는 그들이 기존 코드베이스 위에 객체의 관리 코드 세트를 계층화하고(Joel Spolsky가 처음에 VBA를 Excel에 넣을 때 기존 C 코드베이스 위에 COM 객체 세트를 계층화한 것과 유사함) 새 IDE를 설치했다고 상상할 수 있습니다. 이전 것을 숨기면서 기본값으로.그것조차도 중요한 연습이 될 것입니다(매크로 기록기를 작성하는 것을 상상해 보십시오!).물론 이렇게 하면 .NET이 Office의 사전 요구 사항이 되며 Office 팀은 총구를 겨누는 경우에만 이를 받아들입니다.

물론 실제로는 제품에서 VBA를 제거하지 않습니다. Excel은 여전히 ​​Excel 4 매크로를 지원하고 Word에는 여전히 Word 6 매크로를 지원하는 WordBasic 자동화 개체가 있으며 너무 많기 때문에 둘 중 하나가 제거될 조짐이 없습니다. 레거시 코드를 지원해야 하며 지난 10년 동안 누구도 이러한 코딩 모델을 사용하지 않았습니다.

Microsoft가 Office에 .NET 환경을 추가한다면(솔직히 그런 일이 일어날지 의심스럽습니다) 새로운 Office 기능에 대한 VBA 지원 추가를 중단할 수도 있습니다.이것이 VBA 중단에 가장 가까운 것입니다.

여기에는 마이크로소프트의 코멘트 향후 VBA 지원에 관해.간단히 말해서 Windows 버전의 Office에서는 사라지지 않지만 Mac 버전에서는 중단됩니다.

VBA는 가치가 떨어지기에는 아직 멀었습니다. 실제로 VBA는 MAC의 다음 버전 Office에 다시 도입될 예정입니다( http://www.microsoft.com/presspass/press/2008/may08/05-13MacBU2008PR.mspx).

현장에 있는 대부분의 사람들에게 VBA와 C XLL(및 VB6!!)은 계속해서 선택되는 도구입니다.현재 .NET 연결은 느리고 생산성 향상을 전혀 제공하지 않습니다.ExcelDNA와 같은 타사 도구는 고통을 어느 정도 완화하지만 Office의 관리되지 않는 C 기반(및 어셈블러 기반) 코드 기반은 .NET과 쉽게 호환되지 않습니다.

VBA 추가 기능은 배포하기가 약간 까다롭지만 VSTO는 훨씬 더 그렇습니다.또한 VSTO에는 코드를 실행하기 전에 CLR을 시작해야 하므로 약간의 오버헤드가 발생합니다.

그러나 무엇보다도 가장 중요한 것은;VSTO는 VBA 작성의 어려움을 없애줍니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top