使用Excel 2013的PowerPoint 2013中的VBA Pulse动画

技术

我希望我在正确的SE中。我发现的帖子指示我在此处发布。

BLUF:我正在尝试使用if / else语句在PowerPoint中的特定对象上应用/删除脉冲动画。

背景:该代码存在于excel文档中,因为我将其用作简单的基本图形防火墙,以防止员工弄乱幻灯片。我需要一个实时更新的文档,该文档可将信息推送到正在运行的PowerPoint幻灯片中,并更新有关特定站点状态的状态(向上或向下)的文本。我做了一个简单的上/下按钮,该按钮仅在单元格中的UP / DN之间切换,并将其馈送到其他单元格中以确定如何处理数据。宏按钮将运行代码并更新PowerPoint上的文本。

好消息:除了动画之外,一切都很好。PowerPoint运行时,文本会更改(单词和颜色),并且锁定Excel文档可防止员工弄乱任何设置。

有问题的代码的主要部分:

For Each c In Sheet1.Range("a2:a" & Sheet1.Range("a" & Rows.Count).End(xlUp).Row)

shapeslide = Sheet1.Range("a" & c.Row)
shapename = Sheet1.Range("b" & c.Row)
shapetext = (Sheet1.Range("c" & c.Row).Text)
friendlyname = Sheet1.Range("d" & c.Row)
pPreso.Slides(shapeslide).Shapes(shapename).TextEffect.Text = shapetext

If (friendlyname = "DN") Then
pPreso.Slides(shapeslide).Shapes(shapename).TextFrame.TextRange.Font.Color.RGB = RGB(255, 0, 0)

'The porttion below worked, but it is not animation (not as cool)
'pPreso.Slides(shapeslide).Shapes(shapename).TextEffect.PresetTextEffect = 4
'pPreso.Slides(shapeslide).Shapes(shapename).TextEffectFormat = msoAnimEffectBoldFlash

Else
pPreso.Slides(shapeslide).Shapes(shapename).TextFrame.TextRange.Font.Color.RGB = RGB(0, 255, 0)

End If

Next c

for语句遍历单元格,在这些单元格中,我会调用特定的幻灯片,形状和形状文本。友好名称是运行IF / Else的重复名称。

如果将状态更改为DN,它会变成红色,如果将其更改为UP,它会变成绿色。

我可以使用If / Else中的以下代码来应用动画:

Dim oeff As Effect
Dim osld As Shape
Set osld = ppapp.ActivePresentation.Slides(shapeslide).Shapes(shapename)
With pPreso.Slides(shapeslide)
Set oeff = .TimeLine.MainSequence.AddEffect(Shape:=.Shapes(shapename),_ effectID:=msoAnimEffectBoldFlash, trigger:=msoAnimTriggerAfterPrevious)
With oeff
.Timing.RepeatDuration = 25
End With
End With

主要问题是(可以理解)它连续应用动画,因为显然没有检查是否在此代码中应用过。其次,当我尝试介绍oeff.delete时,它只是离开了动画,然后将非动画应用于PowerPoint动画窗格中标记为“ UP”的所有其他动画。

因此,有两件事:

  1. 是否可以应用脉冲动画?我在msoAnimEffect库区域中找不到它。

  2. 有人使用我创建的这种方法可以优雅地打开或关闭动画吗,还是我需要找出一种方法来设置标志,读取这些标志,然后以某种方式将其合并到If / Else语句中?

这是Excel Doc的图片:

Excel示例

技术

与朋友商量后,我得以使事情顺利进行,并为自己添加了一些额外的香料。

这是使动画正常工作的代码:

'添加新的变量
Dim timestamptext 
Dim oeff作为PowerPoint.Effect 
Dim oshp作为PowerPoint.Shape 
Dim osld作为PowerPoint.Slide 
'添加效果
集oshp = pApp.ActivePresentation.Slides(shapeslide).Shapes(shapename)
with pPreso.Slides(shapeslide)
Set oeff = .TimeLine.MainSequence.AddEffect(Shape:= Shapes(shapename),effectID:_ 
= msoAnimEffectFlashBulb,trigger:= msoAnimTriggerWithPrevious)
with oeff'Lasts 
for 60 second slide 
.Timing.RepeatDuration = 60 
End With 
End With

然后是摆脱那些动画的部分(感谢CM!)

'删除效果
集osld = pPreso.Slides(shapeslide)'28
仅是因为我还有其他28个正在发生的动画,
如果osld.TimeLine.MainSequence.Count> 28则应保留,那么
对于i = osld.TimeLine.MainSequence.Count到29步骤-1
设置oeff = osld.TimeLine.MainSequence(i)
如果oeff.Shape.Name类似于shapename,则
oeff.Delete
结束如果
下一个i
结束,如果

希望这对那里的人们有所帮助。

另外,我在幻灯片上添加了时间戳,以便可以使用该代码查看状态的最后更新时间(对象是所有幻灯片上的文本框28,时间戳是Excel中的“ NOW()”函数)在单元格H25中):

