word排版

参考

样式

样式基础见word样式

字体大小计算

磅即point的音译,是印刷行业的规范,规定为1英寸打印72个点,即1pt=1/72 英寸=0.3528mm

而1英寸=25.4mm,可计算出字符宽度(cm)= 2.54/72*pt

字号 点数pt 宽度cm
初号 42 1.48
小初 36
一号 26
小一 24
二号 22
小二 18
三号 16
小三 15
四号 14 0.493
小四 12 0.423
五号 10.5 0.37
小五 9
六号 7.5
小六 6.5
七号 5.5
八号 5

计算字体磅值

Sub 计算字体磅值()
    str1 = Selection.Font.Size
    str2 = PointsToMillimeters(str1)
    Count = Selection.Characters.Count
    Application.StatusBar = "选定" & Count & "个文字为:" & "字号" & str1 & "磅 " & str1 * Count & "磅 " & Round(str2 * Count, 4) & "mm"
End Sub

段落格式

编号缩进

编号的缩进只能以厘米计算,不能以字符为单位,输入2字符时,自动修改为0.71厘米,可知是以10pt字体计算的(2.54/72*10*2)。如果此时字体为小四(12pt),对齐就有问题。因此编号的缩进需跟据字号计算距离。

列表样式

列表样式中有一个参数是要在库中显示的级别

题注

来源Word插入题注优化(自动删除标签与编号前的空格,编号后添加空格)

功能:

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

   '功能:自动删除标签与编号间的空格(英文除外),并在题注数字后添加2个空格;适用于: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
      
      '在题注数字后添加2个空格
      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  '定位到段尾回车前
      
      If Lab = "表" Then
        Selection.Style = ActiveDocument.Styles("表头")
      End If

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

目录

如果要自定义目录,选择引用→目录→自定义目录,如下图可进行配置

配置好目录格式后,选择目录,再选择引用→目录→将所选内容保存到目录库即可。

目录样式

自定义目录可以自已修改每一级对应的样式,默认情况下

图片

Word 利用 VBA 批量设置图片格式

Sub setShapeStyle()  
    On Error Resume Next  
    Dim myShape As InlineShape
    
    ' 如果没有名叫“图片”的样式,提示用户创建
    Dim imgStyle As Style, imgStyleName As String
    imgStyleName = "图片"
    Set imgStyle = ActiveDocument.Styles(imgStyleName)
    If imgStyle Is Nothing Then
        MsgBox "请先创建样式【" & imgStyleName & "】"
        Exit Sub
    End If
    
    '关闭屏幕更新,提升执行效率
    Application.ScreenUpdating = False
    
    '遍历所有嵌入式图片
    For Each myShape In ActiveDocument.InlineShapes
        
        With myShape
            ' -------- 设置边框 --------
            .Borders.OutsideLineStyle = wdLineStyleSingle '边框类型
            .Borders.OutsideColorIndex = wdBlack '边框颜色
            .Borders.OutsideLineWidth = wdLineWidth100pt '边框粗细
            ' -------- 设置样式 --------
            If .Type = wdInlineShapePicture Then
                .Range.Style = imgStyleName  '设置图片样式为“图片”
            End If
            ' -------- 设置高宽 --------
            .ScaleWidth = 100  ' 缩放重置为100%
            .ScaleHeight = 100 ' 缩放重置为100%
            .LockAspectRatio = msoTrue  ' 锁定纵横比
            '.Height = 600 ' 600点
            '.Width = CentimetersToPoints(15) '15 CM
            .Width = ThisDocument.PageSetup.TextColumns.Width ' 当前文档宽度
            ' -------- 图片下方插入题注 --------
            .Range.InsertCaption Label:="图:", TitleAutoText:="", Title:="", Position:=wdCaptionPositionBelow, ExcludeLabel:=0
        End With
        
    Next
    
    '开启屏幕更新
    Application.ScreenUpdating = True

End Sub

技巧

工作样式设计

word排版 2023-07-18 10.19.18.excalidraw