将Excel 4macros转换为VBA

我有一个旧的Excel 4macros,我用它来运行每月的发票。 它大约有3000行,并有许多Excel 5对话框工作表(用于对话框)。 我想知道什么是最简单的方法将其更改为Visual Basic,如果它是值得的。 我也想知道,如果一旦我将其转换为VBA,如何创build它的独立应用程序。

之前我曾尝试过这样做,最后你还是需要像Biri所说的那样重写它。

当我们公司从Windows NT升级到Windows XP时,我做了相当多的工作。 我经常发现,根本不看旧的代码,而是从头开始。 您可以花费这么多时间来研究Excel 4在“奇怪”对话框表示法中所做的工作。 最后,如果你知道input和输出是什么,那么重写通常更有效和更清晰。

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

这是值得的吗? 如果你可以说,你永远不会需要再次改变你的Excel 4macros,那么也许不会。 但是在商业领域,总会有一些变化,例如税率,尤其是年末的事情。 鉴于如何find支持Excel 4的somone,甚至find相关文档,我认为不要转移到VBA是有风险的,但这是平衡的。

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

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

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

这一举措的一大优势是,您可以逐步更改部分代码以使用COM自动化接口 – Excel-DNA允许您混合和匹配COM接口和C API。

AFAIK不可能以某种方式转换它。 你必须在VBA基本上重写。

如果您已转换为VBA,则无法作为独立应用程序运行。 由于VBA声明Visual Basic的应用程序,它是生活在一个应用程序(Word,Excel中,斯卡拉,无论)。

您必须学习标准语言(而不是macros语言)才能创build独立应用程序。 但是你必须学习比语言本身更多的东西。 您必须学习不同的技术,例如数据库处理,而不是Excel表格处理,打印而不是Excel打印等等。 所以基本上你会失去很多function,这是明显的,如果你使用Excel。

这里是关于这个主题的一个很好的文章: http : //msdn.microsoft.com/en-us/library/aa192490.aspx

您可以在http://www.microsoft.com/express/default.aspx免费下载VB2008-Express