我正在尝试重构我的 VBA 代码。多年来,我习惯于在基于 Java 的 IDE 中使用重构。VBA 编辑器是否支持任何重构或是否有任何加载项?MZ Tools 没有任何此类功能。
我希望至少能够做到以下几点: 1. 重命名变量 2. 将过程拆分为子过程以使代码更具可读性 3. 将变量的范围从全局更改为过程,反之亦然
免责声明:我积极参与这个项目。
Rubberduck是一个用于 VBA/VB6 IDE 的开源插件,正在 [非常] 积极开发中,其中包括此功能。
1.3 版包括重命名重构:
2.0 版(测试版可用,仍在稳定中)包括十几个重构:
实现接口为未实现接口的所有成员创建存根,因此您无需通过在代码窗格下拉列表中一一选择它们来手动创建它们:
Implements IClass1
Public Sub IClass1_DoSomething()
Err.Raise 5 'TODO implement interface member
End Sub
Public Function IClass1_GetFoo() As Integer
Err.Raise 5 'TODO implement interface member
End Function
Sub DoSomething()
End Sub
Function GetFoo() As Integer
End Function
项目路线图上有更多重构工具(包括Extract Method),您可以在GitHub 上关注这些工具。
我在 VBA 中知道的唯一“重构”工具是 Ctrl+F 和 Ctrl+R。
我使用 V-Tools 进行类似重构的工作,因为它会在对象中查找/替换,而不仅仅是 VBA 代码。 http://www.skrol29.com/us/vtools.php
是的有....几乎
在过去的美好时光里,我用过这个。 http://www.moshannon.com/speedferret.html
帮了我很多,我想我有一些 3.5 英寸的磁盘;)
诀窍是将您的 excel 代码复制到 Access 或 VB6 并在那里进行重构。替换范围:解决方案是创造性的命名和使用替换。吐痰程序...嗯,这是一个手册,我很抱歉。
除非您有一些严肃的 excel vba 代码,否则通常不值得这样做,我建议您将其中的大部分转换为 c# 或 VB.Net dll,您可以在其中进行重构、测试和一些现代魔法,并且在 VBA 中只做尽可能少的事情。