Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.11.2009, 12:59   #1
Dima_S
Новичок
Джуниор
 
Регистрация: 06.11.2009
Сообщений: 2
Вопрос Как получить коллекцию контролов в документе WORD в VBA?

Здравствуйте!!!
Помогите, пожалуйста, решить такую проблему.
У меня есть документ. В нём одна таблица, в таблице есть два столбца: первый содержит утверждение, а второй CheckBox (т.е. каждому утверждению соответствует один CheckBox). Внизу под таблицей находится CommandButton.
Мне надо написать макрос для Word, который при нажатии на CommandButton делал бы следующее: надо пройти по всем Checkbox-ам и получить их Value. И в зависимости от этого параметра будет делаться что-то дальше.
В макросе я могу обратиться к каждому CheckBox отдельно, но мне нужно получить либо их список, либо как-то достать указатели на них по имени.

Заранее Спасибо))
Dima_S вне форума Ответить с цитированием
Старый 06.11.2009, 15:52   #2
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Я тоже задавался таким вопросом, но так и не смог найти коллекцию, в которую входят ActiveX-компоненты. Все, что удалось выяснить, что они есть в коллекции Fields и имеют тип wdFieldOCX. Но как узнать его значение и имя, я не знаю
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 06.11.2009, 16:23   #3
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Код:
Sub test()
    Dim fi As Field: On Error Resume Next
    For Each fi In ActiveDocument.Fields
        ' для чекбоксов - элементов управления
        Debug.Print fi.OLEFormat.Object.Name, fi.OLEFormat.Object.Value
    Next fi
End Sub
Результат:
Цитата:
CheckBox1 True
CheckBox2 False
CheckBox3 True
CheckBox4 True
Вложения
Тип файла: doc Doc1.doc (36.0 Кб, 27 просмотров)
EducatedFool вне форума Ответить с цитированием
Старый 06.11.2009, 16:40   #4
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Блин, как же я не додумался? Столько времени потерял!
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 06.11.2009, 17:52   #5
Dima_S
Новичок
Джуниор
 
Регистрация: 06.11.2009
Сообщений: 2
По умолчанию

EducatedFool, спасибо Вам большое.))))
Неделю над этой штукой бился,Вы мне ооочень помогли!!!!!
СПАСИБО))))
Dima_S вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как убить лишние стили в документе Word 2003 garik64 Microsoft Office Word 31 05.01.2014 21:26
Как получить измененные ячейки в VBA? motorway Microsoft Office Excel 10 15.07.2009 15:46
как вставить ссылку на ячейку в документе Excel в Word? ruavia3 Microsoft Office Excel 3 19.03.2009 21:32
как вставить ссылку в Word на ячейку в документе Excel? ruavia3 Microsoft Office Word 2 19.03.2009 21:24
Фон в документе Microsoft Word AleksP Microsoft Office Word 8 14.09.2008 17:55