在不触发更改侦听器的情况下更改滚动条的值

时间:2019-01-26 16:31:20

标签: vba powerpoint

我是VBA的新手,感谢您的帮助!

  • 我有一张只有一张幻灯片的PowerPoint。 该幻灯片上有几个滚动条。用户可以使用它们更改值。 然后,将执行scrollbarName_change()

  • 但是有时我的代码会更改滚动条,并且我不希望执行scrollbarName_change()侦听器的代码。

  • 我想到了一个全局变量,每次我的代码而不是用户尝试更改滚动条值时都必须将其设置为“ true”。滚动条更改将在执行代码前检查变量是否为true / false,但这确实很讨厌。另外,我不确定是否在尝试更改变量时不会与其他时间发生冲突。

有人有更好的主意吗?

1 个答案:

答案 0 :(得分:1)

您的想法没什么讨厌的!我确实使用了CheckBox而不是全局变量:

'https://stackoverflow.com/questions/54380340/vba-ppt-change-value-of-a-scroll-bar-without-triggerin-the-change-listener
'(VBA-PPT) Change value of a scroll bar without triggerin the change-listener

Private Sub CheckBox1_Click()
'    MsgBox "Click"
End Sub

Private Sub ScrollBar1_Change()
    If Not (CheckBox1) Then Exit Sub
    MsgBox "SB1"
End Sub

Private Sub ScrollBar2_Change()
    If Not (CheckBox1) Then Exit Sub
    MsgBox "SB2"
End Sub

Private Sub ScrollBar3_Change()
    If Not (CheckBox1) Then Exit Sub
    MsgBox "SB3"
End Sub