programing

VBA와 VSTO의 차이점은 무엇입니까? 업그레이드해야 합니까?

subpage 2023. 4. 14. 21:42
반응형

VBA와 VSTO의 차이점은 무엇입니까? 업그레이드해야 합니까?

저는 KISS 원칙(Keep it simple)과 엑셀 사용자의 오랜 VBA의 열렬한 팬입니다.그러나 VBA vs. VSTO(Visual Studio Tools for Office)에 관한 모든 기사는 매우 복잡해 보입니다.

우선, 엑셀에 내장된 IDE가 너무 서툴러서 새로운 ID를 찾고 있습니다.Visual Studio를 IDE로 사용하는 VSTO만이 유일한 대안인 것 같습니다.

VBA와 VSTO의 차이점을 이해하고 VSTO 사용법을 배울 가치가 있는지 알아보려고 합니다.

사용하는 툴셋은 주로 개인 취향에 따라 다르지만, 여기 몇 가지 고려해야 할 사항이 있습니다.
:1 태스크의 레이어가 되어 있기 됩니다.대부분의 Excel 관련 작업에서는 Interop 계층이 추가되기 때문에 VBA에 비해 VSTO의 수행 속도가 매우 느립니다.
2.는 UDF2를 . UDF: VSTO UDF.
모델 3. 를 사용하는 경우가 없기 때문입니다.Excel 객체 모델을 VSTO와 함께 사용하는 것은 VBA가 없기 때문에 VBA를 사용하는 것보다 어렵습니다.「NET」입니다.
IDE:IDE에 수 (라이센스가 ). 4. IDE: VSTO: Visual Studio IDE: Visual Studio IDE입니다.
5Framework : . .Net Framework : VSTO : VSTO : VSTO 5 5 5 5 5 5 5 5 5 5 。NET 레 net net net
.6. 학습곡선: VB.NET VBA를 사용합니다.NET 프레임워크와 객체 모델의 차이는 전환이 그만큼 간단하지 않다는 것을 의미합니다.
7. VISTO보다 Express VSTONET보다 .VSTO를 하다

Excel의 VBA는 코드 편집과 코드 실행 사이에서 빠른 결과를 얻을 수 있는 이점을 제공합니다.VBA의 훌륭한 프로그래머이기 때문에 Visual Studio의 슈퍼 기능(intellisense, try-catch-fanally, inherits, every) 없이도 살 수 있습니다.NET 오브젝트, 멀티스레딩...)

VSTO는 매우 좋은 IDE(Visual Studio) 내에서 작업하는 방법이지만, VB를 전환하는 데 많은 시간을 낭비할 수 있습니다.NET 및 Excel.Excel 내의 VBA만큼 직접적이지 않습니다.

프로그래밍의 주요 목적이 Excel 파일 내에 머무르는 것이라면 VBA와 함께 하십시오.Excel 파일 외부에서 작업해야 하는 경우 또는 Excel 파일에 따라 필요하지 않은 작업을 수행해야 하는 경우 VSTO를 고려해 보십시오.게다가 VSTO는 매우 새로운 기능이기 때문에 문서화가 완전하지 않을 수 있습니다.

내가 너라면 VBA에 남았을 거야.이게 저의 겸손한 의견입니다.나는 VBA와 VB를 조금 비교해서 썼다.NET (VSTO) : VB의 차이점NETVBA!

이것은 원래 이 질문을 한 지 6년이 지난 시점이기 때문에 OP 당시 두 툴의 비교가 달랐을 수 있지만, 기존의 답변이 VBA에 얼마나 호의적인지 매우 놀랐습니다!

VBA는 완전히 애플리케이션 내에 해석되어 수용됩니다.장점은 다음과 같습니다.

  • 외부 툴이 필요 없는 애플리케이션 내에서 직접 코딩 가능
  • 매크로 기록과 같은 애플리케이션별 기능을 통해 빠른 프로토타이핑 가능
  • RefEdit과 같은 Excel 고유의 ActiveX 컨트롤을 활용할 수 있습니다.
  • UDF는 쉽게 개발할 수 있다
  • 애드인은 문서(.xla 형식)로 배포됩니다.

소규모 애플리케이션 및 UDF의 경우 VBA는 정상적으로 동작합니다.Excel을 사용하여 빠르고 쉽게 구축할 수 있으며 "그냥 작동"할 수 있습니다.

그러나 프로그램에 복잡성이 있는 경우 VSTO에 대해 알아보는 것이 좋습니다.다음과 같은 이점이 있습니다.

  • VB와 같은 멀티패러다임 프로그래밍 언어를 사용할 수 있습니다.NET 또는 C#
  • 더 나은 수집 지원(일반 목록, 사전, 튜플 등)
  • 스레드, 비동기 실행 지원
  • 스탠드아론 어플리케이션으로서의 애드인 도입
  • 네이티브 WinForms를 사용하여 논블로킹 UI를 개발할 수 있습니다.

이 시점에서 VSTO는 다음과 같이 충분히 문서화되어 있습니다.

https://learn.microsoft.com/en-us/visualstudio/vsto/create-vsto-add-ins-for-office-by-using-visual-studio

퍼포먼스에 관한 토픽은 다소 애매하지만, 앞의 몇 가지 답변과 비교하면, 실제로는 병목현상에 따라 다릅니다.COM의 상호 운용성에 의해 오버헤드가 증가하는 경우가 있습니다만, 동시에 VBA 실행 모델은 C#이 제공할 수 있는 것보다 훨씬 느립니다.특히 VSTO가 제공할 수 있는 3가지 패러다임을 고려할 때 VSTO가 유사한 코드화된 VBA 프로그램보다 훨씬 더 빠른 애플리케이션입니다.

VBA에 대한 당신의 답변에 매우 놀랐습니다.

몇 년 동안 VBA(주로 아웃룩)와 함께 일하면서 여러 가지 부정적인 면이 지겨워졌고 훨씬 더 효율적이기 때문에 VSTO로 옮겼습니다.

나는 많은 부정적인 점들에 직면했다.

디벨로핑

  • Vba IDE는 매우 제한적입니다.
  • 사용자 양식이 제한되어 있습니다(리치 텍스트 상자 만들기 시도)

도입

  • 사용자가 너무 많은 작업(보안 설정 수정, 참조 가져오기, 리본 수정...)을 수행해야 합니다.

업데이트 중

  • 자동으로 갱신할 수 없습니다.갱신할 때마다 새로운 파일을 사용자에게 전송해야 합니다.

애드인은 훨씬 파워풀합니다(즉, 복잡한 것을 쉽게 만들 수 있습니다).리본에 버튼을 추가하여 기능을 실행할 수 있습니다(ClickOnce 참조).

일반적으로 VBA 매크로는 개인적인 용도로 작성되며 VSTO 애플리케이션은 여기서 볼 수 있듯이 배포됩니다.

https://support.microsoft.com/en-us/help/290779/managing-and-distributing-outlook-visual-basic-for-vba

여러 사용자에게 배포할 솔루션을 개발하는 경우 VBA 코드를 Outlook COM 또는 VSTO 애드인 또는 Outlook용 Office 애드인으로 변환해야 합니다.

언급URL : https://stackoverflow.com/questions/16770082/vba-vs-vsto-what-is-the-difference-should-i-upgrade

반응형