我有一个旧的Excel 4宏,用于运行每月发票。它大约有3000行,并且有许多Excel 5对话框表格(用于对话框)。我想知道将其转换为VBA的最简单方法是什么,是否值得这样做。另外,一旦我将其转换为VBA,如何将其创建为独立应用程序?
我之前尝试过这个,最终你确实需要像Biri所说的那样重新编写。
我们公司升级从Windows NT到Windows XP时,我做了很多这方面的工作。我经常发现,根本不看旧代码,从头开始重新编写更容易。你可能会花费很多时间来弄清楚Excel 4在“奇怪”的对话框符号周围的操作。最终,如果你知道输入和输出,重新编写通常更有效率和更干净。
是否使用VBA在某种程度上是另一个问题,但VBA相当强大和可扩展,因此虽然我在许多情况下更愿意使用其他工具如.NET,但它运行良好且易于部署。
就是否值得而言?如果你能说你永远不需要再更改你的Excel 4宏,那么也许不值得。但在商业中总有一些变化,例如税率,特别是年底的事情。考虑到找到支持Excel 4甚至找到文档有多难,我认为不转换到VBA是有风险的,但这是需要权衡的事情。
(免责声明:我开发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。
这里有一篇关于这个主题的好文章:http://msdn.microsoft.com/en-us/library/aa192490.aspx
你可以免费下载VB2008-Express:http://www.microsoft.com/express/default.aspx