ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[分享] 批量设置WORD文件图片大小

[复制链接]

TA的精华主题

TA的得分主题

发表于 2014-5-28 14:48 | 显示全部楼层 |阅读模式
很多朋友都遇到要批量设置图片的问题,这个问题,只能通过VBA来实现。
在网上百度了很久,发现这方面VBA宏也不少,但功能都不灵活,操作不方便,一般有以下不足:
一、只能设置以磅的单位,不符合大家日常工作中以厘米为单位的操作习惯,一下子不知道设置多少磅;
二、图片纵横比锁定时,无法精确设置,比如要设置长6厘米,宽8厘米的图片,最后出来可能是6.01和8,或者7.9和6。
三、都必须在当前文档运行宏,每次要设置都要复制代码到另一个文档 ,不方便。

附件中宏解决了上述不足:
一、可以以厘米设置,长宽值随本人输入;
二、取消纵横比,可以正确设置图片大小;
三、可同时处理多个文档,不必将宏代码复制来复制去;

QQ图片20140528144133.gif


批量设置图片大小.rar (21.55 KB, 下载次数: 152)


TA的精华主题

TA的得分主题

发表于 2014-5-28 18:01 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2014-6-24 13:46 | 显示全部楼层
留名,最近正为这个事情犯愁呢,回家试试在来说体会

TA的精华主题

TA的得分主题

发表于 2014-6-30 16:18 | 显示全部楼层
楼主既然是来共享的,不是来炫耀的吧?设个密码做什么!
能否告诉密码,让我等也学习下?

TA的精华主题

TA的得分主题

发表于 2014-7-11 10:35 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2014-7-15 08:09 | 显示全部楼层
网上找的:
  1. Private Sub CommandButton1_Click()
  2. 'creat by 萧雨 260961242- 2014-05-28
  3. Dim fd As FileDialog, vrtSelectedItem As Variant, wd As Document, p As InlineShape, w, h
  4. Application.ScreenUpdating = False
  5.     Set fd = Application.FileDialog(msoFileDialogFilePicker)
  6. With fd
  7.     .AllowMultiSelect = True
  8.     .InitialFileName = ActiveDocument.Path
  9.     If .Show <> -1 Then
  10.         Application.ScreenUpdating = True
  11.         MsgBox "您没有选择任何文档!", vbOK, "退出"
  12.         Exit Sub
  13.     Else
  14.     w = InputBox("输入要设置的图片宽度(cm)", "输入宽度", 8)
  15.     h = InputBox("输入要设置的图片高度(cm)", "输入宽度", 8)
  16.         For Each vrtSelectedItem In .SelectedItems
  17.             Set wd = Documents.Open(vrtSelectedItem)
  18.              For Each p In wd.InlineShapes
  19.                 p.LockAspectRatio = msoFalse '取消锁定纵橫比
  20.                  p.Width = Round(w / 2.54 * 72 * 4, 0) / 4 '将磅单位转化成厘米
  21.                  p.Height = Round(h / 2.54 * 72 * 4, 0) / 4
  22.              Next
  23.             wd.Close savechanges:=True
  24.             Set wd = Nothing
  25.         Next
  26.     End If
  27. End With
  28. Application.ScreenUpdating = True
  29. MsgBox "图片设置完成!", , "运行完成   @萧260961242"
  30. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2015-7-8 23:39 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
我不是想这样批量改图片,我是想图片插入到word中的时候自动改为我想要的尺寸,而原来的图片尺寸不做改变。可以实现么?

TA的精华主题

TA的得分主题

发表于 2015-7-14 21:47 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-6-2 16:48 , Processed in 0.042301 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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