利用VBA宏批量解决Word中图片大小、居中设置
需求:经常阅读网上的研报(没钱买排版漂亮的高质量研报),有些需要保存的复制下来到word里,图片很大都超出word的边界了,也没有居中,手工一张张调整不现实,上百页的研报,几十张图片。
解决方案:利用VBA宏批量解决。
第一种方法经过测试,只是前面部分有些,后面部分无效。
Sub setpicsize() '设置图片尺寸 '第一种方法,经测试,文档前面部分图片有效,后面部分无效
'Dim n '图片个数
'On Error Resume Next '忽略错误
'For n = 1 To ActiveDocument.InlineShapes.Count 'InlineShapes 类型 图片
'ActiveDocument.InlineShapes(n).Height = 198.45 '设置图片高度为 7cm
'ActiveDocument.InlineShapes(n).Width = 455 '单位是像素,设置图片宽度 16cm
'Next n
End Sub
第二种方法,经测试,对整篇文档图片有效:
Sub 设置图片格式()
'1.如果图片行间距设置为固定值,那么无论图片设置什么格式,图片嵌入文字会重叠,只显示部分图片。
'2.如果图片超出边界才进行处理,设置全文图片大小不超过某个规格,超过则等比例缩小
Dim picMaxWidth, picMaxHeight, picWith, picHeight As Long
'纸张宽减去左右边距,不用再乘以28.35,已经是像素
picMaxWidth = (ActiveDocument.PageSetup.PageWidth - ActiveDocument.PageSetup.LeftMargin - ActiveDocument.PageSetup.RightMargin)
picMaxHeight = (ActiveDocument.PageSetup.PageHeight - ActiveDocument.PageSetup.TopMargin - ActiveDocument.PageSetup.BottomMargin)
Dim oILS As InlineShape
For Each oILS In ActiveDocument.InlineShapes 'Selection.InlineShapes
If oILS.Type = wdInlineShapePicture Then
oILS.Select
oILS.LockAspectRatio = msoTrue '锁定纵横比,防止默认没有锁定修改了图片变形;不锁定纵横比是msoFalse
Selection.Range.ShapeRange.LockAspectRatio = msoTrue
'MsgBox("图片宽度" & oILS.Width) '测试,提示图片大小以便判断单位'此处单位是像素。
picWidth = oILS.Width
picHeight = oILS.Height
If oILS.Width > picMaxWidth Then
'Word中的尺寸单位默认是cm(厘米),而1cm等于28.35px(像素),由于代码中换算设置的单位是px(像素)。
'所以就用尺寸高度或宽度值乘像素值。即为:7*28.35=198.45;宽度换算方法与此相同。
oILS.Width = Abs(picMaxWidth) '此处单位是厘米。如果Word设置页边距为适中,则中间内容宽17.08CM
'注意:如果此处不设置图片高度,即使锁定纵横比,图片纵横比也会改变,不知道为什么?
oILS.Height = oILS.Width * picHeight / picWidth 'CentimetersToPoints(7)
End If
'可能超过宽度调节后,高度还是超出了
If oILS.Height > picMaxHeight Then
oILS.Height = Abs(picMaxHeight)
oILS.Width = oILS.Height * picWidth / picHeight
End If 'oILS.Range.Select
'Selection.ClearFormatting
'Selection.Range.Paragraphs.Alignment = wdAlignParagraphCenter
With oILS
.Range.ParagraphFormat.Reset
'.Range.ParagraphFormat.LineSpacingRule = wdLineSpaceSingle '单倍行距
.Range.ParagraphFormat.Alignment = wdAlignParagraphCenter '居中
End With
End If
Next
End Sub
上述代码注意两点,一是即使设置了锁定纵横比,如果只设置了宽度或者高度其一,图片依然没有等比例缩小,所以高度和宽度都要设置才行。
二是宽度缩小后,高度仍可能超出页面,所以还需要对高度再检查和缩小一次。
2020/4/19第N次更新。
利用VBA宏批量解决Word中图片大小、居中设置的更多相关文章
- iOS 解决LaunchScreen中图片加载黑屏问题
iOS 解决LaunchScreen中图片加载黑屏问题 原文: http://blog.csdn.net/chengkaizone/article/details/50478045 iOS 解决Lau ...
- 关于Android中图片大小、内存占用与drawable文件夹关系的研究与分析
原文:关于Android中图片大小.内存占用与drawable文件夹关系的研究与分析 相关: Android drawable微技巧,你所不知道的drawable的那些细节 经常会有朋友问我这个问题: ...
- Word 中实现公式居中编号右对齐 -- 含视频教程(9)
1. 两种方法 不管你用「Word 自带公式」还是「Mathtype」,一般来说,Word 中实现公式居中编号右对齐的方法有两种.(1):表格法:(2):制表位. 2. 方法1:表格法 >> ...
- div css 伪类 不固定图片大小 居中, css div 实现三角形
div css 伪类 不固定图片大小 居中 <style> .pic_box{width:300px; height:300px; background-color:#beceeb; fo ...
- 批量解决 word/wps 中公式和文字不对齐的问题
完美解决Word或wps中中公式和文字对不齐的问题 在 word 的各个版本中,当公式和字符同时出现时,尤其是发生公式的拷贝粘贴时,公式往往会出现上飘或下移的情况,这里给出一个简单易行的解决方案: 全 ...
- js生成word中图片处理
首先功能是要求前台导出word,但是前后台是分离的,图片存在后台,所以就存在跨域问题. 导出文字都是没有问题的(jquery.wordexport.js),但是导出图片就存在问题了: 图片是以链接形式 ...
- ueditor粘贴word中图片
最近公司做项目需要实现一个功能,在网页富文本编辑器中实现粘贴Word图文的功能. 我们在网站中使用的Web编辑器比较多,都是根据用户需求来选择的.目前还没有固定哪一个编辑器 有时候用的是UEditor ...
- Ckeditor IE下粘贴word中图片问题
自动导入Word图片,或者粘贴Word内容时自动上传所有的图片,并且最终保留Word样式,这应该是Web编辑器里面最基本的一个需求功能了.一般情况下我们将Word内容粘贴到Web编辑器(富文本编辑器) ...
- 解决Android中图片圆角——.9图
目录: 一.问题概述 二..9图介绍 三..9图制作 1.开发工具 2.打开图片 3.制作图片 4.保存图片 一.问题概述 在html开发中,可以通过设置css的border-radius来设置圆角 ...
随机推荐
- RMAN兼容性列表
Target/Auxiliary Database RMAN Executable Catalog Database Catalog Schema 8.1.7.4 8.1.7.4 >=8.1.7 ...
- 怎样让VMware上的虚拟机ping通外网(图解教程)
近期在实习项目中遇到一个问题. 因測试须要,本人在win7上安装VMWare后在启动两台ubuntuserver.两台主机的网络配置所有採用NAT方式实现连接. 之后一路畅通.主机ping通虚拟机和外 ...
- STM32 mdk软件仿真时过不去时钟的问题
stm32的程序用MDK软件仿真时,由于系统时钟初始化函数里有个等待系统时钟准备好的循环,所以过不去. 设置方式如下:这么设置之后仿真时就可以直接进入main函数了.
- 为训练深度OCR 图像,生成文本图像
https://github.com/Sanster/text_renderer Generate text images for training deep learning ocr model 在 ...
- ubuntu16.4搭建tensorflow环境
1 说明: 本机配置:显卡gtx970,ubuntu16.4.1+cuda8.0+cudnn v5+tensorflow0.11 1. 下载 1.1 系统镜像 由于我尝试了ubuntu14.04,安装 ...
- 关于使用REST API
设计REST API的请求处理部分 REST API功能 通常, 我们希望借助REST API完成以下操作 - 创建一个新记录 - 读取一个list的记录 - 读取指定的记录 - 更新指定记录 - 删 ...
- ps曲线
>>曲线的基本原理. 输入:在坐标的底部横着的是输入,显示的是当前图片上的颜色信息. 输出:竖着的是输出线,使我们调整图片的输出结果. 输入和输出轴上都有一条明暗信息,告诉我们那边是阴影那 ...
- Maven pom.xml 报 Missing artifact jdk.tools:jdk.tools:jar:1.7
linux中用eclipse 新建maven project,pom.xml中报Missing artifact jdk.tools:jdk.tools:jar:1.7 解决方法: 在pom.xml中 ...
- modelsim 保存波形文件
1. do文件记录了仿真的过程和加载的各种库. do文件的保存过程: file——>save format——>D:/modeltech_6.5b/examples/run_wave.do ...
- Mingw opencv Windows下命令行运行
1.下载opencv 2.3 http://sourceforge.net/projects/opencvlibrary/files/ 下个opencv-win版本吧 至于版本号就随意吧,我选的是2. ...