2008-09-18 3 views
6

У меня есть старый макрос Excel 4, который я использую для запуска ежемесячных счетов-фактур. Это около 3000 строк и имеет много диалоговых окон Excel 5 (для диалоговых окон). Я хотел бы знать, что самым простым способом было бы изменить его на Visual Basic и, если он того стоит. Я также хотел бы знать, как, если однажды я превратил его в VBA, как создать его автономное приложение.Преобразование Excel 4 макросов в VBA

ответ

2

AFAIK нет никакой возможности хоть как-то преобразовать его. Вы должны в основном переписываться в VBA.

Если вы преобразованы в VBA, вы не можете работать как автономное приложение. Поскольку VBA заявляет Visual Basic для приложения, он живет внутри приложения (Word, Excel, Scala, что угодно).

Для создания автономных приложений вам необходимо изучить стандартный язык (а не макроязык). Но вы должны учиться намного больше, чем сам язык. Вам нужно изучить различные методы, например обработку базы данных вместо обработки листа Excel, печать вместо печати Excel и т. Д. Таким образом, в основном вы потеряете много функций, что очевидно, если вы используете Excel.

6

Я попытался это сделать до и, в конце концов, вам нужно переписать его, как сказал Бири.

Я сделал эту работу, когда наша компания обновлялась с Windows NT до Windows XP. Я часто обнаружил, что легче вообще не смотреть на старый код и начинать с нуля. Вы можете потратить так много времени, пытаясь разобраться в том, что сделал Excel 4 особенно вокруг «странного» диалогового окна. В конце концов, если вы знаете, что такое входы и выходы, то часто требуется более эффективное время и более чистое переписывание.

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

С точки зрения того, стоит ли? Если бы вы могли сказать, что вам никогда не понадобится снова менять макрос Excel 4, возможно, нет. Но в бизнесе всегда есть что-то, что меняет, например, налоговые ставки, особенно на конец года. Учитывая, как трудно найти somone для поддержки Excel 4 и даже найти документацию, я бы сказал, что рискованно не переходить на VBA, но это то, что нужно сбалансировать.

3

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

вместо перемещение макроса VBA, который использует объектную модель автоматизации COM, которая отличается от макроязыка Excel, а переместить его в VB. NET (или C#), работающий с библиотекой Excel-DNA.

Excel-DNA позволяет использовать C API, который очень близко отражает макроязык. Для каждой макрокоманды, как и в ваших диалогах, существует функция C API, которая принимает те же параметры. Например, эквивалент DIALOG.BOX будет xlfDialogBox - в этом потоке есть несколько примеров и примеров: http://groups.google.com/group/exceldna/browse_thread/thread/53a8253269fdf0a5.

Одно из преимуществ этого шага состоит в том, что вы можете постепенно изменять части своего кода для использования интерфейса автоматизации COM. Excel-DNA позволяет смешивать и сопоставлять интерфейсы COM и API C.

Смежные вопросы