Vba 调用网络驱动器上另一个宏的Word格式化宏

Vba 调用网络驱动器上另一个宏的Word格式化宏,vba,reference,call,ms-word,Vba,Reference,Call,Ms Word,我已经有了.docm文件,其中嵌入了简单的格式化宏。宏可以工作。但是,我有100多个不同的.docm文件,它们使用基本相同的宏。当我需要更改格式时,我希望将宏放在网络驱动器上稳定位置的单独文本文件中,并使每个.docm文件中的宏代码引用该文本文件,而不是更改所有100+.docm文件上的宏 我尝试了一个callshell(AppName,1)语句,其中AppName包含txt文件的路径,但编译器不能使用冒号 我研究过创建一个宏来更改每个文档中嵌入的其他宏,但由于病毒扫描程序的原因,建议不要这样做

我已经有了.docm文件,其中嵌入了简单的格式化宏。宏可以工作。但是,我有100多个不同的.docm文件,它们使用基本相同的宏。当我需要更改格式时,我希望将宏放在网络驱动器上稳定位置的单独文本文件中,并使每个.docm文件中的宏代码引用该文本文件,而不是更改所有100+.docm文件上的宏

我尝试了一个callshell(AppName,1)语句,其中AppName包含txt文件的路径,但编译器不能使用冒号


我研究过创建一个宏来更改每个文档中嵌入的其他宏,但由于病毒扫描程序的原因,建议不要这样做。

不可能像您想象的那样从文本文件运行宏。(这个主意很酷,但我认为存在安全风险。)

最好将所有宏放在一个模板(dotm)中,并将其放在启动文件夹中。Word加载时,将以“加载项”的形式加载此模板(及其所有功能区自定义项和宏)。(另请参见“开发人员/加载项”对话框,在该对话框中可以管理这些内容。)

通过这种方式,您的代码可以集中管理,但是您必须显式地打开模板才能对代码进行更改。这不能仅在加载的外接程序上完成(只有在Normal.dotm中才可能)


您还可以在此外接程序模板中包含从其他宏调用的宏。这可以使用
Applicaton.Run
方法来完成。

是的,我建议不要编写代码,可以使用and AddIn并将代码保存在AddIn中,然后宏调用AddIn代码,因此在100+中的每一个中都有ADDINFUNCTION(),但在AddIn中,则有ADDINFUNCTION()的代码。谷歌加载项共享Word中的VBA代码,甚至只是加载项Word VBA。希望这有帮助。