PPT VBA 的学习笔记

PPT VBA 与 Excel VBA 的对比

掌握 VBA 并不是一门业余爱好,而是一种工作能力,才成为职业安全的保障。同时,现代企业业务对 VBA 的解决方案需求巨大, VBA 将增强年轻人的就业竞争力。
PPT VBA 跟 Excel VBA 相比会简单很多,对象模型也没有那么复杂。这是因为在 PPT 里面可以做的事情本身也不复杂。

PowerPoint VBA 可以给我们带来什么?

  • 批处理信息
  • 自动化报告
  • 与数据分析结合的报告报表
  • 动画的自动化生成(如教学动画的自动化生成)
  • PDF 报告的生成
  • 在插件中固化排版的理念
  • 套用 PPT 模板,获得更加丰富的图文文档
  • 节约自己和他人的时间

PowerPoint VBA 共享宏

在 PPT VBA 中,大概有两种方式共享宏,一种是直接导出 .bas 文件, 一种是直接将代码嵌套到文档里面交付给用户

PowerPoint VBA 语法要点

  • 过多使用 Variant 变量会导致代码变得难以阅读和低效,还易产生不可预知的错误

  • VBA 的数组可以动态扩充,而且可以保留原来的数据

  • 数组的复制必须一个个元素的值来复制

  • VBA 提供了collection 对象来定义自己的集合,因为集合是类,而不是数据类型,所以必须建立集合实例,并且在变量中记录对该实例的引用。像其他任何对象一样,当包含其引用的最后一个变量被设置成nothing或不可见时,Collection 对象将被撤销。它包含的所有对象都会被释放。

  • Collection 对象是项目所组成的有序集合,可以把这个集合作为单元来引用。

  • Collection 对象提供了简便的方法,直截了当地将一组相关的项目视为单一对象来引用。

  • 集合中的项目或成员被这样一个事实联系起来:它们都属于这个集合。

  • 集合的成员并不一定是同一种数据类型。

  • Add 添加新成员, Remove 删除成员

  • 集合不用创建新对象或复制现有元素,它在处理大小调整时所用的执行时间比数组小,而数组必须使用 Redim 语句

  • 如果处理较小的,动态的项目集,可能希望使用集合

  • strConv 可以实现字符串和数组之间的相互转换

    '从字符串变为字节
   Private Sub ByteArrayToString()
       Dim MyString As String
       Dim arrByte() As Byte
       
       MyString = "This is a test string."
       arrByte = StrConv(MyString, vbUnicode)
       
   End Sub
   
   Private Sub ByteArrayToString()
   '从字节变成字符串
       Dim MyString As String
       Dim arrByte() As Byte
       
       MyString = StrConv(arrByte, vbFromUnicode)
   End Sub
  • 从文本文件中读取和写入必须经过数据类型转换

  • Rmdir 无法删除包含文件夹和子文件夹的文件夹,而 fso 的 DeleteFolder 方法可以传递一个 true 强行删除文件夹

  • fso 只能建立和读取文本格式的文件,不支持诸如图片之类的二进制文件

  • 对象之间有着明确的关系,这就是对象模型带来的好处

  • 对象模型给出了基于对象程序的结构。通过定义程序中所使用的对象之间的关系,对象模型能够以一种使编程变得更容易的方式来组织对象。

PPT 对象模型里面的对象并不多:
Application
Presentations
Presentation
Slides
Slide
Shapes
Shape

运用 PowerPoint 对象模型中的对象编程,解决 PowerPoint 自动化过程中对象处理的问题,提高工作效率

PPT 和 Excel 不同的地方在于,PPT 在 VBE 里面看不到每个 Slide ,你不可以像往每个 Sheet 添加 代码的方式添加代码到 slide 中

获取选中幻灯片的号码

 
 Private Sub GetSelectedSlideIndex()
    Dim sli As Slide
    Dim SlideIndex As Long
    
    'Set the application window view
    ActiveWindow.ViewType = ppViewNormal
    
    'Get selected slide index
    SlideIndex = ActiveWindow.Selection.SlideRange.SlideIndex
    
    'Get selected slide
    Set sli = ActivePresentation.Slides(SlideIndex)
    
    Set sli = Nothing
 End Sub

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容

  • 自从2014年开通[完美Excel]微信公众号以来,坚持分享已经学习到的Excel和VBA知识和心得,目前已分享文...
    完美Excel阅读 8,286评论 6 69
  • 【引用地址】http://club.excelhome.net/blog-238368-1693.html 一个高...
    whw83阅读 971评论 0 3
  • 一、基础知识:1、JVM、JRE和JDK的区别:JVM(Java Virtual Machine):java虚拟机...
    杀小贼阅读 2,362评论 0 4
  • 1.1 VBA是什么 直到90年代早期,使应用程序自动化还是充满挑战性的领域.对每个需要自动化的应用程序,人们不得...
    浮浮尘尘阅读 21,699评论 6 49
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,082评论 1 32