【问题标题】:libre/open office macros problem - presentation apilibre/open office 宏问题 - 演示 API
【发布时间】:2021-07-29 13:15:02
【问题描述】:

(我从 askubuntu 复制了该部分)从 2 天开始,我正在尝试制作一个宏以从第二张幻灯片执行演示文稿,而尚未全屏显示。我用来尝试任何可能方法的基本代码是:

REM  *****  BASIC  *****
Sub execute
Dim Doc As Object 
Dim Presentation As Object 
Dim SlideList As Object
Dim Slide As Object
Doc = ThisComponent
Presentation = Doc.Presentation
SlideList = Doc.getDrawPages()
Slide = SlideList.getByName("2")
Presentation.start(IsFullScreen(), IsAlwaysOnTop(), Slide(), IsMouseVisible(), )
end sub

演示总是开始......但不是从第二张幻灯片开始。当从官方 libreoffice 网站 (https://wiki.openoffice.org/wiki/Documentation/BASIC_Guide/Presentations) 尝试方法时,它也不起作用(它从第一张幻灯片开始,即使我不是 FirstSlide 而是 SecondSlide)。尝试按索引定义幻灯片会产生未定义的错误。有什么办法让它工作吗?

PS:由于系统故障,我无法使用java,所以我需要用VBA编写。

【问题讨论】:

  • 是的,你是对的 - 这段代码不会导致演示文稿开始,而是让人头疼。您如何尝试按数字获取第二张幻灯片?顺便说一句,SlideList.getByName("2") 行只有在您手动设置第二张幻灯片“2”的名称时才有效,通常类似于“Slide2”。并且Presentation.start(IsFullScreen (), etc. 行根本不起作用 - Start 方法没有参数,您在括号中写的所有内容都无关紧要。也许您需要.startWithArguments() 方法。如何正确使用?我还没准备好说,这需要额外的研究。
  • 我将 name 设置为 2。无论如何 - 你的代码会抛出这个:ibb.co/khVcVD8

标签: libreoffice libreoffice-basic


【解决方案1】:

好的,试试这个

Sub RunFromSecondSlide
Dim oPresentation As Variant
Dim oDrawPages As Variant
    oPresentation = ThisComponent.getPresentation()
    oDrawPages = ThisComponent.getDrawPages()
    oPresentation.FirstPage = oDrawPages.getByIndex(1).getName()    
    oPresentation.start()
End Sub

【讨论】:

  • 谢谢!工作! (我什至没有想过将第一页设置为第二页:'D)
  • 编辑:但现在它不能用鼠标进入全屏模式...
  • 用鼠标?为什么不在.start() 之前加上oPresentation.IsFullScreen=True
  • 它只是抛出了一些错误......在这里你有崩溃:ibb.co/pK4kRRw
  • 对不起,我应该写得更清楚:在oPresentation.start()行之前,您可以设置任何表示参数的值,例如oPresentation.IsFullScreen = True。 (当然,布尔值 TRUE 没有start() 方法。)
【解决方案2】:

我想出了如何让它工作,代码在这里:

Sub RunFromSecondSlide
Dim oPresentation As Variant
Dim oDrawPages As Variant
    oPresentation = ThisComponent.getPresentation()
    oDrawPages = ThisComponent.getDrawPages()
    oPresentation.FirstPage = oDrawPages.getByIndex(1).getName()    
    oPresentation.IsFullScreen=True
    oPresentation.IsAlwaysOnTop=True
    oPresentation.IsMouseVisible=true
    oPresentation.StartWithNavigator=False
    oPresentation.start()
End Sub

然后我需要双击我自己创建的按钮(单击显示幻灯片我需要再次单击)

【讨论】:

    猜你喜欢
    • 2013-03-05
    • 1970-01-01
    • 2011-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    相关资源
    最近更新 更多