Word-通过宏格式化文档中的表格和图片

news/2025/9/24 11:13:35/文章来源:https://www.cnblogs.com/yeyuzhuanjia/p/19108805

1、打开Word文档,找到视图。

image

 

2、创建宏脚本

Sub 表格格式化()On Error Resume Next   ' 忽略合并单元格等错误Application.ScreenUpdating = FalseDim tbl As Table, col As ColumnDim counter As Integer: counter = 1Dim response As VbMsgBoxResultDim title As String'' 遍历文档中所有表格For Each tbl In ActiveDocument.Tables'' --- 核心设置 ---'' 1. 表格宽度固定为14.63厘米tbl.PreferredWidthType = wdPreferredWidthPoints      ' 宽度类型tbl.PreferredWidth = CentimetersToPoints(14.63)      ' 表格宽度tbl.Rows.Alignment = wdAlignRowCenter                ' 居中显示tbl.AllowAutoFit = False'' 设置表格宽度为 100%(相对于页面宽度)' tbl.PreferredWidthType = wdPreferredWidthPercent' tbl.PreferredWidth = 100' tbl.Rows.Alignment = wdAlignRowCenter             ' 居中显示' tbl.AllowAutoFit = False' 设置表格所在段落的行距为单倍行距tbl.Range.ParagraphFormat.LineSpacingRule = wdLineSpaceSingle' 设置表格前后段落' Set para = tbl.Range.Paragraphs(1)' With para.Format'     .LineSpacingRule = wdLineSpaceSingle'    .SpaceBefore = 0'    .SpaceAfter = 0' End With' 设置表格行高和居中对齐With tbl.Rows.Height = CentimetersToPoints(1).Rows.HeightRule = wdRowHeightExactly' .Range.Cells.VerticalAlignment = wdCellAlignVerticalCenter   ' 垂直居中' .Range.ParagraphFormat.Alignment = wdAlignParagraphCenter    ' 水平居中End With'' 2. 统一边框设置With tbl.Borders.Enable = True.InsideLineStyle = wdLineStyleSingle.InsideLineWidth = wdLineWidth50pt  ' 内部细线End With'' 3. 首行格式:灰底黑体10号加粗居中Set headerRow = tbl.Rows(1)  ' 获取第一行(标题行)With headerRow.Range.Font.NameFarEast = "宋体"  ' 中文字体.Font.Size = 10.5           ' 字体大小.Font.Bold = True           ' 是否加粗显示.Font.Color = RGB(0, 0, 0)  ' 字体颜色.Shading.BackgroundPatternColor = RGB(242, 242, 242)  ' 浅灰底纹.ParagraphFormat.Alignment = wdAlignParagraphCenter   ' 水平居中.Cells.VerticalAlignment = wdCellAlignVerticalCenter  ' 垂直居中End With'' 4. 设置其他行格式If tbl.Rows.Count >= 2 ThenFor r = 2 To tbl.Rows.CountWith tbl.Rows(r).Range.Font.NameFarEast = "宋体"     ' 中文字体.Font.Color = RGB(0, 0, 0)     ' 黑色字体.Font.Size = 10.5              ' 字体大小.Shading.BackgroundPatternColor = wdColorAutomatic  ' 清除底纹.ParagraphFormat.Alignment = wdAlignParagraphCenter   ' 水平居中.Cells.VerticalAlignment = wdCellAlignVerticalCenter  ' 垂直居中End WithNext rEnd If'' --- 每10个表格提示一次 ---If counter Mod 10 = 0 Thenresponse = MsgBox("已处理第 " & counter & " 个表格" & vbNewLine & _"点击【确定】继续,【取消】中止", _vbOKCancel + vbInformation, "批量进度提示")If response = vbCancel ThenApplication.ScreenUpdating = TrueMsgBox "操作已中止!共完成 " & (counter - 1) & " 个表格", vbExclamationExit ForEnd IfEnd Ifcounter = counter + 1Next tbl'' 收尾处理Application.ScreenUpdating = TrueIf response <> vbCancel ThenMsgBox "操作完成!共处理 " & (counter - 1) & " 个表格", vbInformationEnd IfEnd Sub'' 厘米转磅函数(1厘米=28.35磅)
Function CentimetersToPoints(ByVal cm As Single) As SingleCentimetersToPoints = cm * 28.35
End Function'' 设置图片居中显示,大小调整为页面宽度
Sub 图片格式化()' 声明变量Dim shp As ShapeDim ilshp As InlineShapeDim pageWidth As SingleDim leftMargin As SingleDim rightMargin As SingleDim usableWidth As Single' 关闭屏幕更新以提高宏运行速度Application.ScreenUpdating = False' 设置错误处理,跳过无法处理的图片On Error Resume Next' 计算页面可用宽度(点数)With ActiveDocument.PageSetuppageWidth = .pageWidthleftMargin = .leftMarginrightMargin = .rightMarginEnd With' 计算可用宽度 = 页面宽度 - 左边距 - 右边距usableWidth = pageWidth - leftMargin - rightMargin' 第一部分:处理嵌入型图片For Each ilshp In ActiveDocument.InlineShapesIf ilshp.Type = wdInlineShapePicture Or ilshp.Type = wdInlineShapeLinkedPicture Then' 设置图片宽度为页面可用宽度ilshp.Width = usableWidthEnd IfNext ilshp' 第二部分:处理浮动型图片For Each shp In ActiveDocument.ShapesIf shp.Type = msoPicture Or shp.Type = msoLinkedPicture Then' 锁定纵横比,设置宽度为页面可用宽度shp.LockAspectRatio = msoTrueshp.Width = usableWidthEnd IfNext shp' 完成提示MsgBox "已完成!所有图片已设置为页面宽度。" & vbCrLf & _"页面可用宽度: " & Format(usableWidth, "0.00") & " 点", vbInformation' 重新开启屏幕更新Application.ScreenUpdating = TrueEnd Sub

 

