Формы в ворде

Программирование на Visual Basic for Applications
nunt
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 07.07.2006 (Пт) 8:58

Формы в ворде

Сообщение nunt » 07.07.2006 (Пт) 9:13

У меня вопрос наподобии http://bbs.vbstreets.ru/viewtopic.php?t=25309
только нужно не в эксель, а прямо в ворд данные из полей передавать. Т.е. есть, допустим, два поля в форме. Нужно чтобы при нажатии кнопки данные из полей в заданные места в шаблоне передавались. И ещё, чтобы макрос с формой запускался при открытии документа, его нужно autoexec назвать?

nunt
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 07.07.2006 (Пт) 8:58

Сообщение nunt » 07.07.2006 (Пт) 9:16

Правильно ли будет, если присвоить значения полей переменным после нажатия кнопки, а в шаблоне вставить {DOCVARIABLE имя_переменной \* MERGEFORMAT} ?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 07.07.2006 (Пт) 9:17

Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

nunt
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 07.07.2006 (Пт) 8:58

Сообщение nunt » 07.07.2006 (Пт) 9:25

как я понимаю, должно быть всё очень просто:
Private Sub CommandButton1_Click()
Workbooks("имя книги.xls").Sheets("имя листа").Visible = True
Workbooks("имя книги.xls").Sheets("имя листа").Range("dosroch") = UserForm1.TextBox1
End Sub
это для экселе
для ворда, по идее, должно быть что-то типа этого) хэлп не работает просто

nunt
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 07.07.2006 (Пт) 8:58

Сообщение nunt » 07.07.2006 (Пт) 9:28

либо как-то так:
Private Sub CommandButton1_Click()
dim a,b as string
a= UserForm1.TextBox1.value
b= UserForm1.TextBox2.value
End Sub

а в тексте шаблона нужна какая-то метка, кторая выводит содержимое переменной.
вот как именно?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 07.07.2006 (Пт) 9:35

Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

nunt
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 07.07.2006 (Пт) 8:58

Сообщение nunt » 07.07.2006 (Пт) 10:43

Сформирую полный вопрос:
1. Нужно, чтобы при открытии шаблона автоматически запускался макрос с формой.
2. При нажатии кнопки данные из полей формы должны передаваться в контекст. (закладку или ещё что-то нужно вставить? как?)
3. Форма должна закрываться, после того как данные появились в контексте =)

Извините, конечно, может глупые вопросы задаю. Прогамирую в основном для акцеса. С вордом никогда не сталкивался, а хэлп не работает =( Принципы программиравания на ВБА для ворда себе представляю, если хоть как-то похоже на ВБА для акцеса.
Разъясните, пожалуйста.

nunt
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 07.07.2006 (Пт) 8:58

Сообщение nunt » 07.07.2006 (Пт) 13:03

т.е. если я загоню значения полей в переменные, то как их передать в контекст?

nunt
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 07.07.2006 (Пт) 8:58

Сообщение nunt » 07.07.2006 (Пт) 13:23

если так:
Private Sub CommandButton1_Click()
Dim perem, perem2 As String
perem = UserForm1.Box.Value
perem2 = UserForm1.Box2.Value
UserForm1.Hide
ActiveDocument.Variables("text").Value = perem
ActiveDocument.Variables("text2").Value = perem2
ActiveDocument.Fields.Update
End Sub

а в контексте документа в нужных местах поставить { DOCVARIABLE text } и, соответственно { DOCVARIABLE text2 } и т.д.

Правильно ли так будет? или можно как-нить по-лучше сделать?

ShVSerg
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 07.07.2006 (Пт) 11:38

Сообщение ShVSerg » 08.07.2006 (Сб) 16:25

nunt писал(а):
...
а в контексте документа в нужных местах поставить { DOCVARIABLE text } и, соответственно { DOCVARIABLE text2 } и т.д.

Правильно ли так будет? или можно как-нить по-лучше сделать?


Мучаюсь с той же проблемой. Как вышеуказано не получилось чего-то. Использую пока вставку Textbox-ов в документ Word и присвоение им значений полей таких же Textbox-ов из формы VB. Но:
Минусы в том, что
- во-первых, нижний край текста в Word-овском Textbox-е выше основного текста - кто-нить знает может, как выровнять правильно?
- во-вторых, если текст не влезает в строку, переносится весь Textbox, а на предыдущей строке естественно остаются дыры. Это, я так понимаю, не лечиться... А жаль.

Вот. Если у кого какие мысли на этот счет - очень был бы признателен.
SSerg

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 08.07.2006 (Сб) 17:46

nunt
Первое и последнее предупреждение насчёт тройного постинга.
Хочешь добавить - используй кнопку редактирования.

По теме: пока у тебя не пройдёт заклинивание на DOCVARIABLE, прогресса не будет. Попробуй сходить по ссылке, представленной выше. Потом расскажи, какие мысли появились по поводу прочитанного.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 48

    TopList