Как я могу получить состояние флажка в форме Word?

Я использую флажок ContentControl в своем документе MS Word 2013 (не Excel!). Теперь я пытаюсь проверить формулу, установлен ли флажок или нет. Как я могу это сделать?

Предположим, имя флажка MyCheckbox Я пытался проверить состояние, используя

=MyCheckbox
=IF(MyCheckbox=TRUE; 1; 0)
=IF(INT(MyCheckbox)=1; "YES"; "NO")

Но ни один из них мне не помог. Любая помощь приветствуется.


person Gottlieb Notschnabel    schedule 07.11.2014    source источник
comment
Да, ты прав. Я удалил этот тег. Спасибо   -  person Gottlieb Notschnabel    schedule 13.11.2014


Ответы (2)


Вы не можете ссылаться на флажок «Управление содержимым» из «языка поля» Word, используя «имя» флажка (т. е. заголовок или тег).

Вы можете сделать это следующим образом: Выберите вкладку флажка, который вы хотите проверить. Вставьте закладку (назовем ее "check1"). Используйте следующее вложенное поле, чтобы проверить значение в вашем {=} поле:

{ IF { check1 } = ccbcc 1 0 }

где вы вставляете элемент управления содержимым отмеченного флажка непосредственно в поле IF вместо текста «ccbcc»

Я не знаю синтаксиса, который работает с функцией IF поля {=}.

Однако вполне возможно, что вы столкнетесь с проблемами, если сделаете исходный элемент управления флажком неудаляемым. Когда вы это сделаете, копии элемента управления, сгенерированные при выполнении полей { check1 } REF, также станут неудаляемыми, что вам также может понадобиться учитывать.

Единственный известный мне другой способ сделать это, который не требует VBA и т. д. во время выполнения, - установить флажок в качестве сопоставленного элемента управления содержимым, а затем использовать элемент управления простым текстом, сопоставленный с тем же элементом/атрибутом в пользовательской части XML, чтобы сделать сравнение. Это всегда будет иметь "истинный" или "ложный" результат после заполнения XML. Таким образом, в этом случае вы можете сравнить свой простой текстовый элемент управления с текстом «true». т. е. вам по-прежнему нужно поле IF с вложенным элементом управления содержимым, но только один элемент управления вместо двух, и вам не нужны закладки:

{ IF thetextcontentcontrol = true 1 0 }

(где вы вставляете сопоставленный элемент управления текстовым содержимым вместо "thetextcontentcontrol"

Все {} должны быть специальными парами фигурных скобок поля, которые вы можете вставить в WIndows Word, используя ctrl-F9.

person Community    schedule 07.11.2014

Попробуйте MyCheckBox.Value вместо MyCheckbox.

person gwhenning    schedule 07.11.2014
comment
Я пробовал =MyCheckbox.Value, выдает !Syntax error, . - person Gottlieb Notschnabel; 07.11.2014
comment
'If CheckBox1.Value = True Then MsgBox (флажок отмечен) End If' Работает для меня с использованием Word 2013. - person gwhenning; 08.11.2014
comment
Я не использую VBA, а просто формулирую в поле. - person Gottlieb Notschnabel; 08.11.2014