1

Тема: как проверить состояние "флажка" в макросе?

собственно вопрос в заголовке темы, добавлю что "флажок" не из элементов управления, а из "Формы".
Как поменять его состояние программно?

2

Re: как проверить состояние "флажка" в макросе?

Эти элементы управления входят в коллекцию InlineShapes, через которую к ним можно обратиться. Чтобы не перебирать все InlineShapes в документе, желательно поместить этот флажок в закладку и через неё обращаться к флажку, например так:

ActiveDocument.Bookmarks("MyCheckBox").Range.InlineShapes(1).OLEFormat.Object.Value = True
Лучше день потерять — потом за пять минут долететь!

3

Re: как проверить состояние "флажка" в макросе?

спасиб за оперативный ответ на двух форумах!
тока выкидывает ошибку 5941 "запрашиваемый номер семейства не существует"

4

Re: как проверить состояние "флажка" в макросе?

Ну либо нет закладки, либо в закладке нет флажка.

Лучше день потерять — потом за пять минут долететь!

5

Re: как проверить состояние "флажка" в макросе?

судя по тому что

temp = ActiveDocument.InlineShapes.Count

показывает 0 вы мне дали стрелку на "флажок"  из "элементов управления"
а мне нужен другой, который рядом с "текстовым полем" в понели инструментов "формы" (WORD2003)

Отредактировано sergo2705 (03.06.2010 13:25:07)

Post's attachments

флажок.JPG
флажок.JPG 9.88 Кб, файл не был скачан. 

You don't have the permssions to download the attachments of this post.

6

Re: как проверить состояние "флажка" в макросе?

так оно и есть, добавил в документ  один "флажок"  из "элементов управления" и

temp = ActiveDocument.InlineShapes.Count

дало 1, а моих "флажков" в документе 5, и каждый с закладкой

7

Re: как проверить состояние "флажка" в макросе?

Да, путаница в понятия. У меня основной редактор Word 2007 и там это несколько по-другому. Чтобы проверить такой флажок, нужно использовать коллекцию FormFields:

ActiveDocument.FormFields("Флажок1").CheckBox.Value
Лучше день потерять — потом за пять минут долететь!

8

Re: как проверить состояние "флажка" в макросе?

спасиб, работает!!!
также понял что по подобию можно обратиться и к "текстовому полю"

ActiveDocument.FormFields("Закладка").Result 

раньше вы мне советовали другим путем

ActiveDocument.Bookmarks("Закладка").Range.Fields(1).Result

однако в процессе проверки кода на медленном компе обнаружил что

ActiveDocument.FormFields("Закладка").Result 

работает с притормаживанием, как нить прокомментировать можно?