【发布时间】:2014-06-04 02:50:47
【问题描述】:
有没有办法在 Visual Studio 中编写 VBA 代码。如果没有,还有其他选择吗?
【问题讨论】:
-
Office 中的 VBA IDE。在 Office 应用中按 F11。
-
@tonybd。不确定这是否能回答他的问题。 F11 所做的只是打开 VBE。不是VS。
标签: vba visual-studio excel
有没有办法在 Visual Studio 中编写 VBA 代码。如果没有,还有其他选择吗?
【问题讨论】:
标签: vba visual-studio excel
您能做的最好的事情就是根据自己的喜好调整 Office Visual Basic 编辑器 (VBE) 工具。如果你留在它的原生环境中,你将获得错误检测、智能感知、实时代码运行等的全部功能。
我的建议……
在 VBE 中,转到“工具”>“选项”>“编辑器”选项卡。
关闭“自动语法检查”。您仍然会收到代码突出显示的错误,但不会出现烦人的弹出窗口。
转到编辑器格式选项卡并将字体更改为Consolas (Western),大小为11。
对于代码缩进安装很棒的免费Code Manager。它添加了一些糟糕的键盘快捷键。
将Edit toolbar easily accessible 用于代码注释/取消注释。
使用Rubberduck 添加单元测试、源代码控制、代码检查和重构功能。
通过这些简单的更改,您最终获得了一个体面、有用且键盘友好的环境来编写视觉上吸引人的代码。 :-D
【讨论】:
&,同时按下Alt 键。所以...如果你给它命名Co&mment 那么Alt+M 将注释代码。然后将另一个命名为&Uncomment 和Alt+U 将取消注释代码。不是很好,但总比没有好。
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) 对象。
【讨论】:
VBA code for Excel can only be written inside Excel using the VBA IDE. 不正确。 VBA 可以在任何文本编辑器中编写,并作为 *.bas 和 *.cls 文本文件导入到工作簿的 VBA 项目中。
我自己一直在寻找这个问题的答案。
我发现自己最好的选择是使用您已经编写(或空白)的代码从 Excel 导出模块等,然后将其加载到 Visual Studio 环境中。
它提供的不多,但突出显示的文本和自动缩进很好,与标准 VBA 环境相比,它更易于阅读。
完成后,只需将其重新导入 Excel。
【讨论】:
您当然可以在 Visual Studio 解决方案中添加和编辑 VBA 文件 (.vb),但智能感知将毫无价值/搞砸了。 VScode 的这个扩展可能会提供更好的体验:https://marketplace.visualstudio.com/items?itemName=spences10.VBA
如果您的目标是将您的 VBA 代码公开给源代码管理以便您可以跟踪更改,那么将其包含在您的 Visual Studio 解决方案中仍然是值得的,但只需将该 VBA 代码存储在纯文本文件中,然后使用 Excel interop 将其加载到 excel 工作簿中的相应模块中,例如:
xlWorkbook.VBProject.VBComponents["ThisWorkbook"].CodeModule.AddFromFile(@"C:\PathToYour\VBAcode.txt");
还有其他方法可以删除/替换代码行等......
【讨论】:
有一个 VSCode 扩展可以做到这一点。 它允许您在 VSCode 中编写代码并将其导出到 Excel。 当您使用 VBA 进行开发时,此扩展非常有用。
这里是下载XVBA extension的链接
【讨论】: