您当前的位置:首页 > 文本与office

word批量设置图片大小和对齐,使用宏定义

时间:03-13来源:作者:点击数:

打开word中开发工具,文件→选项→word选项

在这里插入图片描述

新建Visual Basic文件

在这里插入图片描述

点击 插入→模块

在这里插入图片描述

复制下列任意代码,粘贴到右侧。(注意可以灵活设置Myheigth或者Mywidth)

点击小三角,运行即可。

在这里插入图片描述

如何获取理想的Myheigth或Mywidth,选中一张图片,调节成适合的高度或者宽度,把数值记下来,赋值给Myheigth或Mywidth即可。

在这里插入图片描述

下列代码任选其一,粘贴即可

固定宽度

' 锁定图片的纵横比,固定宽度,高度任意
Sub 批量设置图片大小()

Mywidth = 12     '厘米
On Error Resume Next '忽略错误

For Each iShape In ActiveDocument.InlineShapes
  iShape.LockAspectRatio = msoTrue   '锁定图片的纵横比
  iShape.Width = 28.345 * Mywidth    '设置图片宽度
Next

End Sub

固定高度

' 锁定图片的纵横比,固定高度,宽度任意
Sub 批量设置图片大小()

Myheigth = 18    '厘米
On Error Resume Next '忽略错误

For Each iShape In ActiveDocument.InlineShapes
  iShape.LockAspectRatio = msoTrue   '锁定图片的纵横比
  iShape.Height = 28.345 * Myheigth  '设置图片高度为任意cm
Next

End Sub

固定高度,固定宽度

' 不锁定图片的纵横比,固定高度,固定宽度
Sub 批量设置图片大小()

Myheigth = 18    '厘米
Mywidth = 12    '厘米
On Error Resume Next '忽略错误

For Each iShape In ActiveDocument.InlineShapes
  iShape.LockAspectRatio = msoFalse  '不锁定图片的纵横比
  iShape.Height = 28.345 * Myheigth  '设置图片高度为任意cm
  iShape.Width = 28.345 * Mywidth    '设置图片宽度
Next

End Sub

固定高度,固定宽度,有对话框手动输入

' 不锁定图片的纵横比,固定高度,固定宽度
Sub 批量设置图片大小()

Myheigth = InputBox("输入一个高度值") '厘米
Mywidth = InputBox("输入一个宽度值") '厘米
On Error Resume Next '忽略错误

For Each iShape In ActiveDocument.InlineShapes
  iShape.LockAspectRatio = msoFalse  '不锁定图片的纵横比
  iShape.Height = 28.345 * Myheigth  '设置图片高度为任意cm
  iShape.Width = 28.345 * Mywidth    '设置图片宽度
Next

End Sub

具体讲解,调用了VB的ShapeRange 对象,有很多方法,比如

Sub 批量设置图片大小()
...
End Sub

For Each iShape In ActiveDocument.InlineShapes
iShape.Width = 28.345 * Mywidth    '设置图片宽度为任意cm
...
Next


批量设置图片大小宏,  下面这些注释提供参考,灵活修改
Myheigth = 18    '厘米
Mywidth = 12    '厘米
iShape.Height = 28.345 * Myheigth  '设置图片高度为任意cm
iShape.Width = 28.345 * Mywidth    '设置图片宽度为任意cm
iShape.LockAspectRatio = msoFalse  '不锁定图片的纵横比
iShape.LockAspectRatio = msoTrue   '锁定图片的纵横比

批量设置图片对齐方式

下面代码与大小调节代码不能一起运行,需要单独运行

Sub 批量设置图片对齐方式()
' .Alignment = wdAlignParagraphLeft    '左对齐
' .Alignment = wdAlignParagraphCenter  '居中
' .Alignment = wdAlignParagraphRight   '右对齐

    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find.Replacement.ParagraphFormat
        .SpaceBeforeAuto = False
        .SpaceAfterAuto = False
        .Alignment = wdAlignParagraphRight   '右对齐,可修改为其他
        .WordWrap = True
    End With
    With Selection.Find
        .Text = "^g"
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = True
        .MatchCase = False
        .MatchWholeWord = False
        .MatchByte = True
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
End Sub

参考:

ShapeRange object (Project) | Microsoft Docs

LockAspectRatio

InlineShapes object (Word) | Microsoft Docs

word使用宏定义来统一设置图片大小

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门