3、运行宏脚本,选中"表格格式化",点击”运行“ 按钮,即可格式化表格。

image

 执行完成后,弹出对话框。

image

 

4、运行宏脚本,选中"图片格式化",点击”运行“ 按钮,即可格式化图片。

image

  执行完成后,弹出对话框。

image

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/915618.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

常用网站建设软件wordpress 幻灯片标签

摘要 本论文主要论述了如何使用JAVA语言开发一个音乐网站与分享平台 &#xff0c;本系统将严格按照软件开发流程进行各个阶段的工作&#xff0c;采用B/S架构&#xff0c;面向对象编程思想进行项目开发。在引言中&#xff0c;作者将论述音乐网站与分享平台的当前背景以及系统开…

有多少个购物网站网站建设与管理模拟试卷

很多媒体大肆宣扬Fortnite和Roblox是元宇宙UGC平台巨头的竞争对手,但实际上它们似乎各自占据了UGC游戏市场的不同部分。对于Fortnite来说,主要是射击游戏;而对于Roblox来说,则是其他所有类型的游戏。 至少在目前,这两个平台在市场定位和用户群体上有着明显的差异,它们的…

徐州企业网站排名优化微信用大型网站站做跳板

本文为第0篇 专栏简介 本专栏是优质Rust技术专栏&#xff0c;推荐精通一门技术栈的蟹友&#xff0c;不建议基础的同学&#xff08;无基础学Rust也是牛人[手动捂脸]&#xff09; 感谢Rust圣经开源社区的同学&#xff0c;为后来者提供了非常优秀的Rust学习资源 本文使用&…

反向代理 traefik - 健康检查

反向代理 traefik 配置end.

一些想法 - CelestialZ

引言 这并不是我开通的第一个博客,我在中学时期也在zhihu、bilibili上记录数学学习经历。我希望这个因辅修cs而创建的博客账号,能记录一些我学习cs的历程。以下是我对后续博客内容的展望,可能与实际情况有出入,可能…

使用 Ansible 批量安装 Docker

使用 Ansible 批量安装 Docker1. 主机列表IP 主机名 内存(GB) CPU核数 磁盘 操作系统 CPU 架构10.0.0.13 arc-pro-dc01 8 1 500GB CentOS 7.9.2009 x86_6410.0.0.14 arc-pro-dc02 8 1 500GB CentOS 7.9.2009 x86_641…

编程规范---日志规范

最近收到邮件,由于我的一个宏,导致某个场景下打印较多,性能下降,项目组再次强制编程规范 1. 之前写的时候,专门问过这个规范-------------缺失官方的,对于允许哪些,不允许哪些,可能导致哪些问题,缺少明确的声…

深入解析:find_code 插件 react_vite

深入解析:find_code 插件 react_vitepre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Mona…

二十一、DevOps:从零建设基于K8s的DevOps平台(二)

