VBA VS. VSTO какая разница, я должен обновить?
==============================================

Я большой поклонник принципа KISS (будь проще) и долгое время работавший с VBA для пользователей Excel. Однако все статьи, которые я могу найти о VBA против VSTO (Visual Studio Tools for Office), кажутся очень сложными.

Во-первых, меня тошнит от очень плохой IDE, встроенной в Excel, и я ищу новую. VSTO, использующий Visual Studio в качестве IDE, кажется единственной альтернативой.

Поэтому я пытаюсь понять, в чем разница между VBA и VSTO, чтобы узнать, стоит ли мне учиться использовать VSTO?

 во многом зависит от личных предпочтений, но вот несколько вещей, которые следует учитывать:  
  
1. Производительность: для большинства задач, связанных с Excel, VSTO выполняется очень медленно по сравнению с VBA из-за дополнительного уровня взаимодействия.  
  
2. UDF: VSTO не поддерживает UDF  
  
3. Объектная модель. Работать с объектной моделью Excel с VSTO сложнее, чем с VBA, потому что нет .NET Macro-рекордера для подсказок.  
  
4. IDE: с VSTO вы получаете доступ к последней версии Visual Studio IDE (при условии, что у вас есть лицензия Visual Studio)  
  
5. .Net Framework: VSTO предоставляет вам доступ к очень богатой и мощной .NET Framework  
  
6. Кривая обучения: VB.NET - это язык, отличный от VBA, а различия между платформой .NET и объектной моделью означают, что переход не так прост, как мог бы быть.  
  
7. Если вы хотите пойти по пути Visual Studio / .NET, я бы порекомендовал вам взглянуть на Addin Express или XLDNA, а не на VSTO: оба они имеют меньше ограничений, чем VSTO.



**VBA в Excel дает каждому преимущество** быстрых результатов между редактированием кода и его выполнением. Поскольку вы хороший программист VBA, вы могли бы жить без суперфункции Visual Studio (intellisense, try-catch-fanally, наследует, все объекты .NET, многопоточность ...)

VSTO - это способ работать в очень хорошей IDE (Visual Studio), но я боюсь, что вы потратите много времени на переключение между VB.NET и вашим Excel. Не так прямо, как ваш VBA внутри вашего Excel.

если ваша основная цель программирования - оставаться внутри файла Excel, тогда оставайтесь с VBA. Если вам действительно нужно играть вне вашего файла Excel или если вы хотите сделать что-то, что неЭто зависит от ваших файлов Excel, может быть, вы могли бы рассмотреть VSTO. Кроме того, VSTO является довольно новым, и документация не может быть гениальной.

Я бы остался с VBA на твоем месте. Это мое смиренное мнение. Я написал небольшое сравнение между VBA и VB.NET (VSTO): вот[Разница между VB.NET и VBA!](https://checktechno.blogspot.com/2013/04/difference-between-vbnet-and-vba.html)