У меня есть шаблон .dotm, в котором у меня есть несколько элементов управления содержимым флажков. Они организованы в группы следующим образом:
[chk_1] Attach all the items listed below:
[chk_1_1] Item A
[chk_1_2] Item B
[chk_1_3] Item C
[chk_2] Send the details provided below:
[chk_2_1] Info A
[chk_2_2] Info B
[chk_2_3] Info C
То, что я пытаюсь сделать, - это метод автоматической проверки chk_1
, если какой-либо из подпунктов проверен, как некая отказоустойчивая система, если пользователь забудет вручную проверить chk_1
.
Пока мне удалось сделать это вручную, как показано ниже:
Private Sub btnSubmit_Click()
Dim ctl As ContentControl
For Each ctl In ActiveDocument.ContentControls
If ctl.Type = wdContentControlCheckBox Then
If ctl.Tag = "chk_1_1" or ctl.Tag = "chk_1_2" or ctl.Tag = "chk_1_3" Then
If ctl.Checked = True Then
ActiveDocument.SelectContentControlsByTag("chk_1").Item(1).Checked = True
End If
End If
End If
Next
Dim ctl2 As ContentControl
For Each ctl2 In ActiveDocument.ContentControls
If ctl2.Type = wdContentControlCheckBox Then
If ctl2.Tag = "chk_2_1" or ctl2.Tag = "chk_2_2" or ctl2.Tag = "chk_2_3" Then
If ctl2.Checked = True Then
ActiveDocument.SelectContentControlsByTag("chk_2").Item(1).Checked = True
End If
End If
End If
Next
End Sub
Этот код выполняется при нажатии кнопки ActiveX btnSubmit
и автоматической отметке родительских флажков, если установлены какие-либо из дочерних флажков.
Я хочу упростить код, потому что со временем будет несколько групп с 20+ флажками в каждой, и код будет труднее писать.
Есть ли способ использовать строку или проверить состояние всех флажков, помеченных chk_x_y
, а затем изменить состояние chk_x
?