Ppt可以像在excel和word中一样用VBA操作。

这相当于在Excel中存在父子关系实体,例如ExcelWorkbookWorksheetRange。

Ppt还具有父子关系目标,例如PowerPointpresentationslideshape。

其中PowerPoint代表PPT应用程序,Presentation对象代表所有打开的PPT演示文稿,Slide对象代表演示文稿中的幻灯片。

所有形状构成shapes对象。

所有幻灯片组成幻灯片集合对象。

所有演示文稿都构成了Presentations集合对象。

前面的《PTT VBA统一或指定幻灯片进行文本和段落格式化》不考虑幻灯片的标题和内容的关系,统一格式工作不合适,也不考虑位置。

现在的任务是只考虑一张幻灯片中有一个或两个文本框的情况,设置其他文本和段落的格式,以及合并文本框的放置。

运营效果:

如果不想处理每张幻灯片,而只想操作最后一张幻灯片或指定的幻灯片,则只需删除遍历的代码并指定幻灯片。

For I=1 to opres.slides.count.next

替换为:

I=oPres。Slides.Count

Set oSlide=oPres。Slides.Item(i)

附件代码1:

Sub allSlides1or2shape()

On Error Resume Next

Dim oPres As Presentation

Set oPres=A

Dim oSlide As Slide

Dim oShape As Shape

Dim tr As TextRange

Dim sText As String

Dim I As Long、j As Long

Dim a As Long、b As Long

Dim fjd As Integer

Dimhigh1as integer、high2as integer

每页重复幻灯片

For I=1 To oPres。Slides.Count

Set oSlide=oPres。Slides.Item(i)

Set oSlide=oPres。Slides.Item(i)

Fjd=oSlide。s

请确保每页有一个或两个文本框。

“If fjd=2 Then”两个文本框被设置为标题内容结构。

顶点值较小的文本框仍设置在上面

High1=oSlide。S(1)。Top

High2=oSlide。S(2)。Top

If high1 high2 Then

Set oShape1=oSlide。S(1)

Set oShape2=oSlide。S(2)

Else

Set oShape1=oSlide。S(2)

Set oShape2=oSlide。S(1)

End If

With oShape1

设置文本框的宽度和位置

.Left=45

.Top=45

.Width=625

End With

设置“If oS=msoTrue Then”字体

Set tr=oS

With

.NameAscii='宋体'

.NameFarEast='宋体'

.Size=32

Color。SchemeColor=ppBackground

.color.rgb=RGB (red :=165、green :=42、blue :=42)

.Bold=msoCTrue

End With

Set tr=Nothing

End If

Set oShape1=Nothing

With oShape2

.Left=50

.Top=100

.Width=625

.Tex=1.1

行距设置

End With

If oS=msoTrue Then

Set tr=oS

With

.NameAscii='宋体'

.NameFarEast='宋体'

.Size=28

.Bold=msoCFalse

End With

Set tr=Nothing

End If

Set oShape2=Nothing

Else

单个文本框被设置为内容结构

Set oShape=oSlide。S(1)

With oShape

设置文本框的宽度和位置

.Left=45

.Top=45

.Width=625

.Tex=1.1

行距设置

End With

If oS=msoTrue Then

设置文本框的字体和大小

Set tr=oS

.NameAscii='宋体'

.NameFarEast='宋体'

.Size=28

=10

Set tr=Nothing

End If

Set oShape=Nothing

End If

Set oSlide=Nothing

next

Set oPres=Nothing

End Sub

包含代码2:

Sub oneSlides1or2shape()

On Error Resume Next

Dim oPres As Presentation

Set oPres=A

Dim oSlide As Slide

Dim oShape As Shape

Dim tr As TextRange

Dim sText As String

Dim I As Long、j As Long

Dim a As Long、b As Long

Dim fjd As Integer

Dimhigh1as integer、high2as integer

I=oPres。Slides.Count

Set oSlide=oPres。Slides.Item(i)

Fjd=oSlide。s

请确保每页有一个或两个文本框。

“If fjd=2 Then”两个文本框被设置为标题内容结构。

顶点值较小的文本框仍设置在上面

High1=oSlide。S(1)。Top

High2=oSlide。S(2)。Top

If high1 high2 Then

Set oShape1=oSlide。S(1)

Set oShape2=oSlide。S(2)

Else

Set oShape1=oSlide。S(2)

Set oShape2=oSlide。S(1)

End If

设置“With oShape1”文本框的宽度和位置

.Left=45

.Top=45

.Width=625

End With

设置“If oS=msoTrue Then”字体

Set tr=oS

With

.NameAscii='宋体'

.NameFarEast='宋体'

.Size=32

Color。SchemeColor=ppBackground

.color.rgb=RGB (red :=165、green :=42、blue :=42)

.Bold=msoCTrue

End With

Set tr=Nothing

End If

Set oShape1=Nothing

With oShape2

.Left=50

.Top=100

.Width=625

.设置tex=1.1’行距

End With

If oS=msoTrue Then

Set tr=oS

With

.NameAscii='宋体'

.NameFarEast='宋体'

.Size=28

.Bold=msoCFalse

End With

Set tr=Nothing

End If

Set oShape2=Nothing

“Else”单个文本框设置为内容结构

Set oShape=oSlide。S(1)

“With oShape”设置文本框的宽度和位置

.Left=45

.Top=45

.Width=625

.设置tex=1.1’行距

End With

设置“If oS=msoTrue Then”文本框的字体和大小

Set tr=oS

.NameAscii='宋体'

.NameFarEast='宋体'

.Size=28

=10

Set tr=Nothing

End If

Set oShape=Nothing

End If

Set oSlide=Nothing

Set oPres=Nothing

End Sub

-End-

相关推荐