Изменить значение полосы прокрутки без запуска прослушивателя изменений - PullRequest
0 голосов
/ 26 января 2019

Я новичок в VBA и ценю вашу помощь!

  • У меня есть PowerPoint с одним слайдом. Несколько полос прокрутки на этом слайде. Пользователь может изменить значения с ними. Затем будет выполнено scrollbarName_change().

  • Но иногда мои коды меняют эту полосу прокрутки, и я не хочу, чтобы выполнялся код слушателя scrollbarName_change().

  • Я подумал о глобальной переменной, которую я должен устанавливать «true» каждый раз, когда мой код, а не пользователь пытается изменить значение полосы прокрутки. Изменение полосы прокрутки проверило бы, является ли переменная true / false перед выполнением кода, но это действительно противно, я думаю. Кроме того, я не уверен, что не может быть временных конфликтов с другими временами, когда я пытаюсь изменить переменную.

У кого-нибудь есть идея получше?

1 Ответ

0 голосов
/ 26 января 2019

Ничего противного в твоей идее!Я использовал CheckBox вместо глобальной переменной:

'/11074021/izmenit-znachenie-polosy-prokrutki-bez-zapuska-proslushivatelya-izmenenii
'(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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...