Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/vb6/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Com 更改Word.Document对象的AttachedTemplate属性会将以前附加的模板置于编辑状态_Com_Vb6_Ms Word - Fatal编程技术网

Com 更改Word.Document对象的AttachedTemplate属性会将以前附加的模板置于编辑状态

Com 更改Word.Document对象的AttachedTemplate属性会将以前附加的模板置于编辑状态,com,vb6,ms-word,Com,Vb6,Ms Word,使用Word Addin,我们希望在打开文档后立即将其附加到特定模板,我们可以通过将文档的属性设置为模板的路径来实现这一点: objDoc.AttachedTemplate = "C:\PathToTemplate\template.dot" 但是,这样做时,以前附加到文档的模板(即normal.dot)将处于编辑状态,如果Word的另一个实例也更改了该普通模板,则Word退出时会提示保存对该模板的更改 非常清楚:如果Word在设置AttachedTemplate属性之前退出,Word不会提示

使用Word Addin,我们希望在打开文档后立即将其附加到特定模板,我们可以通过将文档的属性设置为模板的路径来实现这一点:

objDoc.AttachedTemplate = "C:\PathToTemplate\template.dot"
但是,这样做时,以前附加到文档的模板(即normal.dot)将处于编辑状态,如果Word的另一个实例也更改了该普通模板,则Word退出时会提示保存对该模板的更改

非常清楚:如果Word在设置AttachedTemplate属性之前退出,Word不会提示用户保存对模板的更改。只有设置该属性,才能将(现在未附着的)模板置于编辑状态

在设置AttachedTemplate之前,将Saved属性设置为true

objDoc.AttachedTemplate.Saved = True
…毫无效果

如果在将AttachedTemplate设置为自定义模板之前实例化Word.Template类型对象并将其设置为CustomisationContext属性,然后将该模板对象的saved属性设置为true

Set OldContext = objWord.CustomizationContext
objDoc.AttachedTemplate = "C:\PathToTemplate\template.dot"
OldContext.Saved = True
…然后Word仍会提示用户在退出时将更改保存到normal.dot

这似乎是一个难以解决的问题,因为Word Customization插件在编辑附加模板时,实际上没有在代码中执行任何应该编辑的操作


感谢您提供的所有帮助和建议。

正是
CustomizationContext
导致了此处对normal.dot/normal.dotx的更改-您需要对其进行不同的设置。请参见(特别是菜单、工具栏和键盘的设计时自定义项下的重要框)

正是
CustomizationContext
导致此处更改为normal.dot/normal.dotx-您需要对其进行不同的设置。请参阅(特别是菜单、工具栏和键盘的设计时自定义项下的重要框)

下面的答案是否有助于您回答问题?下面的答案是否有助于您回答问题?