在word里保存比较大的图片,都大得超出了word的边界了,也没有居中,数量又多,不可能手动一张张调整。

第一种方法经过测试,只是前面部分有效,后面部分无效。

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 InlineShapeFor Each oILS In ActiveDocument.InlineShapes 'Selection.InlineShapesIf oILS.Type = wdInlineShapePicture ThenoILS.SelectoILS.LockAspectRatio = msoTrue '锁定纵横比,防止默认没有锁定修改了图片变形;不锁定纵横比是msoFalseSelection.Range.ShapeRange.LockAspectRatio = msoTrue'MsgBox("图片宽度" & oILS.Width) '测试,提示图片大小以便判断单位'此处单位是像素。picWidth = oILS.WidthpicHeight = oILS.HeightIf 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 ThenoILS.Height = Abs(picMaxHeight)oILS.Width = oILS.Height * picWidth / picHeightEnd If'oILS.Range.Select'Selection.ClearFormatting'Selection.Range.Paragraphs.Alignment = wdAlignParagraphCenterWith oILS.Range.ParagraphFormat.Reset'.Range.ParagraphFormat.LineSpacingRule = wdLineSpaceSingle '单倍行距.Range.ParagraphFormat.Alignment = wdAlignParagraphCenter '居中End WithEnd IfNext
End Sub

上述代码注意两点,一是即使设置了锁定纵横比,如果只设置了宽度或者高度其一,图片依然没有等比例缩小,所以高度和宽度都要设置才行。

二是宽度缩小后,高度仍可能超出页面,所以还需要对高度再检查和缩小一次。

VBA操作WORD(五)批量调整图片大小、居中设置相关推荐

  1. Word中批量调整图片大小

    当一个文档中图片较多,又需要调整图片大小时,这时可以通过"宏"执行代码来批量调整. 打开一个Word文档. "Alt+F8"键打开宏. 设置"宏名&q ...

  2. 在WORD中批量修改图片大小

    今天在word中批量修改图片时发现了word一个强大的功能,不多说废话,直接附上步骤: 1.首先按一定的顺序将图片插入word当中: 2.点击"视图"----"宏&quo ...

  3. wps 批量调整图片大小 宏

    1 Sub 批量调整图片大小() 2 ' 3 ' 批量修改图片 Macro 4 ' 宏由 zxz 录制,时间: 2014/10/29 5 '批量调整图片大小,避免图片太大显示不完全 6 7 '循环图片 ...

  4. 步骤条自定义图片_小技巧丨如何使用word批量调整图片大小?

    导Lead语 不知道你们有没有遇到需要批量修改图片尺寸的难题?那么,在大量图片的前提下,如何才能快速修改呢? 今天就和大家分享一下我当初的解决方法: 1F在word中添加 选择多个对象功能 新建一个W ...

  5. Linux中如何使用gThumb批量调整图片大小

    2019独角兽企业重金招聘Python工程师标准>>> 由于主要步骤都以 gThumb 为中心,所以请先确保你在系统中已经安装了该应用.如果没有,可以自行在 Ubuntu Softw ...

  6. Excel批量调整图片大小适应单元格且整齐排列

    如下图所示,图片大小不一样,位置不一样,如何快速的把这些图片调整为指定大小,调整到指定单元格,统一整齐排列呢 (方方格子插件) 1.首先呢我们先选择其中一个图片 2.然后呢我们Ctrl+A选中所有图片 ...

  7. 如何在word中批量修改图片大小

    在将文件夹中的图像复制到word中时发现,图像右侧显示不全,需要对图像尺寸进行设置 1.直接按[Alt+F8]打开 "宏"对话框,在"宏名"文本框中输入宏名称& ...

  8. EXCEL如何批量调整图片大小?

    1.如下图,Excel文件中有多张图片,现在想要将这些图片批量调整大小. 2.首先我们点击[图片工具] 3.点击[图片大小位置] 4.勾选[指定]并设置图片大小 ​ 5.最后点击[确定]即可完成 ​ ...

  9. word宏命令批量修改图片大小

    利用宏命令,解锁纵横比,批量修改成想要的图片大小 代码如下: Sub 批量修改图片尺寸() ' ' 批量修改图片尺寸 宏 ' ' Dim Shap As InlineShape For Each Sh ...

  10. word批量调整图片大小

    1.新建一个空白word文档 2.选中一组图片(177张),按下ctr+c复制 3.将这组图片复制到word中. (本来我们的图片在文件夹中的时候是排好序且是正序的,可是粘贴到word这里好像变成乱序 ...

最新文章

  1. 【Groovy】字符串 ( 字符串注入函数 | asBoolean | execute | minus )
  2. xxxx无法转换为java.lang.Class<? extends javax.validation.Payload>
  3. 英语阅读计算机病毒是指,2016年职称计算机考试真题及答案
  4. 哪所985计算机专业招文科,4张表看透36所985大学自主招生专业
  5. SET NOCOUNT
  6. Java 程序设计基础(第四版)上
  7. Redis单机数据库实现
  8. 当代计算机网络技术带来的影响,浅析当代网络技术
  9. vue Fullcalendar鼠标放上展示悬浮框 (tippyjs插件的简单使用)
  10. JNI_编程技术__网文整理(中)
  11. [附源码]计算机毕业设计JAVAst音乐网站
  12. (一)使用 Sliced Sprite 制作 UI 图像
  13. vue大屏可视化自适应完美方案
  14. 2020学期学习计划
  15. android 驾考宝典,android 仿驾考宝典
  16. 仿京东流水布局实现技术基础 (初学者参考版)
  17. IOS根据两个经纬度计算相距距离
  18. 使用minifabric工具部署一个fabric网络
  19. 抖音创作规范_抖音内容规范,运营抖音的十五条经验
  20. excel-wps数据的去重、拆分、排序、筛选

热门文章

  1. 用二分法求下面方程在(-10,10)的根:2x3-4x2+3x-6=0
  2. Linux 根分区扩容
  3. zoj3869 Ace of Aces zoj3880 Demacia of the Ancients(水)
  4. matlab里用多边形裁剪图片,多边形裁剪图片与自定义 Gizmo Cocos Creator
  5. 修改PPT文档属性工具使用教程
  6. mysql 参数set_MySQL--mysqldmp命令参数set-gtid-purged
  7. MySQL报错:ERROR 3546 (HY000): @@GLOBAL.GTID_PURGED cannot be changed: the new value must be a superset
  8. 使用wps把word格式文件转换成pdf文件
  9. 阿里云怎样保障客户网络和数据安全的?
  10. Charles配合手机模拟器抓取APP数据包教程