加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

使用VBA从Excel中建立PowerPoint演示文档

(2010-12-13 19:02:08)
标签:

excel

幻灯片

powerpoint

it

分类: 软件

在《Excel & Access Integration:With Office 2007》的最后一章中,介绍了Microsoft Excel与Word、PowerPoint和Outlook整合的基本技术。其中,介绍Excel和PowerPoint整合技术时,演示了如何在Excel工作簿中创建演示文档,然后使用自动化将其转换为PowerPoint演示文档,如题。
我觉得这是一项非常有用的技术,充分发挥了两种应用程序各自的优点。在Excel工作簿中,每张工作表代表演示文档中的一张幻灯片,在工作表中能够充分利用Excel的数据分析和处理功能生成生动且有意义的图表或表格。然后,将这些工作表转换为PowerPoint幻灯片,从而利用PowerPoint的演示功能。
下面的示例沿用《Excel & Access Integration:With Office 2007》中的示例文档WorkbookToPowerPoint.xlsm,以演示这项技术。在该工作簿中,包含有四张工作表,分别包含四个区域(Asia、South America、United Kingdom、United States)的收入数据以及相应的图表分析(如下图所示)。
http://blog.excelhome.net/UploadFiles/2008-5/59134.08224004.jpg 当然,这些工作表都是设计好了的,与PowerPoint中的幻灯片形式相同,每一张工作表代表一张幻灯片,分别演示一个区域的收入数据及分析情况。下面,我们将这些工作表转换为相应PowerPoint演示文档中的幻灯片。
首先,需要添加对Microsoft PowerPoint ╳╳ Object Library的引用(其中╳╳代表该对象库的版本号),如下图所示。
http://blog.excelhome.net/UploadFiles/2008-5/59283.3490684.jpg

然后,在标准模块中输入下面的代码:
[code]
Sub WorkbooktoPowerPoint()
   
    '声明变量
    Dim pp As PowerPoint.Application
    Dim PPPres As PowerPoint.Presentation
    Dim PPSlide As PowerPoint.Slide
    Dim xlwksht As Excel.Worksheet
    Dim MyRange As String
    Dim MyTitle As String
    Dim SlideCount As Integer
   
    '开启PowerPoint,添加新的演示文档并使其可见
    Set pp = New PowerPoint.Application
    Set PPPres = pp.Presentations.Add
    pp.Visible = True
        
    '设置数据和标题的单元格区域
    MyRange = "A1:I27"
   
    '开始循环每张工作表
    For Each xlwksht In ActiveWorkbook.Worksheets
        '设置每张幻灯片的标题
        MyTitle = xlwksht.Range("C19").Value
        '复制单元格区域为图片
        xlwksht.Range(MyRange).CopyPicture _
        Appearance:=xlScreen, Format:=xlPicture
   
        '统计幻灯片并添加新幻灯片作为下一个可用的幻灯片号
        SlideCount = PPPres.Slides.Count
        Set PPSlide = PPPres.Slides.Add(SlideCount + 1, ppLayoutTitleOnly)
        PPSlide.Select
         
        '粘贴图片并调整其位置
        PPSlide.Shapes.Paste.Select
        pp.ActiveWindow.Selection.ShapeRange.Align msoAlignCenters, True
        pp.ActiveWindow.Selection.ShapeRange.Top = 100
        
        '为该幻灯片添加标题并移到下一张工作表
        PPSlide.Shapes.Title.TextFrame.TextRange.Text = MyTitle
    Next xlwksht
            
    '激活PPT演示文档
    pp.Activate
   
    '释放内存
    Set PPSlide = Nothing
    Set PPPres = Nothing
    Set pp = Nothing
            
End Sub
[/code]

运行WorkbooktoPowerPoint过程后,结果如下图所示:
http://blog.excelhome.net/UploadFiles/2008-5/59459.75640139.jpg

转自http://www.zoyzo.cn/viewthread.php?tid=6206

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有