Потеряю ли я преимущества записи макросов, если буду разрабатывать приложения Excel в Visual Studio? - PullRequest
6 голосов
/ 17 марта 2010

В прошлом я написал много макросов Excel, используя следующий процесс разработки:

  1. Запись макроса.
  2. Откройте редактор VBA.
  3. Редактировать макрос.

Сейчас я экспериментирую с проектом надстройки Excel 2007 (надстройка Excel 2007) (C #), и мне интересно, придется ли мне отказываться от этого процесса разработки.

Вопросы:

  1. Я знаю, что все еще могу записывать макросы с помощью Excel, но есть ли способ получить доступ к полученному коду в Visual Studio? Или мне просто нужно скопировать и вставить затем C # -ize его?

  2. Что происходит с моей "Персональной макрокомандой"? Могу ли я использовать макросы, которые я там храню в C #? Или есть какой-то способ конвертировать их в C #?

  3. Если есть некоторая поддержка для открытия и редактирования макросов VBA в Visual Studio, можете ли вы дать очень краткую сводку о том, как это работает, или указать на хороший пример?

  4. Есть ли у вас какие-либо другие советы по переходу от написания макросов в VBA с помощью встроенного редактора Excel к написанию их в C # с помощью Visual Studio?

Ответы [ 2 ]

6 голосов
/ 17 марта 2010

Вам грозит огромный вред, если вы хотите портировать макросы VBA на C #. Если они вообще сложные, я просто переписал бы их в Visual Studio или сохранил бы их в Excel.

Кроме того, насколько мне больно это говорить, на данный момент VB.net действительно лучший выбор для разработки офисов. VB.net поддерживает пропущенные параметры, которые пригодятся для методов Excel с zillion параметрами. Эта поддержка будет добавлена ​​в C # для .NET 4.0.

Вы должны иметь возможность вызывать метод VBA из .NET. Взгляните на это: http://msdn.microsoft.com/en-us/library/bb608609.aspx

Вы также можете посмотреть эту статью на codeproject: http://www.codeproject.com/KB/office/extending_excel.aspx

0 голосов
/ 22 ноября 2011

(Отказ от ответственности: я разрабатываю библиотеку Excel-DNA.)

Вы должны взглянуть на Excel-DNA - http://exceldna.codeplex.com. Библиотека позволяет управляемым сборкам, написанным на C #, VB.NET или F #, предоставлять высокопроизводительные пользовательские функции и пользовательские макросы в Excel через Excel. Родной интерфейс .xll. Проект с открытым исходным кодом и свободно разрешает коммерческое использование.

Имея опыт работы с VBA, возможно, имеет смысл сначала перейти на .NET с использованием VB.NET. После того, как вы сделали этот переход, начать использовать C # будет намного проще, и вы сможете без проблем создавать перекрестные ссылки на сборки, написанные на VB.NET и C #.

Некоторые надстройки, такие как ReSharper и бесплатная .NET IDE SharpDevelop , могут даже автоматически конвертировать код из VB.NET в C #. Конечно, для использования интерфейса автоматизации COM из C # вы хотите использовать .NET 4.

У Майка Стонтона есть видео беседы о VBA -> VB.NET через технику Excel-DNA: http://www.thalesians.com/finance/index.php/Events/Seminars/Seminar27#Video.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...