Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » VBA - VBA

Ответить
Настройки темы
VBA - VBA
BOLT


Сообщения: n/a

Профиль | Цитировать


Я занимаюсь анкетированием (сбором информации) при помощи файлов Ворд.  Для этого прошу респондентов заполнить некоторые поля (элементы управления). Снимаю значения операторами
str1 = Documents(strFile).TextBox1.Value
str1=Documents(strAnkFile).optionbutton1.Value
Сложность в том, что таких елементов управления у меня около 300. Приходится просмотреть имя каждого, а потом написать 300, почти одинаковых строк.
Вопрос: Знает ли кто-нибудь способ обратиться ко всем элементам сразу.
З. Ы. Для формы всё легко, пишем строку
For Each Y In UserForm2.Controls
и обращаемся ко всем элементам сразу. А как это сделать если элемент управления находится не в форме а в документе?

Отправлено: 14:54, 03-03-2003

 

Аватара для IZOprogman

Пользователь


Сообщения: 85
Благодарности: 1

Профиль | Отправить PM | Цитировать


А какие проблемы?
Поля можно выделять 2-мя способами:
1) Объявлять ЗАКЛАДКИ;
2) определять ТЕКСТОВЫЕ ПОЛЯ (панель "Формы".
(На деле это одно и то же, поскольку имена текстовых полей являются теми же закладками.)
А дальше - типа
Dim ixBmk As Bookmark

For Each ixBmk In ActiveDocument.Bookmarks
 ixBmk.Select
 ...      '   здесь работа с объектом Selection
Next ixBmk

Каждую закладку можно дополнительно проверять на ixBmk.Name

Отправлено: 21:50, 05-09-2003 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.

BOLT


Сообщения: n/a

Профиль | Цитировать


Раз эта тема хоть кого-то заинтересовала, то отвечаю сам себе. За последний год я до мелочей отработал технологию анкетирования. Это самозаполняемые анкеты. Формой для ввода и контейнером содержащим данные пользователя является файл Word.
Можно использовать 2 конструкции: Элементы управления и Поля.

В первом случае обработка идёт так:
Dim iShape As Object
       For Each iShape In myDoc.InlineShapes ' Начали обрабатывать элементы управления
           If iShape.Type = wdInlineShapeOLEControlObject Then ' это элемень управления, а не какая-нибудь там картинка
               intA = iShape.OLEFormat.Object.Value
           End If
       Next iShape

Во втором случае
Dim fldAnswer As FormField
       For Each fldAnswer In myDoc.FormFields 'Начали обрабатывать поля
           intB = fldAnswer.Result
       Next fldAnswer

У первого способа много недостатков. Если нужны пояснения - пишите. Я на этом собаку съел.

Отправлено: 10:56, 08-09-2003 | #3



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » VBA - VBA

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
VBA - VBA и Word foxik Программирование и базы данных 5 28-03-2009 20:37
VBA - Access и VBA Scorpion666 Программирование и базы данных 6 01-04-2007 00:18
VBA - Corel и VBA Sanchos Программирование и базы данных 1 16-03-2007 11:30
VBA - Вопрос по VBA iliag3 Программирование и базы данных 1 14-12-2004 16:39
VBA - Timer в VBA Witaleey Программирование и базы данных 1 29-08-2003 15:26




 
Переход