注意:这在Main For循环内部,但在主要If / Else =“ DN”外部

timestamptext =(Sheet1.Range(“ H”&25).Text)
pPreso.Slides(shapeslide).Shapes(“ Text Box 28”)。TextEffect.Text = timestamptext

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将GIF动画插入到Powerpoint 2013中吗?

来自分类Dev

使用VBA更改Powerpoint 2013中幻灯片元素的颜色

来自分类Dev

在Excel 2013中使用VBA读取隐藏列的问题

来自分类Dev

在Powerpoint 2013中嵌入Youtube

来自分类Dev

通过Excel从PowerPoint中格式化表格样式-2013

来自分类Dev

需要使用Excel 2013 VBA脚本

来自分类Dev

精选模板在Microsoft PowerPoint,Excel和Visio 2013中不起作用

来自分类Dev

使用VBA将.MDB文件中的表中的数据读取到Excel 2013中

来自分类Dev

在VBa Excel 2013中调整注释框图片大小

来自分类Dev

VBA在Excel 2013中自动隐藏功能区

来自分类Dev

Excel 2013 VBA代码中的特殊字符(字母čćžšđ)

来自分类Dev

Excel 2013中的VBA打开URL(64位)

来自分类Dev

VBA Application.Printers在Excel 2013中不起作用

来自分类Dev

Excel 2013 VBA SelectionChange事件

来自分类Dev

禁用Excel 2013单元格动画

来自分类Dev

如何在PowerPoint 2013中记录宏

来自分类Dev

使用字符串变量在VBA中设置对象变量?(Excel 2013年)

来自分类Dev

如何通过 VBA 使用来自另一列的信息在 Excel 2013 中创建列?

来自分类Dev

从PowerPoint 2013删除“保留”密码

来自分类Dev

在Excel 2013上使用VBA填充组合框(窗体控件)

来自分类Dev

PowerPoint 2013在导出OLE VBA命令后失去焦点

来自分类Dev

如何通过VBA将Powerpoint 2013中的嵌入式图像保存到本地磁盘?

来自分类Dev

如何通过VBA将Powerpoint 2013中的嵌入式图像保存到本地磁盘?

来自分类Dev

使用幻灯片母版更新PowerPoint 2013幻灯片的页眉和页脚

来自分类Dev

使用Excel 2013隐藏行

来自分类Dev

如何在不使用VBA的情况下阻止F1在Excel 2013中打开帮助?

来自分类Dev

Excel 2013中的条件格式

来自分类Dev

在Excel 2013中嵌套vlookup

来自分类Dev

在Excel 2013中编写公式

Related 相关文章

  1. 1

    将GIF动画插入到Powerpoint 2013中吗?

  2. 2

    使用VBA更改Powerpoint 2013中幻灯片元素的颜色

  3. 3

    在Excel 2013中使用VBA读取隐藏列的问题

  4. 4

    在Powerpoint 2013中嵌入Youtube

  5. 5

    通过Excel从PowerPoint中格式化表格样式-2013

  6. 6

    需要使用Excel 2013 VBA脚本

  7. 7

    精选模板在Microsoft PowerPoint,Excel和Visio 2013中不起作用

  8. 8

    使用VBA将.MDB文件中的表中的数据读取到Excel 2013中

  9. 9

    在VBa Excel 2013中调整注释框图片大小

  10. 10

    VBA在Excel 2013中自动隐藏功能区

  11. 11

    Excel 2013 VBA代码中的特殊字符(字母čćžšđ)

  12. 12

    Excel 2013中的VBA打开URL(64位)

  13. 13

    VBA Application.Printers在Excel 2013中不起作用

  14. 14

    Excel 2013 VBA SelectionChange事件

  15. 15

    禁用Excel 2013单元格动画

  16. 16

    如何在PowerPoint 2013中记录宏

  17. 17

    使用字符串变量在VBA中设置对象变量?(Excel 2013年)

  18. 18

    如何通过 VBA 使用来自另一列的信息在 Excel 2013 中创建列?

  19. 19

    从PowerPoint 2013删除“保留”密码

  20. 20

    在Excel 2013上使用VBA填充组合框(窗体控件)

  21. 21

    PowerPoint 2013在导出OLE VBA命令后失去焦点

  22. 22

    如何通过VBA将Powerpoint 2013中的嵌入式图像保存到本地磁盘?

  23. 23

    如何通过VBA将Powerpoint 2013中的嵌入式图像保存到本地磁盘?

  24. 24

    使用幻灯片母版更新PowerPoint 2013幻灯片的页眉和页脚

  25. 25

    使用Excel 2013隐藏行

  26. 26

    如何在不使用VBA的情况下阻止F1在Excel 2013中打开帮助?

  27. 27

    Excel 2013中的条件格式

  28. 28

    在Excel 2013中嵌套vlookup

  29. 29

    在Excel 2013中编写公式

热门标签

归档