搜索你感兴趣的问题
怎样在word里批量修改图片大小
快乐星辰 2024-06-02 12:53:39
推荐回答
快乐星辰 2024-06-07 10:14:34

当一个word文件里有很多张图片时,通过使用vba可以批量将文件中所有图片修改为同样大小,令文件看起来更加整洁有序

操作方法

假设有一个word文件,中间有多张大小不一的图片,需要将其中的图片按比例缩放为一样高或者一样宽。

在菜单栏中选择“开发工具”选项卡,点击“Visual Basic”打开VBA编辑器。

在打开的编辑器中输入以下代码,稍后做详细解释。Sub 设为统一宽度()Dim n '图片个数Dim picwidthDim picheightDim newWidthnewWidth = 300On Error Resume Next '忽略错误For n = 1 To ActiveDocument.InlineShapes.Count 'InlineShapes 类型图片picheight = ActiveDocument.InlineShapes(n).Heightpicwidth = ActiveDocument.InlineShapes(n).WidthActiveDocument.InlineShapes(n).Height = picheight * newWidth / picwidthActiveDocument.InlineShapes(n).Width = newWidthNext nFor n = 1 To ActiveDocument.Shapes.Count 'Shapes类型图片picheight = ActiveDocument.Shapes(n).Heightpicwidth = ActiveDocument.Shapes(n).WidthDebug.Print picheightActiveDocument.InlineShapes(n).Height = picheight * newWidth / picwidthActiveDocument.InlineShapes(n).Width = newWidthNext nEnd SubSub 设为统一高度()Dim n '图片个数Dim picwidthDim picheightDim newHeightnewHeight = 200 '设为统一高度时修改此数值On Error Resume Next '忽略错误For n = 1 To ActiveDocument.InlineShapes.Count 'InlineShapes 类型图片picheight = ActiveDocument.InlineShapes(n).Heightpicwidth = ActiveDocument.InlineShapes(n).WidthActiveDocument.InlineShapes(n).Height = newHeightActiveDocument.InlineShapes(n).Width = picwidth * newHeight / picheightNext nFor n = 1 To ActiveDocument.Shapes.Count 'Shapes类型图片picheight = ActiveDocument.Shapes(n).Heightpicwidth = ActiveDocument.Shapes(n).WidthDebug.Print picheightActiveDocument.InlineShapes(n).Height = newHeightActiveDocument.InlineShapes(n).Width = picwidth * newHeight / picheightNext nEnd Sub

sub后面就是一个过程的名字,想要运行哪个过程,就把活动光标放在哪个过程体里面,或者在右上角选择相应名称的过程。按F5键,或者单击菜单栏上的运行按钮,运行相应过程。

如果运行的是“设为统一宽度”,将得到以下结果。

如果运行的是“设为统一高度”,将得到以下结果。

也可以通过直接设置代码中的ActiveDocument.InlineShapes(n).Height、ActiveDocument.InlineShapes(n).Width、ActiveDocument.InlineShapes(n).Height、ActiveDocument.InlineShapes(n).Width的数值来修改图片,例如“ActiveDocument.InlineShapes(n).Height=200”。但是这样就不是等比例缩放了。

特别提示

运行之前注意选择需要运行的过程

大家都关注
有问题 @爱问
Powered by iask.com