5

我现在的部分工作是在 Microsoft Office 文档中构建一些动态功能。我发现这样做的唯一方法是通过 VBA - 因此,内置于 Office 文档中的 VBA 编辑器。

VBA 编辑器很糟糕。它缺少现代开发环境需要支持的一百万种不同的功能。但最糟糕的是,我是一个铁杆 Vim 爱好者,而且 VBA 编辑器几乎不比记事本好。

那么:有什么方法可以有效地使用 Vim 进行 VBA 编程吗?当我想尝试时,没有将我的代码从不同的窗口复制粘贴到 VBA 编辑器中吗?

4

2 回答 2

1

我从未使用过 VBA 编辑器,但这是我用 MS Visual Studio 完成的。(MSVS 的编辑器确实有一些不错的功能,但我仍然更喜欢 vim 进行大多数编辑。)

我在 MSVS 中打开或创建源文件。然后我得到文件的完整路径(通过右键单击选项卡并选择“复制完整路径”),并在不同的窗口中在 vim 中打开相同的文件。

我使用 alt-tab 在 vi​​m 和 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,则无需执行此步骤。

于 2012-12-02T23:55:24.810 回答
0

这是一个有趣的观点。大约 15 年前我曾短暂使用过 VI,基于此,我认为 VBA 编辑器比 VI(或 VIM?)更适合其用途。VBA 编辑器中是否缺少一项特定功能,从而阻止您有效地使用它来实现其目的(编辑 VBA)?VBA 多年来一直没有得到增强,但事实是它不能被淘汰,因为每个人都觉得它很容易使用。

如果你希望你可以用你喜欢的语言编写一些代码,通过 COM 对象(如果它支持的话)来操作你的 word 文档。然后,您可以从 Word 文档中的简单存根调用您的外部代码。您需要在 Word 文档中绕过一些安全限制。

例如,我可以在 VBScript 或 VBA 或 Powershell 或 .Net 中编写一些代码来操作 word 文档。我可以从一小块 VBA 中调用它(可能附加到标准单词工具栏中的按钮或其他东西)

于 2012-12-03T01:25:35.703 回答