You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerPoint VSTO动态设置评论作者:Office 365登录用户覆盖问题

问题分析

在订阅版Office 365的PowerPoint中,出于账户安全与内容合规的限制,Comments.Add方法的作者参数会被强制忽略,评论作者会自动设为当前登录的Office账户,这就是你的代码在2016版正常、365版失效的核心原因。

解决方案

由于无法直接修改365版PowerPoint评论的作者字段,可采用以下合规替代方案:

  • 方案一:将自定义作者名嵌入评论内容开头
    在评论文本前添加自定义作者标识,让阅读者能直观看到指定的作者信息。修改后的示例代码如下:

    string timestamp = System.DateTime.Now.ToString("yyyyMMddHHmmssFFF") + "_" + subcategoryId;
    // 定义需要显示的自定义作者名
    string customAuthor = "你的指定作者名";
    // 将作者名嵌入评论内容开头
    string commentText = $"[{customAuthor}] {text}";
    Microsoft.Office.Interop.PowerPoint.TextRange rng = Globals.ThisAddIn.Application.ActiveWindow.Selection.TextRange;
    Microsoft.Office.Interop.PowerPoint.Comment comment = Globals.ThisAddIn.Application.ActiveWindow.Selection.SlideRange.Comments.Add(900, 600, timestamp, "", commentText);
    
  • 方案二:使用评论的「备注」字段存储自定义作者名
    利用评论的Notes属性存储自定义作者信息,后续可通过代码读取并展示给用户:

    string timestamp = System.DateTime.Now.ToString("yyyyMMddHHmmssFFF") + "_" + subcategoryId;
    string customAuthor = "你的指定作者名";
    Microsoft.Office.Interop.PowerPoint.TextRange rng = Globals.ThisAddIn.Application.ActiveWindow.Selection.TextRange;
    Microsoft.Office.Interop.PowerPoint.Comment comment = Globals.ThisAddIn.Application.ActiveWindow.Selection.SlideRange.Comments.Add(900, 600, timestamp, "", text);
    // 将自定义作者名存入评论的备注字段
    comment.Notes = customAuthor;
    

    若需要展示自定义作者,可通过读取comment.Notes的值,配合UI逻辑呈现给用户。

注意事项

订阅版Office 365的这一限制是官方设计,目前没有合法途径绕过该限制直接修改评论的作者字段,上述方案为合规范围内的可行替代实现方式。

内容的提问来源于stack exchange,提问作者DKS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 06:09:20