将Excel 4宏转换为VBA

6

我有一个旧的Excel 4宏,用于运行每月发票。它大约有3000行,并且有许多Excel 5对话框表格(用于对话框)。我想知道将其转换为VBA的最简单方法是什么,是否值得这样做。另外,一旦我将其转换为VBA,如何将其创建为独立应用程序?

4个回答

6

我之前尝试过这个,最终你确实需要像Biri所说的那样重新编写。

我们公司升级从Windows NT到Windows XP时,我做了很多这方面的工作。我经常发现,根本不看旧代码,从头开始重新编写更容易。你可能会花费很多时间来弄清楚Excel 4在“奇怪”的对话框符号周围的操作。最终,如果你知道输入和输出,重新编写通常更有效率和更干净。

是否使用VBA在某种程度上是另一个问题,但VBA相当强大和可扩展,因此虽然我在许多情况下更愿意使用其他工具如.NET,但它运行良好且易于部署。

就是否值得而言?如果你能说你永远不需要再更改你的Excel 4宏,那么也许不值得。但在商业中总有一些变化,例如税率,特别是年底的事情。考虑到找到支持Excel 4甚至找到文档有多难,我认为不转换到VBA是有风险的,但这是需要权衡的事情。


3

(免责声明:我开发Excel-DNA库)

不要将宏移动到使用与Excel宏语言不同的COM自动化对象模型的VBA中,而是将其移动到运行Excel-DNA库的VB.NET(或C#)中。

Excel-DNA允许您使用C API,该API非常接近宏语言。对于每个宏命令,例如对话框,都有一个C API函数,它接受相同的参数。例如,DIALOG.BOX的等效物将是xlfDialogBox-在此线程中有一些讨论和示例:http://groups.google.com/group/exceldna/browse_thread/thread/53a8253269fdf0a5

这种转换的一个重要优点是,您可以逐步更改代码的部分来使用COM自动化接口- Excel-DNA允许您混合和匹配COM接口和C API。


2
据我所知,没有任何可能将其转换。你必须基本上在VBA中重新编写它。
如果已经转换为VBA,则无法作为独立应用程序运行。由于VBA表示Visual Basic for Application,因此它位于一个应用程序内部(Word、Excel、Scala等)。
您必须学习一种标准语言(而不是宏语言)来创建独立应用程序。但是您必须学习更多的东西,例如数据库处理而不是Excel表格处理、打印而不是Excel打印等不同的技术。因此,您将失去很多功能,如果您使用Excel就会显而易见。

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接