有没有办法在Visual Studio中编写VBA代码。如果没有,还有其他选择吗?
答案 0 :(得分:30)
Excel的VBA代码只能使用VBA IDE在Excel中编写。 VBA项目存储为Excel文件的一部分,无法加载到Visual Studio中。
但是,您可以使用Visual Studio为Excel编写VSTO(Visual Studio Tools for Office)托管加载项。以下MSDN页面涵盖了使用VBA和VSTO进行开发。
您还可以使用VBA的互操作功能来使用您的VBA代码中使用Visual Studio编写的(COM)对象。
答案 1 :(得分:15)
您可以做的最好是根据自己的喜好弯曲办公室Visual Basic编辑器(VBE)工具。如果您留在原生环境中,您将获得错误检测,智能感知,实时代码运行等全部功能。
我的提示......
在VBE中转到工具>选项>编辑标签。
关闭“自动语法检查”'。你仍然会得到代码突出显示的错误,但没有恼人的弹出窗口。
转到“编辑器格式”标签,将字体更改为Consolas (Western)
,尺寸11
。
对于代码缩进安装真棒,免费,Code Manager。它增加了一些生病的键盘快捷键
设置Edit toolbar easily accessible代码注释/取消注释。
使用Rubberduck添加单元测试,源代码控制,代码检查和重构功能。
通过这些简单的更改,您最终会获得一个体面,有用且键盘友好的环境来编写具有视觉吸引力的代码。 :-D
答案 2 :(得分:4)
我自己一直在寻找这个问题的答案。
我发现自己可以选择使用您已经编写过的代码(或空白)从Excel导出Module ect并在Visual Studio环境中加载它。
它没有提供太多,但突出显示的文本和自动缩进很好,与标准VBA环境相比,它更容易阅读。
然后,一旦完成,只需将其导入Excel。
答案 3 :(得分:0)
您当然可以在Visual Studio解决方案中添加和编辑VBA文件(.vb),但智能感知将毫无用处。 VScode 的扩展名可能会提供更好的体验:https://marketplace.visualstudio.com/items?itemName=spences10.VBA
如果您的目标是将VBA代码公开到源代码管理中以便可以跟踪更改,那么仍然值得将其包含在Visual Studio解决方案中,但只需将该VBA代码存储在纯文本文件中,然后使用Excel互操作以将其加载到excel工作簿中的相应模块中,例如:
xlWorkbook.VBProject.VBComponents["ThisWorkbook"].CodeModule.AddFromFile(@"C:\PathToYour\VBAcode.txt");
还有其他删除/替换代码行的方法,等等。