为什么我的变量声明不起作用?

Why Won't My Variable Declarations Work?

我正在使用 VBA 在 PowerPoint 中编写程序。我想要特定代码 运行 与 OnSlideShowPageChange() 事件。我确定事件本身有效,因为此代码 运行 没问题:

Sub OnSlideShowPageChange()
MsgBox("Hello")
End Sub

我想 运行 在 幻灯片 1 上定义全局变量的代码,我使用以下代码:

Sub OnSlideShowPageChange()
Dim CurSlide As Integer
CurSlide = ActivePresentation.SlideShowWindow.View.CurrentShowPosition
If CurSlide = 1 Then
    Public Var1 As Integer
    Public Var2 As Integer
    Var1 = 0
    Var2 = 0
    Public Var3 As String
    Var3 = "MyString"
End If
End Sub

第二个例子是我遇到问题的地方。代码 运行s 仅在幻灯片 1 上, 但是 当我像这样放置 MsgBox 时: MsgBox(Var1 & Var2 & Var3) MsgBox 将不会出现。我认为声明有问题,但我不确定是什么。 有人可以帮我解决这个问题吗? 谢谢

Public/global 变量需要在任何过程之外声明——通常在模块的顶部。

您不能在您的子程序中声明它们,但您可以设置它们的值。

Public Var1 As Integer
Public Var2 As Integer
Public Var3 As String

Sub OnSlideShowPageChange()

    Dim CurSlide As Integer
    CurSlide = ActivePresentation.SlideShowWindow.View.CurrentShowPosition
    If CurSlide = 1 Then
        Var1 = 0
        Var2 = 0
        Var3 = "MyString"
    End If

End Sub