我有一个带有记分板的PowerPoint文件,该记分板使用以下代码。该代码在Windows中的Powerpoint上工作正常,但是在Mac中运行Powerpoint时发现该代码/按钮不起作用(所有宏均已在设置中启用)。据我了解,Macs / vba在2008年之后将在Mac中受支持。任何见解将不胜感激。该文件另存为启用了PPTM /宏的演示文稿。
(我进行了搜索,但未找到有关此答案的信息。谢谢,我是新来的人,正在自学中)
Sub Label1Plus100()
Label1.Caption = (Label1.Caption) + 100
End Sub
Sub Label1Minus100()
Label1.Caption = (Label1.Caption) - 100
End Sub
Sub LabelReset()
Label1.Caption = 0
End Sub
Sub ResetandExit()
Label1.Caption = 0
ActivePresentation.SlideShowWindow.View.Exit
End Sub
答案 0 :(得分:0)
好的,再次避免使用ActiveX对象。
接下来,我将所有内容放到幻灯片上,而不是在幻灯片母版上放一些东西。对于要更改的文本,请使用纯文本框而不是ActiveX对象。首先在文本框中选择一个名称,然后在VBA立即窗口中为其命名,例如:
ActiveWindow.Selection.ShapeRange(1).Name = "Score"
然后在VBA编辑器中,插入一个新模块,并添加以下内容:
Sub IncrementScore()
With SlideShowWindows(1).View.Slide.Shapes("Score")
.TextFrame.TextRange.Text = .TextFrame.TextRange.Text + 100
End With
End Sub
然后将此宏用作加号按钮的操作设置。类似地修改减号和清除按钮。
严格来说,虽然VBA会尝试为您覆盖,但添加数字和字符串(即文本)值并不是一个好习惯,因此最好使用:
.TextFrame.TextRange.Text = Cstr(Clng(.TextFrame.TextRange.Text)+100)
这会将现有文本转换为Long,将其加100,然后将结果转换回String,以插入文本框中。