前言:今天处理了个word文档,有两个需求,一个比较大众,一个比较小众,问了GPT解决了,记录一下解决思路。
BTW,GPT-4o是真好使啊,我爱这个有AI的新世界
序、怎么用VBA代码
GPT给出这两个问题的解决方案都是用VB代码,所以这里简单讲讲VB代码怎么用
- 打开要处理的word文档
- 按
Alt + F11
打开 VBA 编辑器。 - 在 VBA 编辑器中,选择
Insert > Module
,然后将代码粘贴到模块中。 - 按
F5
运行宏。
问题一、在不改变图片宽高比的情况下统一设置word中所有图片的宽度+居中
GPT给的解决方案是VBA代码,确实VB代码是最方便的
代码如下,自带注释,我就不解释了
Sub ResizeAndCenterAllPicturesToA4Width()
Dim shp As InlineShape
Dim targetWidth As Single
' 设置目标宽度为 451.32 点(159.2 毫米)
targetWidth = 400
For Each shp In ActiveDocument.InlineShapes
' 锁定纵横比
shp.LockAspectRatio = msoTrue
' 设置宽度
shp.Width = targetWidth
' 居中图片
shp.Range.ParagraphFormat.Alignment = wdAlignParagraphCenter
Next shp
End Sub
问题二、提取文中样式并保存为“标题2”
emm,其实这个问题有点小题大做了,直接看看那段是什么样式手动设置也行,但是我脑抽问了GPT,就还是,记录一下吧
依旧是VBA代码,先选中需要提取样式的文本,然后执行这个代码
Sub CopyStyleToHeading2()
' 复制选定文本的样式
Selection.CopyFormat
' 修改标题2样式
With ActiveDocument.Styles(wdStyleHeading2)
.ParagraphFormat.LeftIndent = Selection.ParagraphFormat.LeftIndent
.ParagraphFormat.RightIndent = Selection.ParagraphFormat.RightIndent
.ParagraphFormat.SpaceBefore = Selection.ParagraphFormat.SpaceBefore
.ParagraphFormat.SpaceAfter = Selection.ParagraphFormat.SpaceAfter
.ParagraphFormat.LineSpacingRule = Selection.ParagraphFormat.LineSpacingRule
.ParagraphFormat.Alignment = Selection.ParagraphFormat.Alignment
.Font.Name = Selection.Font.Name
.Font.Size = Selection.Font.Size
.Font.Bold = Selection.Font.Bold
.Font.Italic = Selection.Font.Italic
.Font.Underline = Selection.Font.Underline
.Font.Color = Selection.Font.Color
End With
End Sub