如何通过编程判断Word中Modern Comments是否启用及相关检测
判断Word中Modern Comments的启用状态及评论属性检测方案
一、直接检测Modern Comments的全局启用状态
目前无论是VBA还是Office JavaScript API,都没有直接提供读取Word全局Modern Comments启用状态的属性或接口,确实无法直接实现这一检测。Modern Comments的启用逻辑主要和Word版本(如Microsoft 365特定通道)、账户订阅设置绑定,并未暴露为可编程访问的开关。
二、通过评论属性判断是否为Modern Comments添加/编辑
可以通过评论的多个属性或文档结构特征来区分,包括被Modern Comments编辑过的旧版评论:
- Office JavaScript API 直接判断
评论对象的isModern属性会返回布尔值:- 原生Modern Comments创建的评论,该值为
true; - 旧版评论经Modern Comments编辑后,该值也会变为
true。
- 原生Modern Comments创建的评论,该值为
- VBA 中的属性特征
- 旧版评论会关联一个
Shape对象(用于页边悬浮框),而Modern Comments的Shape属性为Nothing; - 被编辑过的旧评论,
LastModifiedTime会更新,同时可通过解析文档的XML内容,找到标记现代评论的<w:modern>节点。
- 旧版评论会关联一个
- OOXML 文档结构分析
解压.docx文件后查看word/comments.xml:- 现代评论节点会包含
<w:modern>标签; - 被Modern Comments编辑过的旧评论,会新增
<w:modern>标签,且w:lastModifiedBy、w:lastModifiedDate字段会更新为编辑者的信息。
- 现代评论节点会包含
- 评论位置特征
Modern Comments嵌入在正文文本流中,旧版评论悬浮在页边。在Office JS中可通过Comment.position属性获取评论在文本流中的位置,旧版评论的位置信息会与现代评论存在明显差异。
内容的提问来源于stack exchange,提问作者Peter Dongan
相关产品推荐
相关产品推荐

