Можно ли конвертировать VBA в C #? - PullRequest
11 голосов
/ 23 декабря 2008

У меня есть несколько модулей блока кода в VBA для запуска на нескольких базах данных Access. Я хотел бы знать, как мне поступить, если я хочу преобразовать кодирование в среду C #. И возможно ли реализовать и получить те же результаты, которые я получаю сейчас с помощью Access и VBA? На данный момент я совершенно новичок в C #.

Ответы [ 6 ]

10 голосов
/ 23 декабря 2008

В настоящее время автоматическое преобразование невозможно, но выполнение этого вручную также поможет улучшить ваши навыки в C #. Здесь вы найдете 10 лучших статей, которые проведут вас через общие различия:

http://msdn.microsoft.com/en-us/library/aa164018%28office.10%29.aspx

Вам также могут пригодиться следующие ссылки:

Страница MSDN для разработки решений Office с C #:

http://msdn.microsoft.com/en-us/library/ms228286.aspx

Страница разработки приложений MSDN Visual C # (для начала разработки на C #):

http://msdn.microsoft.com/en-us/library/aezdt881.aspx

Удачи, и я надеюсь, что это поможет.

3 голосов
/ 23 декабря 2008

Следует помнить, что некоторые пространства имен объектов и ссылки на библиотеки включаются автоматически при кодировании в VBA. Они должны быть явно добавлены при работе в C #. Например,

Selection.TypeText("foo")

в VBA становится

using Microsoft.Office.Interop.Word;

Application word = new Application();
word.Selection.TypeText("foo");

в C #. Библиотечные ссылки можно добавить, щелкнув правой кнопкой мыши папку «Ссылки» в обозревателе решений и выбрав «Добавить ссылку».

2 голосов
/ 23 декабря 2008

Вы можете найти полезную информацию по этой теме на MSDN здесь

1 голос
/ 23 декабря 2008

Как правило, вы можете конвертировать код вручную. Вы не найдете никаких автоматизированных конвертеров кода, которые это сделают.

Тем не менее, фреймворки, которые вы используете для доступа к данным, в мирах C # и VBA весьма различны (даже между VB.NET и VBA!). Итак, вы захотите прочитать ADO.NET, прежде чем начать.

0 голосов
/ 03 октября 2014

Учитывая, что VBA ОЧЕНЬ похож на vb.net, я бы посоветовал вам перейти на VB.net. На самом деле вы часто можете вырезать + вставить в коде, особенно если такой код из модуля кода. Если в вашем коде есть наборы DAO.Recordset, я предлагаю создать в VB.net класс, который «имитирует» набор dao.recordset. Таким образом, большая часть кода VBA может почти на 100% входить в модуль кода vb.net. Таким образом, это говорит о том, что вам не нужно преобразование, а просто переместите код VBA на VB.net. На самом деле 99% команд в VBA существуют с тем же синтаксисом в VB.net.

0 голосов
/ 23 декабря 2008

http://www.developerfusion.com/tools/convert/vb-to-csharp/

Не идеально, но это поможет вам начать работу с синтаксисом. Напомним, что это не сравнится с тем, что вы узнаете сами.

...