二十一、DevOps:从零建设基于K8s的DevOps平台(二) 目录二十一、DevOps:从零建设基于K8s的DevOps平台(二)1、DevOps 平台建设1.1 DevOps 流程1.2 DevOps 平台整体设计1.3 集群规划(学习测试环境)1.4 Harbor 私有…

中电金信:从“通用”到“专用”:加速实现金融行业生成式AI应用的必由之路

9月20日,香江科技论坛暨中国计算机学会(CCF)香港两周年交流活动在香港成功举办。本次活动以“共建香港人工智能协同创新高地”为主题,汇聚了来自CCF、高校、企业及科研机构的百余位专家代表。中国电子首席科学家、…

自动构建高质量测试集

基于文档自动生成 QA 对(文档 - 问题 - 答案三元组)是构建高质量测试集、知识库评估或模型微调数据的核心方法,其核心流程围绕 “文档采样→内容解析→LLM 生成→质量过滤→格式输出” 展开。 一、核心目标与前置准…

SAP BAPI_PR_CREATE 创建采购申请(含自定义字段)

创建采购申请一般有两个函数:BAPI_PR_CREATE 和 BAPI_REQUISITION_CREATE。 使用BAPI_REQUISITION_CREATE创建常规的标准的采购申请比较方便,代码如下FUNCTION ZFM_OA2SAP_CREAT_PR. *"-----------------------…

NCCL论文阅读

NCCL论文阅读 目录NCCL论文阅读前言概述NCCL API多GPU管理数据传输通信通道通信层节点内通信节点间通信底层通信协议集合通信算法算法和协议支持通信原语迭代执行模型执行模型对应GPU架构集合通信算法分析总结 前言 NC…

做商城网站要什么证件上海工程公司排名

项目场景&#xff1a; 表格的部分内容是可以被勾选的&#xff0c;部分内容是不可以被勾选的 使用的是 “element-plus”: “^2.2.22”, 以上应该都是兼容的 问题描述 要求el-table表格中&#xff0c;部分内容不可以被勾选&#xff0c;全选框在没有可选内容时&#xff0c;是禁…

做网站时点击显示长春建设股份有限公司

本文首发于欧雷流。由于我会时不时对文章进行补充、修正和润色&#xff0c;为了保证所看到的是最新版本&#xff0c;请阅读原文。在本系列文章《聊聊前端 UI 组件&#xff1a;组件体系》中初步说明了 UI 组件的架构设计&#xff0c;本文将在此基础上进一步展开说说那篇文章中一…

重庆是哪个省划分出来的运城seo招聘

1、HDFS简介 HDFS&#xff08;Hadoop Distributed File System&#xff09;是Hadoop项目的核心子项目&#xff0c;是分布式计算中数据存储管理的基础&#xff0c;是基于流数据模式访问和处理超大文件的需求而开发的&#xff0c;可以运行于廉价的商用服务器上。它所具有的高容错…

橱柜企业网站模板wordpress搭建文件下载

Mitchell Hashimoto 是一名开源软件工程师。由他托管到 GitHub 上的 开源项目 Vagrant&#xff0c;是一个用于创建和部署虚拟化开发环境的工具。近日&#xff0c;Mitchell撰文讲述了在开发 Vagrant 的过程中学到的有关开源软件开发的一些心得。 以下为原文文章&#xff1a; 把 …

新手项目经理如何选工具?2025年这5款上手快、不复杂的项目管理软件适合你

刚接手项目管理任务?选择一款简单高效的工具能让你快速进入角色。2025年最值得新手项目经理关注的5款软件——禅道、Trello、Asana、ClickUp和Notion,它们以直观界面和核心功能设计脱颖而出:禅道满足全流程管控需求…

用DiskGenius重新分区,检测出U盘虚标容量。

​ U盘虚标容量: 我在PDD买了一个32GB的U盘,我重新分区了一下,发现竟然只有10GB可用,20GB容量虚标。 我把32GB分了6个分区,每个分区5GB,最后只保留下来2个分区。检测U盘是否虚标的方法: 可以用Windows自带的磁盘…

2025低空经济时空信息平台

随着低空经济迈入“基建与产业融合”新阶段,时空信息平台作为低空基础设施的“神经中枢”,正通过架构创新与数据融合技术重塑产业生态。本文将深度解析其核心架构、关键技术及落地路径,为行业提供前瞻性参考。一、战…