Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/40: Рейтинг темы: голосов - 40, средняя оценка - 4.60
1 / 1 / 0
Регистрация: 03.11.2009
Сообщений: 92
1

ContentControls в MS Word

06.10.2010, 11:21. Показов 8241. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть в документе такой элемент поле со списком (элемент управления содержимым) семейства ContentControls, типа комбо бокс с постоянным списком. При его заполнении (ручным или программным) каждому элементу списка присваивается краткое имя и значение (ну и понятно, индекс, определяющий порядок следования). В ходе работы краткое имя выбранного элемента списка данного ContentControl получаю функцией, например: ActiveDocument.ContentControls(2).Range, а вот какой функцией вытащить значение не знаю. (Термины краткое имя и значение взяты из формы заполнения поля со списком).

С уважением
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.10.2010, 11:21
Ответы с готовыми решениями:

ContentControls, которые появились в Office 2007 — какие они?
здравствуйте ContentControls, которые появились в Office 2007 - какие они? может кто в документе...

Работа с ContentControls MS Word 2007
Добрый день! Есть проблема. Имеется .docx-документ с элементами contentcontrols (richtextformat), к...

Проблема с $word=new COM("word.application") or die("Couldn ''t start Word!");
Наблюдаю такую штуку - создаю объект Word $word=new COM("word.application") or die("Couldn ''t...

Макрос Word 2016 замена шрифта рандомных символов на выбранный - MS Word
Есть обычный текст, только буквы и цифры Нужно, чтобы после обработки макроса выбирались случайные...

13
Заблокирован
06.10.2010, 16:26 2
Mikkelle,
напиши, как делаешь поле со списком (куда нажимаешь).
0
1 / 1 / 0
Регистрация: 03.11.2009
Сообщений: 92
06.10.2010, 16:33  [ТС] 3
2007
Разработчик-Элементы управления-Поле со списком
0
Заблокирован
06.10.2010, 17:08 4
Цитата Сообщение от Mikkelle Посмотреть сообщение
получаю функцией
это не функция. Это свойство или метод.

Добавлено через 10 минут
Mikkelle,
Visual Basic
1
2
3
Sub m_1()
MsgBox ActiveDocument.ContentControls(1).DropdownListEntries(3).Value
End Sub
0
1 / 1 / 0
Регистрация: 03.11.2009
Сообщений: 92
06.10.2010, 17:41  [ТС] 5
DropdownListEntries(3) - конкретное указание на номер в списке. А как получить значение Value для выбранного в ContentControls(1) элемента?
0
Заблокирован
06.10.2010, 17:43 6
Mikkelle,
так это надо программу писать что ли? Реагирование на событие "Выбор".
0
1 / 1 / 0
Регистрация: 03.11.2009
Сообщений: 92
06.10.2010, 17:45  [ТС] 7
Так и речь про то. Если в обычном комбо присутствует параметр ListIndex то тут его нет!
0
Заблокирован
06.10.2010, 17:51 8
Mikkelle,
VBA не видит новых (в смысле сделанных в Word 2007) элементов управления.
0
1 / 1 / 0
Регистрация: 03.11.2009
Сообщений: 92
06.10.2010, 17:54  [ТС] 9
Нет вашей правды. Краткое имя выбранного элемента списка данного ContentControl вытаскивается функцией, например: ActiveDocument.ContentControls(2).Range. VBA все видет и даже различает эти самые ContentControls.
0
Заблокирован
06.10.2010, 17:59 10
Mikkelle,
если вставить старый элемент (Разработчик - Элементы управления - Инструменты из предыдущих версий - Элементы ActiveX - Поле со списком (Элемент ActiveX)), то он появляется в VBA (ThisDocument (имеется ввиду этот документ, где находится список, а не шаблон) - Левый выпадающий список (там появится этот ActiveX).
0
1 / 1 / 0
Регистрация: 03.11.2009
Сообщений: 92
06.10.2010, 18:05  [ТС] 11
Ну, скорее всего, это не элемент управления, как ActiveX, а некое поле с навороченным интерфейсом. Поменял бы в сущности его на Combo из ActiveX, но ни как не пойму, как исключить вывод на печать данного элемента. Может тогда здесь что присоветуете?
0
Заблокирован
06.10.2010, 18:44 12
Mikkelle,
а самому не судьба тыкать?
Я вот так натыкал: BorderStyle - 0, ShowDropButtonWhen - 1.
0
1 / 1 / 0
Регистрация: 03.11.2009
Сообщений: 92
07.10.2010, 12:35  [ТС] 13
Так я поначалу я ComboBox не рассматривал. Сейчас попробовал, но оказалось, что длинный текст не форматируется как ContentControls. Там работает действительно как текстовое поле, занимая, что в строке, что в ячейке таблицы минимально-необходимое пространство.
Спасибо за подсказку, но буду пробовать искать решение для ContentControls.

Добавлено через 14 часов 40 минут
Нашел решение! Действовать приходится перебором, сравнивая выбранное краткое имя с имеющимися в списке.
0
letu
11.04.2014, 16:10 14
за столько времени ничего не изменилось, в 2013 офисе та же беда - краткое имя элемента управления содержимым можно получить сразу, а для значения, ради которого и ставился этот элемент, приходится перебирать краткие имена
11.04.2014, 16:10
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.04.2014, 16:10
Помогаю со студенческими работами здесь

Конвертирование PDF в Word. Word документ получился с режимом ограниченной функциональности
Добрый день! Конвертировал я PDF документ в Word документ через Adobe Acrobate pro DC. Получился...

MS Word 2003: как открыть файлы более новых версий Word?
У меня стоит мс офис ворд 2003 года и то, что написано на намного более новых, просто не читает -...

Нарушение форматирования документов word 2010 при открытии в word 2013
Здравия коллеги! Столкнулся с такой проблемой у человека W8+office2013 всё легальное, документы...

Работа метода Word.Selection.Find при поиске в документе Word
Дорого времени суток! никак не могу разобраться в механизме работы range.find Запускаю: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru