怎么用宏代码选中word中所有图片?

在word中设置宏代码选中文档中所有图片,这个vba代码怎么写?图片全是嵌入型,要求是选中所有图片即可,用于随意调整所有的图。

该回答引用ChatGPT
您可以使用以下VBA代码设置宏,以选中Word文档中的所有图片:


Sub SelectAllPictures()
Dim Pic As Shape
For Each Pic In ActiveDocument.Shapes
If Pic.Type = msoPicture Then
Pic.Select
End If
Next Pic
End Sub


请按如下步骤进行操作:

1、打开Word文档。
2、按Alt + F11以进入Microsoft Visual Basic for Applications窗口。
3、在Microsoft Visual Basic for Applications窗口中,单击插入>模块。
4、在模块窗口中,输入以上代码。
5、单击运行按钮或按F5运行代码。
6、返回Word文档,单击宏>SelectAllPictures,您将看到所有图片已被选中。
现在,您可以随意调整所有图片的大小和位置。

您可以使用以下 VBA 代码来选中 Word 文档中所有嵌入式图片:

Sub SelectAllPictures()
    Dim oShape As Shape
    For Each oShape In ActiveDocument.Shapes
        If oShape.Type = msoPicture Then
            oShape.Select msoTrue
        End If
    Next
End Sub


您可以把这段代码复制到 Word 的 VBA 编辑器中(Alt + F11),并在 "模块" 下新建一个模块,然后运行这个代码。这将选中文档中的所有图片,您可以随意调整图片的位置、大小等。

img

ord2007以上版本使用docm格式可以保存宏,保存的时候选择类型为“带宏的word文档”就可以了,不用向下兼容。
不用VBA是无法实现这一功能的,实际上宏只是用代码记录下操作便于重复使用,其实质与作法与VBA没有什么区别。不过,VBA是人工编写代码,宏是自动编写代码而已。
创建宏:
1、
创建新宏。点击工具“开发工具”里的分组“代码”里的“宏”命令代码,在弹出的“宏”对话窗里的“宏名称”下面的文本框里输入宏名称(这里输入“CropPicture”),选择“宏的位置”为当前的文档。最后,点击“创建”命令按钮,会弹出VBA的IDE环境,里面已经给出CropPicture程序的程序头尾。如下:
Sub
CropPicture()
'
'
CropPicture

'
'
End
Sub
2、添加代码
把下面代码里的Sub
CropPicture()与End
Sub之间的代码粘贴到上面提到的代码之间或者直接用下面的代码覆盖上面提到的代码。
'剪切图片
Sub
CropPicture()
Dim
shps
As
InlineShapes,
shp
As
InlineShape
Set
shps
=
ActiveDocument.InlineShapes
'左、右、顶、底边各剪切20磅,根据需要修改就行了。
For
Each
shp
In
shps
With
shp.PictureFormat
.CropLeft
=
20
.CropRight
=
20
.CropTop
=
20
.CropBottom
=
20
End
With
Next
End
Sub
添加热键
点击word文档左上角的Office按钮(logo图标),执行弹出菜单里的“word选项”,会弹出一个对话窗。
在弹出的对话窗里点击左侧导航条“自定义”,点击右侧设置项里的“键盘快捷方式”右侧的“自定义”命令按钮,会弹出“自定义键盘”对话窗。
将“指定命令”的类型选择为“宏”,选择“将更改保存在”右侧的下拉列表,选择为你正在编辑的文档。这时,“宏”列表里会显示当前文档里的所有宏,我们选择“CropPicture”,然后将光标移入“新按新快捷键”文本框,按下“Ctrl+Q”键,点击“指定”命令按钮退出,即可。
调用
按键盘键^q,就可以直接调用宏“CropPicture”,帮你把当前文档里的所有图片向内剪切40磅了。