word 图 索引


转载请注明出处:博客园【clayyjh】https://www.cnblogs.com/clayyjh/p/15640619.html

本文介绍Word中图的索引的生成和修改,表的索引与此相同,涉及到题注功能,更高级的功能需要用到宏。

1、基础使用

1)新建一个Word,建立“标题1”样式4章,每章插入1个图,每个章标题前用自动编号,编 1 2 3 4.自动编号不要含有中文,否则会造成题注编号章号是中文:图一.1

 

2)在图片下方插入题注

 

如果是图就写图,是表则写表

 

 

 

 然后点击确定,即可生成题注

 

修改题注格式

 

 

 

 但此时发现图后面会自动生成1个空格,这不是我们想要的,可以选择查找替换的方法,也可以采用下文提到的高级方法。

下面生成索引

 

 

 

 

 2)高级做法

为了使得插入题注后图后面的空格,可以采用宏的方式自动删除

1. 开启信任中心,启用宏

2. 将上面的文档另存为.docm使用宏的文档

3. 右键菜单栏,自定义功能区,勾选开发工具

 

4. 添加宏

 

 在本文档对应处,添加一下代码

 

Sub InsertCaption()  '修改系统插入“题注”命令

   '功能:自动删除标签与编号间的空格(英文除外),并在题注数字后添加一个空格;适用于:Word 2003 - 2013,不兼容WPS文字!
  '真正从原理上协同系统插入题注,无任何前提条件;用户照常插入题注即可,甚至感觉不到程序的存在!
   'Endlesswx于2015年8月4日
   
  '另,如果插入的始终未域代码而不是数字,非程序问题,Alt+F9一次即可
   
   Dim Lab As String, startPt As Long, endPt As Long, myrang As Range
   'On Error Resume Next  '发生错误时让程序继续执行下一句代码
'    Application.ScreenUpdating = False     '关闭屏幕更新,2013在此处关闭更新会导致输入框灰色不可选,故修正在调出对话框之后
   
   startPt = Selection.Start  'startPt标注起始点
      
   '***将if条件隐藏隐藏即可实现----手动替换题注空格***
   If Application.Dialogs(357).Show = -1 Then '插入“题注”对话框秀出来,如果按确定结束时执行以下程序,避免按取消后的空格,357也可换成wdDialogInsertCaption
      
      Application.ScreenUpdating = False     '关闭屏幕更新
      
       Lab = Dialogs(357).Label
       endPt = Selection.Start  'endPt标记插入的题注部分终点
      Selection.Start = startPt  '选定插入的整个题注
      
      '删除标签与编号间的空格(英文后的保留)
       With Selection.Find
          .Text = Lab & " "
          .Forward = True   'False=向上查找,(True=向下查找)
          .MatchWildcards = False '不使用通配符
          If Lab Like "*[0-9a-zA-Z.]" Then  '此处判断标签的最后一个字符是否为英文或数字,是则不删除空格
          Else
             .Replacement.Text = Lab
             .Execute Replace:=wdReplaceOne  '替换找到的第一个,此处用作删除空格
             endPt = endPt - 1 '删除空格后,末位减1
             Selection.End = endPt
          End If
       End With
      
      '在题注数字后添加一个空格
      Selection.Fields.ToggleShowCodes  '切换域代码,这样才能用^d查找域
       With Selection.Find
          .Text = "^d"
          .Replacement.Text = "^& "
          .Forward = False   'False=向上查找,(True=向下查找)
          .MatchWildcards = False '不使用通配符
          .Execute Replace:=wdReplaceOne  '替换找到的第一个,此处用作添加空格
       End With
      
      '选定整个插入的题注内容,将域代码切换回来
       endPt = endPt + 1 '增加空格后,末位加1
       With Selection
          .Start = startPt
          .End = endPt
          .Fields.ToggleShowCodes   '切换域代码(切换回来)
       End With
      
      '将光标定位至题注所在段尾处
'       Selection.MoveRight Unit:=wdCharacter, Count:=1  '此句光标返回插入题注前的原始位置,对于已经输好标题的情况并不合适
      '选择段尾回车符
       With Selection.Find
          .Text = "^13"
          .Forward = True   'False=向上查找,(True=向下查找)
          .MatchWildcards = False  '不使用通配符
          .Wrap = wdFindContinue '继续查找
          .Execute
       End With
      Selection.MoveLeft Unit:=wdCharacter, Count:=1  '定位到段尾回车前

   End If
   Application.ScreenUpdating = True          '恢复屏幕更新
   
End Sub

保存,添加题注,可自动去除''图''后的空格

 

 关于Word宏,也可以手动选择录制宏,设定一些快捷键,方便使用

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM