我现在的部分工作是在 Microsoft Office 文档中构建一些动态功能。我发现这样做的唯一方法是通过 VBA - 因此,内置于 Office 文档中的 VBA 编辑器。
VBA 编辑器很糟糕。它缺少现代开发环境需要支持的一百万种不同的功能。但最糟糕的是,我是一个铁杆 Vim 爱好者,而且 VBA 编辑器几乎不比记事本好。
那么:有什么方法可以有效地使用 Vim 进行 VBA 编程吗?当我想尝试时,没有将我的代码从不同的窗口复制粘贴到 VBA 编辑器中吗?
我现在的部分工作是在 Microsoft Office 文档中构建一些动态功能。我发现这样做的唯一方法是通过 VBA - 因此,内置于 Office 文档中的 VBA 编辑器。
VBA 编辑器很糟糕。它缺少现代开发环境需要支持的一百万种不同的功能。但最糟糕的是,我是一个铁杆 Vim 爱好者,而且 VBA 编辑器几乎不比记事本好。
那么:有什么方法可以有效地使用 Vim 进行 VBA 编程吗?当我想尝试时,没有将我的代码从不同的窗口复制粘贴到 VBA 编辑器中吗?
我从未使用过 VBA 编辑器,但这是我用 MS Visual Studio 完成的。(MSVS 的编辑器确实有一些不错的功能,但我仍然更喜欢 vim 进行大多数编辑。)
我在 MSVS 中打开或创建源文件。然后我得到文件的完整路径(通过右键单击选项卡并选择“复制完整路径”),并在不同的窗口中在 vim 中打开相同的文件。
我使用 alt-tab 在 vim 和 MSVS 之间来回切换。当我在 vim 中进行更改时,我使用:w
编写更改,然后 alt-tab 回到 MSVS。MSVS 编辑器注意到磁盘上的文件已更改并提供读取更新版本。
或者,如果我在 MSVS 中更改文件,我写入文件(文件 > 保存 ...),然后 alt-tab 到 vim 并使用:e!
将更新的文件读入 vim 缓冲区。
无需复制粘贴代码,因为两个编辑器都在同一个磁盘文件上运行。我只需要非常小心,不要在不将文件写入磁盘的情况下对 vim 和 MSVS 进行更改。
它很丑陋,并不适合所有人,但它对我有用。也许它会为你工作。
我使用的是 Cygwin,所以它实际上有点复杂;Cygwin 程序,包括 vim,不能识别 Windows 风格的路径。我可以做这个:
vi $(cygpath 'WINDOWS_PATH')
WINDOWS_PATH
从我从 MSVS 获得的完整路径粘贴在哪里。单引号是防止 shell 解释\
字符所必需的。如果您使用的是 Windows 本机 vim,则无需执行此步骤。
这是一个有趣的观点。大约 15 年前我曾短暂使用过 VI,基于此,我认为 VBA 编辑器比 VI(或 VIM?)更适合其用途。VBA 编辑器中是否缺少一项特定功能,从而阻止您有效地使用它来实现其目的(编辑 VBA)?VBA 多年来一直没有得到增强,但事实是它不能被淘汰,因为每个人都觉得它很容易使用。
如果你希望你可以用你喜欢的语言编写一些代码,通过 COM 对象(如果它支持的话)来操作你的 word 文档。然后,您可以从 Word 文档中的简单存根调用您的外部代码。您需要在 Word 文档中绕过一些安全限制。
例如,我可以在 VBScript 或 VBA 或 Powershell 或 .Net 中编写一些代码来操作 word 文档。我可以从一小块 VBA 中调用它(可能附加到标准单词工具栏中的按钮或其他东西)