У меня есть документ Word 2010 с некоторым базовым кодом VBA, прикрепленным к флажкам номера, которые показывают / скрывают разделы по всему документу.
В документе есть несколько таких документов, но все они используют один и тот же базовый код, который, кажется, работает достаточно хорошо (пример ниже)
Private Sub PlanningBox_Click()
If PlanningBox.Value = False Then
ActiveDocument.Bookmarks("Planning").Range.Font.Hidden = True
Else
ActiveDocument.Bookmarks("Planning").Range.Font.Hidden = False
End If
End Sub
Проблема, с которой я столкнулся, заключается в том, что некоторые из этих разделов имеют внутри себя флажки, которые показывают / скрывают следующий раздел, что хорошо, однако, если пользователь снимает флажок с первого начального флажка (скрывая все разделы), то повторно проверяет его, он снова откроет начальный раздел, но не отмеченные галочкой подсекции - для этого им придется снова снять / проверить подсекцию. Я знаю, что это кажется незначительным, но мне нужно убедиться, что форма максимально гибкая и доступная пользователю.
Например, допустим, есть таблица из одной строки с текстом «Вы говорили с кем-нибудь для обратной связи?» (флажок1) - пользователь отметит флажок, который будет показывать раздел текста ниже, в котором даются указания, задаются некоторые вопросы, общие сообщения и т. д. В нижней части этого вопроса есть еще один вопрос «С кем вы разговаривали?», а затем несколько флажки «мама», «папа», «ребенок» (флажки A, B, C и т. д.). Если установить флажок в любом из этих полей, откроется таблица с дополнительными вопросами для каждого выбранного, пользователь может проверить любое число / комбинацию флажки.
Теперь, если пользователь снимает начальный флажок 1. Все разделы будут скрыты без проблем, но затем, если они затем проверят его, чтобы снова открыть раздел, флажки «Мать», «Отец» и т. Д. Остаются отмеченными, но не будут отображать разделы без необходимости быть снова отмеченным / помеченным. Есть ли способ сделать так, чтобы отметка начального поля также снова открывала ранее скрытые разделы?
Мои знания по VBA очень ограничены, я подумал об использовании операторов If + ElseIF, но я понимаю, что мне понадобится ElseIf для каждой потенциальной комбинации. Есть ли более изощренный способ обойти это вообще?
Надеюсь, я сформулировал это достаточно хорошо, но рад предоставить дополнительную информацию. Спасибо за любую помощь, оказанную