ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 20269|回复: 21

[求助] 批量修改word图片大小!

[复制链接]

TA的精华主题

TA的得分主题

发表于 2006-8-11 09:42 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

我找到这个代码:

但有点错误,因为我现在急用,当对VEA不是太熟悉!

所以请高手帮我看看,写个直接正确的上来,我先用下,谢谢了!

Sub kk() Dim a As InlineShape For Each b In ActiveDocument.InlineShapes '(在其中循环) a.Width = 126.4 '宽为126.4 a.Height = 126.4 Next End Sub

我的图片是防放在固定表格大小里的,要更改图片符合那个表格大小!

TA的精华主题

TA的得分主题

发表于 2006-8-11 09:56 | 显示全部楼层
Sub kk()
Dim a As InlineShape
For Each a In ActiveDocument.InlineShapes   '(在其中循环)
a.Width = 126.4
a.Height = 126.4
Next
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-8-11 10:02 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

Sub Macro1()

    Selection.InlineShapes(1).Height = 43.95
    Selection.InlineShapes(1).Width = 85.05

End Sub

这个是选择的一个图片后更改,现在只要改成是循环到所有的图片就可以了!

Sub kk() Dim a As InlineShape For Each b In ActiveDocument.InlineShapes '(在其中循环)

上面的这个b 是干什么用的呀?

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-8-11 10:04 | 显示全部楼层

Dim a As InlineShape
For Each a In ActiveDocument.InlineShapes   '(在其中循环)

哦,是从这个分开的呀!谢谢了,试试,万分感谢!

以后还要努力学习~~~呵呵,平时看了一点,用的时候,就蒙了!

TA的精华主题

TA的得分主题

发表于 2006-10-29 16:55 | 显示全部楼层

怎样批量缩小图片到原图的1/2

Sub 缩小()
Selection.InlineShapes(a).Height = Selection.InlineShapes(a).Height / 2
Selection.InlineShapes(a).Width = Selection.InlineShapes(a).Width / 2
End Sub

这个只能单张缩小啊

 a.Width = 126.4
a.Height = 126.4

126.4的单位是什么?像素?怎么换算?

[此贴子已经被作者于2006-10-29 17:08:51编辑过]

TA的精华主题

TA的得分主题

发表于 2006-10-29 17:17 | 显示全部楼层
QUOTE:
以下是引用wp1118在2006-10-29 16:55:40的发言:

怎样批量缩小图片到原图的1/2

Sub 缩小()
Selection.InlineShapes(a).Height = Selection.InlineShapes(a).Height / 2
Selection.InlineShapes(a).Width = Selection.InlineShapes(a).Width / 2
End Sub

这个只能单张缩小啊

 a.Width = 126.4
a.Height = 126.4

126.4的单位是什么?像素?怎么换算?


你的图片是嵌入式图形吗?

126.4单位是磅,可以通过函数换算。

TA的精华主题

TA的得分主题

发表于 2007-3-18 11:59 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
pixles像素,和磅如何换算,函数如何用?谢谢!

TA的精华主题

TA的得分主题

发表于 2011-2-17 14:59 | 显示全部楼层
很好,这段代码正是我所要的,谢谢润彩绘真
我把这段代码修改了一下,只修改一处就OK了
Sub 批量统一调整图片大小()
  Dim iShape As InlineShape, WidthNum As Long
  For Each iShape In ActiveDocument.InlineShapes
    With iShape
    WidthNum = .Width
    c = 10         '在此处修改相片宽,单位厘米
   .Width = c * 28.35
   .Height = (c * 28.35 / WidthNum) * .Height
    End With
     Next
  End Sub
不知道能否加入inputbox输入窗口?本人试了一下,不成功,需要反复输入数值。

[ 本帖最后由 szqhb 于 2011-2-17 15:12 编辑 ]

TA的精华主题

TA的得分主题

发表于 2011-2-17 13:27 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
Sub 调整图片大小()
  Dim iShape As inlineshape, WidthNum As Long
  For Each iShape In ActiveDocument.InlineShapes
    With iShape
      WidthNum = .Width
      .Width = 10 * 28.35
      .Height = (10 * 28.35 / WidthNum) * .Height
    End With
     Next
  End Sub
注:1厘米=28.35磅值
  以上为同比例缩放的近似算法

TA的精华主题

TA的得分主题

发表于 2011-2-16 15:12 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
2楼这段代码有用,做个记号先
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-24 03:34 , Processed in 0.053051 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表