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

如何在VB.NET中通过Word VSTO列出撤销记录中的所有项?

在VSTO中获取Word撤销记录的所有项

在Microsoft Word编辑文档时,操作项会被添加到撤销记录中:
Microsoft Word撤销记录示例

需求是通过VSTO列出撤销记录中的所有项,例如上图中的“输入‘abc’”、“增大字号”、“文本填充效果”。目前仅能实现检查撤销栈是否为空的功能,无法获取具体内容。

实现方案

Word对象模型没有直接提供读取撤销栈的API,但可以通过操作标准工具栏的撤销控件来获取列表内容,以下是C#代码示例:

using Microsoft.Office.Interop.Word;
using Microsoft.Office.Tools.Word;

public void RetrieveUndoItems()
{
    Application wordApplication = Globals.ThisAddIn.Application;
    CommandBarControl undoBarControl = wordApplication.CommandBars["Standard"].Controls["撤销"];

    if (undoBarControl is CommandBarPopup undoPopup)
    {
        foreach (CommandBarControl item in undoPopup.Controls)
        {
            // 提取操作描述,剔除快捷键提示(如\tCtrl+Z)
            string undoDescription = item.Caption.Split('\t')[0];
            // 输出或保存撤销项描述
            System.Diagnostics.Debug.WriteLine(undoDescription);
        }
    }
}

注意事项

  • 该方法依赖Word默认的标准工具栏,若用户自定义过工具栏布局或重命名了撤销控件,需要调整控件名称参数。
  • 撤销项的标题会随Word语言版本变化,例如英文环境下控件名称为"Undo",需根据实际环境适配。
  • 连续的同类型操作(如连续输入文字)会被Word合并为单个撤销项,无法拆分获取每一步细节。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 06:15:10