用VBA去操作PowerPoint

1.       获取当前Presenation的名字

Sub NameThisPres()

MsgBox Windows(1).Presentation.Name

End Sub

2.       显示当前Presentation上所有的Placeholder.

Sub EachObject()

Dim oshapes As Object

Dim ph As Object

Dim Oslide As Object

With ActiveWindow.Selection.SlideRange.Shapes

Set Oslide = ActiveWindow.Selection.SlideRange(1)

For Each ph In Oslide.Shapes.Placeholders  '遍历所有其中的元素

MsgBox ph.Name

Next ph

End With

ActiveWindow.S

End Sub

3.       打开一个模板,并进行相应的设置

Presentations.Open FileName:='E:/tempfiles/Tempo.potx', Untitled:=msoTrue    '应用一个模板, 注msoTrue即True.

ActiveWindow.View.GotoSlide Index:=ActivePresentation.Slides.Add(Index:=1, Layout:=ppLayoutTitle).SlideIndex   '添加一个新的slide,并应用新的Layout

ActiveWindow.Selection.SlideRange.Shapes(1).Select '选择第一个元素,也可以用名字来进行填入查找

ActiveWindow.Selection.ShapeRange.TextFrame.TextRange.Select   '选择这个元素的Text.

ActiveWindow.Selection.ShapeRange.TextFrame.TextRange.Characters(Start:=1, Length:=0).Select  '选择一段字

With ActiveWindow.Selection.TextRange   '选择这个字Selection

.Text = 'TTTT of the new presentatioin'   '设置其Text参数

With .Font    '设置这个对象中的各个属性值

.Name = 'Times New Roman'

End With

End With

4.       设置某个PlaceHolder的字体及内容

Sub TestText()

ActiveWindow.Selection.SlideRange.Shapes(2).Select   '选择第二个shape

ActiveWindow.Selection.ShapeRange.TextFrame.TextRange.Select   '选择其字体输入体

ActiveWindow.Selection.ShapeRange.TextFrame.TextRange.Characters(Start:=1, Length:=0).Select  '选择其中的字体

With ActiveWindow.Selection.TextRange  '然后准备在其中进行设置

.Text = 'HHHHHH' + Chr$(CharCode:=11) + 'Secodn' '对上面的这个对象设置内容 Chr()为字符转换方法,其中“$(”处的$值得研究,对其中CharCode:=11,或13是指发出的ASCII为回车符或只是换行符

With .Font   '对上面的对象进行各种设置

.Name = 'Times New Roman'

.Size = 44

.Bold = msoTrue

.Italic = msoFalse

.Underline = msoFalse

'.BaselineOffset = 2

End With

End With

End Sub

5.       插入图片

ActiveWindow.Selection.SlideRange.Shapes.AddPicture(FileName:='E:/tempfiles/clip_image002.gif', LinkToFile:=msoFalse, SaveWithDocument:=msoTrue, Left:=0, Top:=0, Width:=30, Height:=60).Select

分析:

ActiveWindow.Selection.SlideRange 指的是当前的幻灯片,

Left:=0, Top:=0, Width:=30, Height:=60 定位和设置大小

PowerPoint定位并不是用像素来实现的,而是用磅测量屏幕。 如果在屏幕上放置一个图片并且通过选择Format Picture去观察它的位置,那么请注意位置是以英寸来确定的。 这时需要一个翻译对照表来确定把图片放于何处。

如果一个图片,规定它的尺寸为1个单位宽及1个单位高,那么把图片放在屏幕的左上角只需要设置成 Left:=0, Top:=0, Width:=1, Height:=1即可。

如果把图片用如下语句

ActiveWindow.Selection.SlideRange.Shape(“Picture 8”).Select

With ActiveWindow.Selection.ShapeRange

.IncrementLeft 720#

.IncrementTop 540#

End With

则会把图片放在右下角。

其中720磅宽和540磅高,在进行精确定位时,相当于是72磅对应1英尺, 即10:7.5的屏幕,由此也可以知道, 当前的屏幕的比例, 注:不同的屏幕这个值应当不一样.

所以总结前面的例子,要把一个图片导入进来,并让其居中,用如下语句.

ActiveWindow.Selection.SlideRange.Shapes.AddPicture(FileName:='E:/tempfiles/clip_image002.gif', LinkToFile:=msoFalse, SaveWithDocument:=msoTrue, Left:=0, Top:=0, Width:=30, Height:=60).Select

With ActiveWindow.Selection.ShapeRange

.IncrementLeft 360#

.IncrementTop 270#

End With

6.       加入WordArt在当前Presentation.

ActiveWindow.Selection.SlideRange.Shapes.AddTextEffect(msoTextEffect28, 'Cap'n the cat' + Chr$(CharCode:=13) + 'MouseCatcher', 'Impact', 36#, msoFalse, msoFalse, 10, 10).Select

With ActiveWindow.Selection.ShapeRange

End With

7.       设置动画控件

ActiveWindow.Selection.SlideRange.Shapes(2).Select

With ActiveWindow.Selection.ShapeRange.AnimationSettings

.Animate = msoTrue

.EntryEffect = ppEffectFlyFromBottom

.TextLevelEffect = ppAnimateByAllLevels

.AnimateBackground = msoTrue

End With

8.       设置幻灯片的转换

Sub Wipe_Right()

With ActiveWindow.Selection.SlideRange.SlideShowTransition

.EntryEffect = ppEffectWipeRight

.Speed = ppTransitionSpeedFast

.AdvanceOnClick = msoTrue

.AdvanceOnTime = msoTrue

.AdvanceTime = 3

.SoundEffect.Type = ppSoundNone

End With

End Sub

9.       使用控件工具栏

1)         插入一个用户窗体,并命名为UF1.

