VBA批量修改Word文档图片尺寸
(2018-03-09 20:01:25)
标签:
word |
分类: 科研文章 |
按理说需求很常规了,经常碰到从网页中复制下来的文章所带的图片宽度超过A4尺寸。百度经验中有条用宏一次性设置图片尺寸的:https://jingyan.baidu.com/article/92255446885460851648f4f9.html;
我自己也在知乎上写过一条答案,https://www.zhihu.com/question/23242989/answer/140144565,
但先用Python转成HTML操作图片文件后再倒回去简直太麻烦了。刚才研究了上述VBA代码,查下两个概念:
(1)word文档中inlineshape和普通shape有啥区别?
(2)已有Each-Next循环,VB基础语法中If判断与逻辑比较
然后修改如下,只修改超宽的图片到A4,原来的小图尺寸不变。
'===================================
Sub 批量设置图片大小()
'
' Macro 宏
'
'
Myheigth = 20
Mywidth = 18
On Error Resume Next '忽略错误
For Each iShape In ActiveDocument.InlineShapes
If iShape.Width > 28.345 * 18 Then '判断图片是否超宽
iShape.Height = 28.345 * Myheigth '设置图片高度为任意cm
iShape.Width = 28.345 * Mywidth '设置图片宽度
End If
Next
For Each Shape In ActiveDocument.Shapes
If Shape.Width > 28.345 * 18 Then '判断图片是否超宽
Shape.Height = 28.345 * Myheigth '设置图片高度为任意cm
Shape.Width = 28.345 * Mywidth '设置图片宽度
End If
Next
End Sub
===============================
https://www.zhihu.com/question/52908434 这里也有一段可以参考:
Sub 批量图片大小()
Dim iSha As InlineShape
For Each iSha In ActiveDocument.InlineShapes
iSha.Width = CentimetersToPoints(21)
'宽21CM
iSha.Height = CentimetersToPoints(29.7)
'高29.7CM
End If
Next
End Sub
=======================================
参考:
http://www.cnblogs.com/dt520/p/5696836.html
前一篇:[转载]丰县回忆:孩童捕虫记

加载中…