vba批量化调整word的图和图表标题

@vba代码

vba 复制代码
   ' 将图片进行居中操作
Sub ChangePictureFormate()
    Dim oPara As Paragraph
    Dim oRange As Range
    Dim i As Long
    Dim beforeIsPicture As Boolean
    beforesIsPicture = False

    ' 确保文档中至少有图片
    If ActiveDocument.InlineShapes.Count = 0 Then
        MsgBox "没有找到图片。"
        Exit Sub
    End If

    ' 遍历所有段落
    For Each oPara In ActiveDocument.Paragraphs
        ' 检查段落是否包含图片
       
        
'wdAlignParagraphLeft:         左对齐
'wdAlignParagraphCenter: 居中对齐
'wdAlignParagraphRight: 右对齐
'wdAlignParagraphJustify: 两端对齐
'wdAlignParagraphDistribute:分散对齐(文本均匀分布在行的左右两边
           
        
        '所有的图片居右操作
        If oPara.Range.InlineShapes.Count > 0 Then
            oPara.Alignment = wdAlignParagraphRight

        End If
              
    Next oPara
    MsgBox "程序运行完成!"
End Sub
   ' 更改图片标题
Sub ChangePictureLabelFormate()
    Dim oPara As Paragraph
    Dim oRange As Range
    Dim i As Long
    Dim beforeParaIsPicture As Boolean
    beforeParaIsPicture = False

    ' 确保文档中至少有图片
    If ActiveDocument.InlineShapes.Count = 0 Then
        MsgBox "没有找到图片。"
        Exit Sub
    End If

    ' 遍历所有段落
    For Each oPara In ActiveDocument.Paragraphs

        Debug.Print oPara.Range.Text
        Debug.Print beforeParaIsPicture
        If (beforeParaIsPicture = True) Then
           'Debug.Print 1
           oPara.Range.Font.Bold = True
           oPara.Alignment = wdAlignParagraphLeft
        End If
        If oPara.Range.InlineShapes.Count > 0 Then
            '选中下一个自然段
           'Set oRange = oPara.Range
           'oRange.Collapse Direction:=wdCollapseEnd
           'oRange.Move Unit:=wdParagraph, Count:=1
           'oRange.Font.Bold = True
           'MsgBox oRange.Text
           beforeParaIsPicture = True
        Else
            beforeParaIsPicture = False
        End If
    Next oPara
    'MsgBox "程序运行完成!"
End Sub

''对所有的表格进行批量化的操作
Sub ChangeAllTables()
    Dim tbl As Table
    Dim selectionRange As Range
    
    ' 创建一个新的 Range 对象以存储所有表格的合并范围
    Set selectionRange = ActiveDocument.Range
    
    ' 遍历每个表格并扩展选择的范围
    For Each tbl In ActiveDocument.Tables
    
    
        With tbl
            .PreferredWidthType = wdPreferredWidthPercent
            .PreferredWidth = 100
            .Range.Rows.Alignment = wdAlignRowCenter
        End With
        
        For Each Cell In tbl.Range.Cells
            ' 更改单元格内所有文本的字体大小
            
            With Cell.Range
                .Font.Name = "宋体"
                .Font.Name = "Times New Roman"
                .Font.Size = 12 ' 设置为24号字
                .ParagraphFormat.Alignment = wdAlignParagraphRight
            End With
           
        Next Cell
    Next tbl
    
    Debug.Print "所有表格调整完毕"

End Sub

''更改所有表格的图例
Sub SetFontSizeAboveTables()
    Dim tbl As Table
    Dim rng As Range
    
    ' 遍历文档中的所有表格
    For Each tbl In ActiveDocument.Tables
        ' 设置 rng 为表格上方的段落
        Set rng = tbl.Range
        rng.MoveStart wdParagraph, -1 ' 移动到表格的前一个段落
        rng.MoveEnd wdParagraph, 1 ' 种回到表格的结尾
        
        ' 设置上方段落的字体大小为 12
        If rng.Paragraphs.Count > 0 Then
            rng.Paragraphs(1).Range.Font.Size = 28
            rng.Paragraphs(1).Range.Font.Name = "宋体"
            rng.Paragraphs(1).Range.Font.Name = "Times New Roman"
        End If
    Next tbl
End Sub
相关推荐
kiramario11 分钟前
【结束】JS如何不通过input的onInputFileChange使用本地mp4文件并播放,nextjs下放入public文件的视频用video标签无法打开
开发语言·javascript·音视频
土豆儿@41 分钟前
java之泛型
java·开发语言
一川风絮千片雪43 分钟前
【排版教程】如何在Word/WPS中优雅的插入参考文献
word·wps
杜大哥1 小时前
如何在WPS打开的word、excel文件中,使用AI?
人工智能·word·excel·wps
m0_748245341 小时前
python——Django 框架
开发语言·python·django
曼巴UE51 小时前
UE5.3 C++ TArray系列(一)
开发语言·c++·ue5
熬夜苦读学习1 小时前
Linux文件系统
linux·运维·服务器·开发语言·后端
菜鸟一枚在这2 小时前
深度解析建造者模式:复杂对象构建的优雅之道
java·开发语言·算法
阿巴~阿巴~2 小时前
多源 BFS 算法详解:从原理到实现,高效解决多源最短路问题
开发语言·数据结构·c++·算法·宽度优先
青涩小鱼3 小时前
在WPS中设置word的页码不从第一页开始,从指定页开始插入页码
word·wps