缩短VBA中的GoToSlide命令?

时间:2012-09-04 22:21:34

标签: vba powerpoint powerpoint-vba

我正在制作PowerPoint,我不断使用此命令跳转幻灯片:

With SlideShowWindows(1)
    .View.GoToSlide (.Presentation.Slides(x).SlideIndex)
End With

我想通过编写一个缩短它的模块来缩短它,但由于我是一个新手并且不知道如何,我真的需要帮助。这是我写的“SlideControl”模块:

Public Intro As String, BIOS As String, OSBegin As String, InitialSetup As String, LogIn As String, Desktop As String

Public Sub GoToSlide(Slide)

Intro = SlideShowWindows(1).Presentation.Slides(1).SlideIndex
BIOS = SlideShowWindows(1).Presentation.Slides(2).SlideIndex
OSBegin = SlideShowWindows(1).Presentation.Slides(5).SlideIndex
InitialSetup = SlideShowWindows(1).Presentation.Slides(6).SlideIndex
LogIn = SlideShowWindows(1).Presentation.Slides(9).SlideIndex
Desktop = SlideShowWindows(1).Presentation.Slides(11).SlideIndex

SlideShowWindows(1).View.GoToSlide (Slide)

End Sub

这是整个模块,最后没有别的。当然我是编码的新手,所以如果代码看起来不对,请帮我纠正。我想我应该能够使用这个命令进入介绍幻灯片:

GoToSlide (Intro)

然后我在调用它时出现此错误:

Compile error:

Only comments may appear after End Sub, End Function, or End Property

任何人都可以帮我解决这个问题吗?我非常感激。

1 个答案:

答案 0 :(得分:1)

你真的很亲密。

根据您展示的内容,您只需确保列出:

Intro = SlideShowWindows(1).Presentation.Slides(1).SlideIndex
BIOS = SlideShowWindows(1).Presentation.Slides(2).SlideIndex
OSBegin = SlideShowWindows(1).Presentation.Slides(5).SlideIndex
InitialSetup = SlideShowWindows(1).Presentation.Slides(6).SlideIndex
LogIn = SlideShowWindows(1).Presentation.Slides(9).SlideIndex
Desktop = SlideShowWindows(1).Presentation.Slides(11).SlideIndex

在需要调用值之前运行的过程中。

或者,由于您基本上对这些值进行了硬编码,我认为您可以使用枚举来合理地完成此操作。请注意,枚举必须在任何方法之前放在模块的顶部。

Public Enum slideNum
    Intro = 1
    Bios = 2
    OSBegin = 5
    InitialSetup = 6
    Login = 9
    Desktop = 11
End Enum
Public Sub GoToSlide(slide As slideNum)
    SlideShowWindows(1).View.GoToSlide (slide)
End Sub
Sub example()
    GoToslide(Login)
End sub

当您将GoTo Slide子编码到程序中时,使用第二种方法,它将自动建议有效的幻灯片I.E. Intro,Bios,OSBegin,InitialSetup,Login或Desktop。