网上讲 PowerPoint VBA 的很少,但是讲 Excel VBA 的一大堆,由于现版本的 PowerPoint 没有象 Excel 中的宏录制器,所以学习 PowerPoint VBA 编程没有 Excel 直观,很多不懂的代码只有靠搜索或查询 VBA 手册。
其实 Word、PowerPoint、Access 中的 VBA 与 Excel 中大同小异,只是类似“Workbook” 、 “Worksheet” 和 “Range” 等对象不同,另外没有工作表公式等 Excel 独有的功能。不过编程思路都是一样的,如果你学会了 Excel VBA,一边查询微软官方 PowerPoint VBA 参考手册一边就能在 PowerPoint 中写出 VBA 代码。
Excel 和 PPT 对象映射
为了便于理解,将 Excel 和 PPT 中的对象给大家做一个映射:
Workbooks(工作簿集合)<=====> Presentations(演示文稿集合)
Workbook(工作簿)<=====> Presentation(演示文稿)
ActiveWorkbook(活动工作簿)<=====> ActivePresentation(活动幻灯片)
Worksheets(工作表集合)<=====> Slides(幻灯片集合)
Worksheet(一张工作表)<=====> Slide(一页幻灯片)
这个映射关系非常简单非常容易理解。
举个例子
删除 Excel 中的所有单元格注释:
Sub RemoveExcelComments()
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
ws.Cells.ClearComments
Next
End Sub
删除幻灯片中的所有备注:
Sub RemovePPTComments()
Dim sld As Slide
For Each sld In ActivePresentation.Slides
sld.NotesPage.Shapes.Range.Delete
Next
End Sub
大家可以看到,这两个宏,除了对象名称不一样,其他什么都相同,你只要查询下对象手册完全能写出来!所以说如果你学会了 Excel VBA,自然就会 PowerPoint VBA 了。