word中批量修改图片大小
时间:2023-02-27 17:19:50
小一最近在复习高数,复习材料当然是下载的电子版的了,嘿嘿!不过~~这材料居然~~所有复杂的式子都是图片形式的,光是这样小一也就忍了,关键高数 嘛~~式子会比较复杂,这些图片做的又那么小,根本看不清啊!按住Ctrl+滚轮倒是可以放大,但是这样不是很方便,而且~~小一还想打印出来呢,怎么办 呢?总不能一个图片一个图片的修改吧……
声明:小一下面要说的“批量修改word里的图片大小”的方法需要使用到宏,所以~~最好对VB有所了解!当然~~这不是必需的,只要跟着小一的图文教程走,不知道什么是宏,不知道什么是VB也可以!
word批量修改图片大小——固定长宽篇
这部分要说的是把word中的所有图片修改成固定的并且相同的长和宽!
1、打开word,工具-宏-宏(或者直接按Alt+F8)进入宏的界面,如下面所示,输入一个宏名,宏名自己起,能记住就行!
2、宏名起好了,单击“创建”进入Visual Basic 编辑器,输入如下代码并保存
Sub setpicsize() '设置图片大小
Dim n '图片个数
On Error Resume Next '忽略错误
For n = 1 To ActiveDocument.InlineShapes.Count 'InlineShapes类型图片
ActiveDocument.InlineShapes(n).Height = 400 '设置图片高度为 400px
ActiveDocument.InlineShapes(n).Width = 300 '设置图片宽度 300px
Next n
For n = 1 To ActiveDocument.Shapes.Count 'Shapes类型图片
ActiveDocument.Shapes(n).Height = 400 '设置图片高度为 400px
ActiveDocument.Shapes(n).Width = 300 '设置图片宽度 300px
Next n
End Sub
3、返回word,工具-宏-宏(或者直接按Alt+F8),再次进入宏的界面,选择刚才编辑好的宏,并单击“运行”按钮,就可以了!(图片多时,可能会花一些时间)
word批量修改图片大小——按比例缩放篇
这部分要说的是把word中的所有图片按比例缩放!
具体操作同上,只是代码部分稍做修改,代码如下:
Sub setpicsize() '设置图片大小
Dim n '图片个数
Dim picwidth
Dim picheight
On Error Resume Next '忽略错误
For n = 1 To ActiveDocument.InlineShapes.Count 'InlineShapes类型图片
picheight = ActiveDocument.InlineShapes(n).Height
picwidth = ActiveDocument.InlineShapes(n).Width
ActiveDocument.InlineShapes(n).Height = picheight * 1.1 '设置高度为1.1倍
ActiveDocument.InlineShapes(n).Width = picwidth * 1.1 '设置宽度为1.1倍
Next n
For n = 1 To ActiveDocument.Shapes.Count 'Shapes类型图片
picheight = ActiveDocument.Shapes(n).Height
picwidth = ActiveDocument.Shapes(n).Width
ActiveDocument.Shapes(n).Height = picheight * 1.1 '设置高度为1.1倍
ActiveDocument.Shapes(n).Width = picwidth * 1.1 '设置宽度为1.1倍
Next n
End Sub
虽然小一的代码不是好代码,但确实能解决小一的问题,瞬间就把word文档里所有图片放大了1.1倍,各种公式、坐标轴都比原来清楚多了,
自动批量处理Word中图片,主要完成的工作是:重置所有图片,对所有图片做裁剪。代码很简单,但值得记录,以后可以参考。
For Each iShape In ActiveDocument.InlineShapes '1cm = 28.35 pt Dim pic If iShape.Type = wdInlineShapePicture Then iShape.Reset iShape.PictureFormat.CropTop = 1.5 * 28.345 iShape.PictureFormat.CropBottom = 1.5 * 28.345 iShape.PictureFormat.CropLeft = 1.2 * 28.345 iShape.PictureFormat.CropRight = 1.2 * 28.345 End If Next iShape End Sub