Vba 让我开始编程和调试Microsoft Office automation

Vba 让我开始编程和调试Microsoft Office automation,vba,ms-word,ms-office,Vba,Ms Word,Ms Office,我正在使用MicrosoftOffice2003并创建一组模板文档来标准化一些任务。我问了这个问题,但没有得到任何回应,所以我认为这太过于程序化了,希望我在这里会有更好的运气 我需要自动化一个使用大量Office(主要是Word)模板的工作流程。我想要的是在共享驱动器的“My Foo Bar Stuff”中包含“My Template Foo.dot”和“My Template Bar.dot”等,并让用户双击模板以创建新的Foo或Bar 我真正希望的是,用户双击Foo模板,并提示输入与其任务相

我正在使用MicrosoftOffice2003并创建一组模板文档来标准化一些任务。我问了这个问题,但没有得到任何回应,所以我认为这太过于程序化了,希望我在这里会有更好的运气

我需要自动化一个使用大量Office(主要是Word)模板的工作流程。我想要的是在共享驱动器的“My Foo Bar Stuff”中包含“My Template Foo.dot”和“My Template Bar.dot”等,并让用户双击模板以创建新的Foo或Bar

我真正希望的是,用户双击Foo模板,并提示输入与其任务相关的两个项目(例如,项目编号),并在模板中使用脚本更改名称,保存时将默认名称更改为“Foo for project 1234.doc”

我继续问,得到了一个有效的答案……有一段时间。然后,当我双击模板创建新文档时,我的
AutoNew
宏停止启动。我不知道为什么或者如何调试它

在课堂模块/本应用程序中,我有:

Sub AutoNew()
    Dim Project As String
    Project = InputBox("Enter the Project Number")
    ActiveDocument.SaveAs "Project " & Project & " Notes.doc"
End Sub
在Microsoft Word Objects/ThisDocument中,我有:

Private Sub Document_New()

End Sub
我真的不知道为什么或者从哪里来的

在工具/宏安全中。。。我已将安全级别设置为“低”

我是一名软件工程师,有25年以上的工作经验,但拥有完整的办公自动化系统。欢迎使用特定的解决方案和指向“这是如何自动执行Word”常见问题解答的指针。谢谢


更新:如果我创建了一个新模板(新…,空白文档,另存为“My new template.dot”),并插入
AutoNew()
宏,它就会工作。那么是什么阻止它在我现有的模板上工作呢


更新2:从我的旧模板中删除模块和函数并将其添加回工作模式。

检查宏是否仍包含在模板中。这听起来很愚蠢,但对我来说,在Word 2003中,在以下情况下也发生了:

  • 创建包含宏的模板, 一切都好吗
  • 根据创建新文档文件 宏,宏开始了
  • 注意,我可以改进模板 这里和那里有一点,我在 在2)和SaveAs.DOT中创建的文件
  • 宏输入,点不见了
    为什么??因为.DOT中存储的代码不会转到文档文件。

    您可以将模板附加到已保存的文档,以便访问相关模板中包含的宏

    可以使用文档对象(即ActiveDocument)的AttachedTemplate属性执行此操作。 请注意,我自己并没有尝试过这个

    Sub AutoNew()
       Dim Project As String
       Project = InputBox("Enter the Project Number")
       ActiveDocument.SaveAs "Project " & Project & " Notes.doc"
    
       ActiveDocument.AttachedTemplate = "\\path\to\templates\My Template Foo.dot"
    
    End Sub
    


    希望这能有所帮助。

    考虑发布AutoNew宏的代码。我猜是因为它刚与Word中的“autostart”功能断开连接,或者您从Microsoft添加了一些新的安全补丁,阻止宏启动。@Robert-或者有人关闭了模板中的宏,然后将其保存在共享文件夹中的模板上。我见过这种情况太多次了,无法计数。@Justin:如何关闭模板中的宏?这不是一个应用程序选项吗?