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

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

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

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

 chollida04 июн. 2013 г., 14:46
@ Дэвид, это кажется близким, но я нене думаю, что этоСправедливо назвать это дубликатом
 StuartQ23 янв. 2014 г., 16:07
Определенно не дубликат!
 Charles Williams22 июн. 2013 г., 10:22
Это не дубликат: сравнение VB6 с VBA не имеет никакого отношения к сравнению VSTO / VB.NET с VBA.

Ответы на вопрос(2)

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!

Решение Вопроса

во многом зависит от личных предпочтений, но вот несколько вещей, которые следует учитывать:

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.

Ваш ответ на вопрос