我正在尝试重构我的VBA代码。我很习惯在基于Java的IDE中使用重构多年。 VBA编辑器是否支持任何重构或是否有任何加载项? MZ Tools没有任何此类功能。
我希望能够至少做到以下几点: 1.重命名变量 2.将程序拆分为子程序,使代码更具可读性 3.将变量的范围从全局更改为过程,反之亦然
答案 0 :(得分:30)
免责声明:我参与了这个项目。
Rubberduck是[非常]活跃开发中的VBA / VB6 IDE的开源插件,包括此功能。
1.3版包含重命名重构:
2.0版(测试版,仍然稳定)包括十几个重构:
实现接口为未实现的接口的所有成员创建存根,因此您无需通过在代码窗格下拉列表中逐个选择它们来手动创建它们: / p>
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
项目的路线图(包括提取方法)中有更多重构工具,您可以在GitHub上查看。
答案 1 :(得分:2)
我在VBA中唯一知道的“重构”工具是Ctrl + F和Ctrl + R.
答案 2 :(得分:2)
我使用V-Tools进行类似重构的工作,因为它会在对象中查找/替换,而不仅仅是VBA代码。 http://www.skrol29.com/us/vtools.php
答案 3 :(得分:2)
是的......几乎是
在过去的好日子里,我使用了这个。 http://www.moshannon.com/speedferret.html
帮了我很多,我觉得我有3.5英寸的磁盘;)
诀窍是将您的Excel代码复制到Access或VB6并在那里进行重构。 替换范围:解决方案是创造性命名和使用替换。 吐痰程序......那就是手册,我很抱歉。
除非你有一些严肃的excel vba代码,否则它通常是不值得的,我会重新将其中的大部分转换为c#或VB.Net dll,在那里你可以进行重构,测试和一些现代魔法,只做你能做的一点点VBA。