【20240309】WORD宏设置批量修改全部表格格式

WORD宏设置批量修改全部表格格式

  • 引言
    • [1. 设置表格文字样式](#1. 设置表格文字样式)
    • [2. 设置表格边框样式](#2. 设置表格边框样式)
    • [3. 设置所有表格边框样式为075pt](#3. 设置所有表格边框样式为075pt)
    • [4. 删除行](#4. 删除行)

引言

这两周已经彻底变为office工程师了,更准确一点应该是Word工程师,一篇文档动不动就成百上千页,表格图片也是上千个之多,一个个手动该那估计改到归西那天我也改不完,所以顺手梳理了一下宏关于表格字体与边框格式设置的用法,以备后续不时之需。

后面也可能会不定时更新。

1. 设置表格文字样式

javascript 复制代码
// 设置所有文字样式和局部文字样式
Sub EditTablesFont()
'
' 设置所有的表格字体
'
'
For i = 1 To ActiveDocument.Tables.Count
    Dim t As Table
  Set t = ActiveDocument.Tables(i)
  With t
    '断开活动文档的第1个表格的域的链接
    .Range.Fields.Unlink
    '关于字体的各项设置,可以通过录制宏得到
'    Range.Font 属性
'    返回或设置 Font 对象,该对象代表指定对象的字符格式
    With .Range.Font
      .NameFarEast = "仿宋" '中文字体
      .NameAscii = "Times New Roman" '西文字体
      .Size = 10 '字号
      .Bold = False '字形 不加粗
      .Italic = False '字形 不是斜体号
      .ColorIndex = wdBlack '字体颜色
      .Underline = wdUnderlineNone '下划线 无
      .UnderlineColor = wdColorBlack '下划线 颜色
      .EmphasisMark = wdEmphasisMarkNone '着重号
      .StrikeThrough = False '删除线
      .DoubleStrikeThrough = False '双删除线
      .Superscript = False '字体格式 上标
      .Subscript = False '字体格式 下标
      .SmallCaps = False '小型大写字母 字母的形状和大写字母相同但尺寸较小
      .AllCaps = False '全部大写字母 如果为true 字母全部大写
      .Hidden = False '隐藏 如果设置为true,打印的时候看不到
    End With
    With t.Rows(1)
        .Shading.BackgroundPatternColor = -654245991 '设置第一行的背景颜色为淡绿色
        With .Range.Font '设置第一行表头字体格式
            .NameFarEast = "黑体" '中文字体
            .NameAscii = "Times New Roman" '西文字体
            .Size = 10 '字号
            .Bold = False '字形 不加粗
        End With
    End With
  End With
Next i

End Sub;

2. 设置表格边框样式

javascript 复制代码
// 设置所有文字样式和局部文字样式
Sub EditTablesBorders()
'
' 设置所有的表格边框
'
'
    '遍历所有表格
    For Each tbl In ActiveDocument.Tables
        '设置表格顶部和底部边框为1.5
        tbl.Borders(wdBorderTop).LineStyle = wdLineStyleSingle
        tbl.Borders(wdBorderTop).LineWidth = wdLineWidth150pt
        tbl.Borders(wdBorderBottom).LineStyle = wdLineStyleSingle
        tbl.Borders(wdBorderBottom).LineWidth = wdLineWidth150pt
        
        '设置第二行的上下边框为0.75
        tbl.Rows(2).Borders(wdBorderTop).LineStyle = wdLineStyleSingle
        tbl.Rows(2).Borders(wdBorderTop).LineWidth = wdLineWidth075pt
        tbl.Rows(2).Borders(wdBorderBottom).LineStyle = wdLineStyleSingle
        tbl.Rows(2).Borders(wdBorderBottom).LineWidth = wdLineWidth075pt
        
        '遍历表格中除了第一行和最后一行以外的其余行
        For i = 3 To tbl.Rows.Count - 1
            tbl.Rows(i).Borders(wdBorderTop).LineStyle = wdLineStyleNone
            tbl.Rows(i).Borders(wdBorderBottom).LineStyle = wdLineStyleNone
        Next i
        
        '设置第一行下的边框为0.75
        tbl.Rows(1).Borders(wdBorderBottom).LineStyle = wdLineStyleSingle
        tbl.Rows(1).Borders(wdBorderBottom).LineWidth = wdLineWidth075pt
        
        '隐藏表格的列边框
        'For j = 1 To tbl.Columns.Count
            'tbl.Columns(j).Borders(wdBorderLeft).LineStyle = wdLineStyleNone
            'tbl.Columns(j).Borders(wdBorderRight).LineStyle = wdLineStyleNone
        'Next j
        
    Next tbl
 
End Sub

3. 设置所有表格边框样式为075pt

javascript 复制代码
// 设置所有文字样式和局部文字样式
Sub EditTablesBorders2()
'
' 设置所有的表格边框
'
'
    '遍历所有表格
    For Each tbl In ActiveDocument.Tables
    
        For i = 1 To tbl.Rows.Count
            tbl.Rows(i).Borders(wdBorderTop).LineStyle = wdLineStyleSingle
            tbl.Rows(i).Borders(wdBorderTop).LineWidth = wdLineWidth075pt
            tbl.Rows(i).Borders(wdBorderBottom).LineStyle = wdLineStyleSingle
            tbl.Rows(i).Borders(wdBorderBottom).LineWidth = wdLineWidth075pt
        Next i
        
    Next tbl
 
End Sub

4. 删除行

javascript 复制代码
// 设置所有文字样式和局部文字样式
Sub 删除行()

Dim myTab As Table

For Each myTab In ActiveDocument.Tables

    myTab.Rows(1).Delete '删除第一行

Next

End Sub

参考

https://blog.csdn.net/HyEidolon/article/details/134154144

相关推荐
DS随心转APP4 小时前
实测 AI 导出鸭实操效果,依托 AI 直接生成 word 功能横向比对五类导出办法,梳理办公文档转换最优路径
人工智能·ai·word·deepseek·ai导出鸭
AI英德西牛仔1 天前
秘塔 导出word指令之外:AI导出鸭电脑版的底层逻辑与批量交付哲学
人工智能·word·excel·deepseek·ai导出鸭
2601_963906781 天前
[特殊字符] DocxTableExport:一键提取 Word 文档中的表格数据
word·软件需求
yivifu1 天前
解决word文档中行尾中文破折号被分断的问题
word
wujian83111 天前
豆包导出word手机,就用AI导出鸭:一站式批量导出方案深度解析
人工智能·ai·chatgpt·智能手机·word·ai导出鸭
AI导出鸭PC端2 天前
文心怎样生成word文档?一键智能排版,AI导出鸭解决格式错乱痛点
人工智能·ai·word·豆包·deepseek·ai导出鸭
AI导出鸭3 天前
怎么让文心做表格?AI导出鸭苹果版将文心输出的管道表格智能解析为二维结构,一键导出为Excel或Word标准表格
人工智能·chatgpt·word·excel·ai导出鸭
wujian83114 天前
AI手机版怎么直接生成word?用“AI 导出鸭”把碎片时间变成专业文档
人工智能·ai·chatgpt·智能手机·word·ai导出鸭
鲲穹AI种草4 天前
多文档批量整理如何选?多款 Word 处理工具能力客观记录
word·文档处理