2)         在这个窗体上添加想要使用的控件。如加入Button, OptionButtion, CheckBox.

3)         并在各个控件上添加相应的响应方法,如下:

Private Sub CheckBox1_Click()

If CheckBox1.Value = True Then

MsgBox 'I hope here is wind'

End If

End Sub

Private Sub CommandButton1_Click()

MsgBox 'I'm pressed'

End Sub

Private Sub OptionButton1_Click()

If OptionButton1.Value = True Then

MsgBox 'I was selected'

End If

End Sub

4)         然后在Presentation上添加一个object以接收动作,并设置其动作选择刚才编辑的宏命令.

5)         然后运行这个Presentation.

10.   使用项目符号

用VBA去改变在给定的页上的或在Slide Master 上的项目符号格式,要完成这个任务,需要把”从直观上看不很明显”的步骤加到代码上, 这个被记录的代码为项目符号返回某个数值, 例如:

.Character = 61646

这个值本身就不是一个很明显的格式。为了真正地访问一个指定项目符号的正确的值,代码需要以它自己的计算机语言把记录的值正确地翻译过来,这种语言对一般的VBA程序员来说可能不太常用,这个正确的字符代码能通过对记录的数字和4095 这个值做一个And操作来获取。

宏记录器为一个项目符号记录下正确的一个5位数字的值,例如.Caracter = 61646,但是, 为了返回待执行的代码,一个含有add操作的附加语句需要被人工加到VBE中。

下面这段代码为一个主页记录正确项目符号点的设置, 并以Wingdings字样把所有的项目符号改变为一个单独的字符。

Sub Format_Bullet()

ActiveWindow.ViewType = ppViewSlideMaster

ActivePresentation.SlideMaster.Shapes(1).Select

ActiveWindow.Selection.ShapeRange.TextFrame.TextRange.Select

With ActiveWindow.Selection.ShapeRange.TextFrame.TextRange.Paragraphs(Start:=1, Length:=1).ParagraphFormat.Bullet

.Visible = msoTrue

.UseTextColor = msoTrue

.Font.Name = 'Wingdings'

.Character = 61646 And 4095

ActiveWindow.ViewType = ppViewSlide

End With

End Sub

11.   宏命令允许被用为定制的工具条按钮进行激活

步骤为:

先建立一个宏

回到Presentation上自定义工具栏,在自定义快速访问工具栏处选择命令:选择宏,并从列表中选择想要运行的宏命令,然后添加并确定。这时回到了Presentation状态,从顶部菜单上,我们就可以看到自定义的工具栏上的工具项。点击它,则会运行对应的宏命令,如同菜单项。

12.   使用组合框

Sub ComboBox()

Dim MyArray(6, 2)

UserForm1.ComboBox1.ColumnCount = 2

MyArray(0, 0) = 'Steve'

MyArray(1, 0) = 'Bill'

MyArray(2, 0) = 'Iveson'

MyArray(3, 0) = 'Joden'

MyArray(4, 0) = 'John'

MyArray(5, 0) = 'Tony'

MyArray(0, 1) = 'Charli'

MyArray(1, 1) = 'Beijing'

MyArray(2, 1) = 'Japan'

MyArray(3, 1) = 'New York'

MyArray(4, 1) = 'Toromne'

MyArray(5, 1) = 'Mactor'

'写入其中的值到List中。

UserForm1.ComboBox1.List() = MyArray

End Sub

'准备显示这个UserForm.

Sub Pres()

UserForm1.Show

End Sub

13.   使用渐变色

Sub Gradation()

With ActivePresentation.Slides(1).Shapes.AddShape(msoShapeRectangle, 0, 0, 400, 80).Fill

.ForeColor.RGB = RGB(128, 10, 10)

.BackColor.RGB = RGB(20, 170, 230)

.TwoColorGradient msoGradientVertical, 1

End With

End Sub

14.   添加一个Shape并设置其中的文字, 设置一个Shape中的格式

Sub Word()

'添加了一个Shape,并设置其中的Text文本

ActivePresentation.Slides(1).Shapes.AddShape(msoShapeRectangle, 140, 140, 250, 140).TextFrame.TextRange.Text = 'I'm a chinese people'

'设置这个Shapez中的Text格式

With Application.ActivePresentation.Slides(1).Shapes(2).TextFrame.TextRange

.Paragraphs(1).Words(2, 5).Font.Bold = msoTrue

.Paragraphs(1).Words().Font.Color.RGB = RGB(255, 255, 0)

End With

End Sub

15.   添加一个Shape,并设置其3D效果

Sub ThreeDFormat()

With ActivePresentation.Slides(1).Shapes.AddShape(msoShapeOval, 140, 140, 140, 140)

With .ThreeD

.Visible = msoTrue

.Depth = 75

.ExtrusionColor.RGB = RGB(255, 255, 0)

End With

End With

End Sub

(0)

相关推荐