[Word]插入题注时自动删除标签与编号前的空格,编号后添加空格

添加VBA宏代码前后插入题注的效果 2022-12-11

word 插入题注后标签与编号间有一个空格,编号与标题之间没有空格!这显然不符合中文习惯。中文习惯应该是题注的标签与编号间没有空格,编号与标题之间有空格。可通过插入一段VBA宏代码解决这个问题。步骤如下面3个图所示。

Word2019查看宏
新建一个名为InsertCaption的宏
点击编辑打开宏编辑器,复制以下命令后添加至宏代码

复制以下命令后添加至宏代码(word需要启用宏功能)

Sub InsertCaption()
'功能:自动删除标签与编号间的空格,并在题注数字后添加一个空格,即将“图_1”变为“图1_”,“_”表示空格。
'仅用于“图”,其他标签需要修改代码;宏代码在Word 2019上通过测试。
'真正从原理上协同系统插入题注,无任何前提条件;用户照常插入题注即可,甚至感觉不到程序的存在!
'LiangNN 2022年12月11日 参考网络代码,简化修改

Dim startPt As Long, endPt As Long
    startPt = Selection.Start 'startPt标注起始点
    '插入“题注”对话框出来后,选择“图”标签,按“确定”结束则会执行以下程序。不要在对话框里输入标题!否则程序出错
    If Dialogs(wdDialogInsertCaption).Show = -1 And Dialogs(357).Label = "图" Then '数字357同样表示wdDialogInsertCaption对话框
        endPt = Selection.Start 'endPt标记插入的题注部分终点
        Selection.Start = startPt '选定插入的整个题注
        '删除标签与编号间的空格
        With Selection.Find
            .Text = "图 "
            .Forward = True 'False=向上查找,(True=向下查找)
            .MatchWildcards = False '不使用通配符
            .Replacement.Text = "图"
            .Execute Replace:=wdReplaceOne '替换找到的第一个,此处用作删除空格
            endPt = endPt - 1 '删除空格后,末位减1
            Selection.Start = endPt '取消选中,将鼠标移动到编号后面
            Selection.End = endPt
            Selection.TypeText Text:=" " '编号后添加一个空格
        End With
    End If
End Sub

参考网页:[转载][Word]插入题注时自动删除标签与编号前的空格,编号后添加空格 - 知乎 (zhihu.com)

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容