整个Office软件套件可以支持VBA的二次开发。EXCEL最能支持VBA,其次是Word,对PPT的支持不好。

首先,PPT不支持宏动作录制,其次,提供对象的属性成员和成员方法也不足。在提供的帮助文档中,您可以查看以下内容:

现在的任务是为所有幻灯片和每一章中的所有对象统一设置文本和段落格式。

代码逻辑是遍历所有幻灯片和每张幻灯片的形状对象的简单逻辑。

For each oslide in opres.slides.next

For each o shape in oslide.shapes.next

然后将属性应用于每个对象。

只需熟悉相应的对象语法即可。

执行效果:

当然,如果只想设置其中一张幻灯片或其中的第j个对象,可以删除上面代码的两个循环,具体指定幻灯片和第j个对象。

I=oPres。Slides.Count

J=0

指定最后一张幻灯片或指定幻灯片上第一个对象的字体和段落格式

Set oSlide=oPres。Slides.Item(i)

Set oShape=oSlide。S(1)

附件代码1:

Sub allSlideAllShapes()

On Error Resume Next

声明对象和变量

Dim oPres As Presentation

Set oPres=A

Dim oSlide As Slide

Dim oShape As Shape

Dim tr As TextRange

Dim I As Long、j As Long

遍历所有幻灯片和每张幻灯片的形状对象

For Each oSlide In oPres。斯莱德斯

For Each oShape In oSlide。Shapes

“With oShape”设置文本框的宽度和位置。只适用于一个文本框。

如果有多个,则必须注释掉以下三行代码。否则,彼此会重叠

.Left=45

.Top=45

.Width=625

End With

If oS=msoTrue Then

Set tr=oS

With

.NameAscii='宋体'

.NameFarEast='宋体'

.Size=28

.Color。SchemeColor=ppBackground

.color.rgb=RGB (red :=0,绿色:=0,蓝色:=0)

.Bold=msoFalse

End With

设定=1.1 '行距

Set tr=Nothing

End If

“OS”文本框背景色填充幻灯片背景

操作系统。IndentLevel=1

next

next

删除对象

Set oShape=Nothing

Set tr=Nothing

Set oSlide=Nothing

Set oPres=Nothing

End Sub

包含代码2

Sub oneSlideiShape()

声明变量和对象

Dim oPres As Presentation

Set oPres=A

Dim oSlide As Slide

Dim oShape As Shape

Dim tr As TextRange

Dim I As Long、j As Long

I=oPres。Slides.Count

J=0

指定最后一张幻灯片或指定幻灯片上第一个对象的字体和段落格式

Set oSlide=oPres。Slides.Item(i)

Set oShape=oSlide。S(1)

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

.Left=45

.Top=45

.Width=625

End With

设置“If oS=msoTrue Then”字体

Set tr=oS

With

.NameAscii='宋体'

.NameFarEast='宋体'

.Size=28

.Color。SchemeColor=ppBackground

.color.rgb=RGB (red :=0,绿色:=0,蓝色:=0)

.Bold=msoFalse

End With

设定=1.1 '行距

Set tr=Nothing

End If

“OS”文本框背景色填充幻灯片背景

操作系统。IndentLevel=1

删除对象

Set oShape=Nothing

Set tr=Nothing

Set oSlide=Nothing

Set oPres=Nothing

– End –

相关推荐