相关文章推荐
慈祥的佛珠  ·  Android Studio ...·  1 年前    · 
另类的饼干  ·  How to implement a ...·  1 年前    · 

保持图片原始比例(锁定横纵比例)的情况下,批量调整为适应页面尺寸的图片大小。

LockAspectRatio - 锁定横纵比例, MsoTrue if the specified shape retains its original proportions when you resize it. MsoFalse if you can change the height and width of the shape independently of one another when you resize it. Read/write MsoTriState.

wdInlineShapeLinkedPicture - 嵌入式连接图片(一般浏览器复制过来的图片类型)

wdInlineShapePicture - 嵌入式图片

0x01 使用宏

P.S. 2019.8.8 更新代码
代码如下:

Sub ResizePhotos()
Dim Shap As InlineShape
Dim maxWith
maxWith = CentimetersToPoints(16.79)
For Each Shap In ActiveDocument.InlineShapes
    Debug.Print Shap.Type; "Shap.Type"; wdInlineShapePicture
    If (Shap.Type = wdInlineShapeLinkedPicture) Or (Shap.Type = wdInlineShapePicture) Then
        If Shap.Width > maxWith Then
            ' Shap.LockAspectRatio = msoTrue
            Debug.Print "before width: "; Shap.Width
           Debug.Print "before Height: "; Shap.Height
           oW = Shap.Width
           oH = Shap.Height
           aspect = oH / oW 'aspect ratio
           nH = aspect * CentimetersToPoints(16.79) 'new width
           Shap.Width = CentimetersToPoints(16.79)
           Shap.Height = nH
           Debug.Print "after width: "; Shap.Width
           Debug.Print "after Height: "; Shap.Height
        End If
    End If
End Sub

其中, 16.79 为厘米单位的A4页面宽度,CentimetersToPoints为厘米转像素的函数

1. 打开隐藏的宏工具

点击左上角的文件-选项-自定义功能区,勾选左侧的"开发工具"
在这里插入图片描述
此时,文档功能区出现开发工具
在这里插入图片描述

2. 创建宏函数

点击宏,或者使用快捷点Alt + F8,打开宏管理,创建名为ResizePhotos的宏函数
在这里插入图片描述
复制粘贴代码即可
在这里插入图片描述

运行宏函数

方法一、 在编辑窗口按F5即可
在这里插入图片描述
方法二、在管理窗口选中函数,点击运行
在这里插入图片描述

0x02 使用F4重复上一次action

  1. 右击第一幅图片,打开"设置大小与位置"
  2. 调整宽度到16.79厘米,确定
    在这里插入图片描述
  3. 点击下一张图片,按F4键,图片即可被修改(MAC 使用command + Y)
  4. 依次修改后面的图片即可

0x03 Tips

  1. 宏自带纵横比锁定变量,但是设置为True时,并没有生效,所以自己算了一遍
  2. 图片的类型需要注意,不确定的时候可以打印出来
  3. 宏是vb语言,之前没学过,但是上手还蛮快的

0x04 参考文献

https://superuser.com/questions/940771/how-can-i-resize-multiple-images-in-a-ms-word-document
https://zhuanlan.zhihu.com/p/42588748
https://answers.microsoft.com/en-us/office/forum/office_2010-word/creating-a-macro-for-resizing-several-photos-in/b251f117-8d17-4522-bac4-d128c32587ba
https://docs.microsoft.com/en-us/office/vba/api/word.wdinlineshapetype

0x00 前言保持图片原始比例(锁定横纵比例)的情况下,批量调整为适应页面尺寸的图片大小。名词LockAspectRatio - 锁定横纵比例, MsoTrue if the specified shape retains its original proportions when you resize it. MsoFalse if you can change the height an... 将PPT所有幻灯片导出保存为图片,然后,把所有图片都插入到word中, 然后到打印店把word文档打印出来便于平时浏览(特别是期末考试的时候), 但是,插入的图片占用面积太大导致word文档页数太多, 所以需要批量修改图片的大小。 MS Word中的宏定义,使用的是VB语言 作者这里演示,使用的是2013版的 MS Word 视图-宏-查看宏(或者直
偶然发现这个黑科技,word 居然可以写特么代码(宏 + VBA) 宏是什么鬼 玩过魔兽世界的小伙伴们指定不会陌生,那特么VBA是什么鬼,翻译成中文就是Visual Basic for Applications(VBA)是Visual Basic的一种宏语言 由于微软Office软件的普及,人们常见的办公软件Office软件中的Word、Excel、Access、Powerpoint都可以利...
1. 打开Word文档,点击“开始”选项卡下的“编辑”组,然后选择“替换”; 2. 在“查找”一栏中输入要修改的字体名称,例如Cambria或Times New Roman; 3. 在“替换为”一栏中输入要修改为的字体名称,例如Arial或Calibri; 4. 点击“更多”按钮,然后选择“格式”下拉菜单中的“字体”选项; 5. 在弹出的“字体”对话框中选择要修改的字体,然后点击“确定”; 6. 点击“全部替换”按钮,Word将会自动批量修改Mathtype字体。 需要注意的是,Mathtype字体与正文文本字体是分离的,因此需要单独编辑Mathtype公式,修改字体。具体来说,在Mathtype公式编辑器中,选择要修改的公式,然后依次点击“样式”、“字体”、“更改字体”,即可选择要修改为的字体。对于大量Mathtype公式的文档,也可以通过Mathtype软件的宏功能实现批量修改字体。 错误:UnicodeWarning: Unicode equal comparison failed to convert both arguments to Unicode的解决方案 35298