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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.12.2011, 17:40   #1
RaTeN
Пользователь
 
Регистрация: 14.11.2010
Сообщений: 25
По умолчанию Работа с Word в VBA

Нужно сделать форму заявления, прикреплена, но не могу сделать выравнивание и переход на новую строку.



Код:
Dim objWord As Object
Dim Paragraph  As Object
    Set objWord = CreateObject("Word.Application")
objWord.Visible = True
objWord.Documents.Open ("F:\Лабы по КИТ\1.docx")
objWord.Selection.Paragraphs.Add //типо добавили параграф
objWord.Selection.ParagraphFormat.Alignment = wdAlignParagraphRight //выравнивание не происходит
objWord.Selection.Text = "Директору БКТ"
Объясните, кто знает...
Изображения
Тип файла: gif vba_103.gif (2.6 Кб, 191 просмотров)
RaTeN вне форума Ответить с цитированием
Старый 25.12.2011, 18:16   #2
Вождь
Форумчанин
 
Аватар для Вождь
 
Регистрация: 29.09.2008
Сообщений: 378
По умолчанию

Вставка параграфа с переходом на новую строку:
Код:
Selection.TypeParagraph
Еще может пригодиться вставка текста:
Код:
Selection.TypeText "Директору БКТ"
Обе команды работают как набор на клавиатуре, т.е. по завершении курсор в конце вставленного.
Макросы на заказ и готовый пакет - http://mtdmacro.ru/
Вождь вне форума Ответить с цитированием
Старый 25.12.2011, 18:34   #3
RaTeN
Пользователь
 
Регистрация: 14.11.2010
Сообщений: 25
По умолчанию

спасибо

организовал так, потому что выравнивание не работает
Код:
Private Sub CommandButton1_Click()
Dim objWord As Object
Dim Paragraph  As Object
    Set objWord = CreateObject("Word.Application")
objWord.Visible = True
objWord.Documents.Open ("F:\Лабы по КИТ\1.docx")
objWord.Selection.TypeParagraph

'objWord.Selection.ParagraphFormat.Alignment = wdAlignParagraphRight
objWord.Selection.ParagraphFormat.FirstLineIndent = 300
objWord.Selection.Text = "Директору БКТ" + Chr(10) + TextBox3 + " " + TextBox4 + Chr(10) + "от студента" + Chr(10) + TextBox6 + " " + TextBox5


objWord.Selection.Collapse Direction:=wdCollapseStart
objWord.Selection.TypeParagraph
objWord.Selection.ParagraphFormat.FirstLineIndent = 200
objWord.Selection.Text = "Заявление"

objWord.Selection.Collapse Direction:=wdCollapseStart
objWord.Selection.TypeParagraph
objWord.Selection.ParagraphFormat.FirstLineIndent = 30
objWord.Selection.Text = "Прошу заменить мне студенчиский билет по той причине, что его " + ComboBox1 + ". Сумма в колличестве " + TextBox7 + " внесена на кассу."

objWord.Selection.Collapse Direction:=wdCollapseStart
objWord.Selection.TypeParagraph
objWord.Selection.ParagraphFormat.FirstLineIndent = 350
objWord.Selection.Text = "Дата " + TextBox1

End Sub
RaTeN вне форума Ответить с цитированием
Старый 26.12.2011, 11:11   #4
Пименов Александр
Форумчанин
 
Регистрация: 17.11.2010
Сообщений: 222
По умолчанию

Ну во первых сложности с выравниванием у Вас в другом, например:
Код:
'objWord.Selection.ParagraphFormat.Alignment = wdAlignParagraphRight
objWord.Selection.ParagraphFormat.FirstLineIndent = 300
objWord.Selection.Text = "Директору БКТ" + Chr(10) + TextBox3 + " " + TextBox4 + Chr(10) + "от студента" + Chr(10) + TextBox6 + " " + TextBox5
1. Строка
Код:
'objWord.Selection.ParagraphFormat.Alignment = wdAlignParagraphRight
оформлена как комментарий и не выполняется т.к. в начале стоит символ '
2. Строка
Код:
objWord.Selection.ParagraphFormat.FirstLineIndent = 300
Должна выглядеть так:
Код:
objWord.Selection.ParagraphFormat.FirstLineIndent = 0
так как абзац является шапкой Заявления, выровненный по правому краю
3. Соответственно следуюий код
Код:
objWord.Selection.ParagraphFormat.FirstLineIndent = 200
objWord.Selection.Text = "Заявление"
Должен выглядеть так
Код:
objWord.Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
objWord.Selection.ParagraphFormat.FirstLineIndent = 0
objWord.Selection.ParagraphFormat.FirstLineIndent = 200
objWord.Selection.Text = "Заявление"
4. Код для теста Заявления должен выглядеть так:
Код:
objWord.Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
objWord.Selection.ParagraphFormat.FirstLineIndent = MiilimetersToPoints(12.5)
objWord.Selection.Text = "Прошу заменить мне студенчиский билет по той причине, что его " + ComboBox1 + ". Сумма в колличестве " + TextBox7 + " внесена на кассу."
5. Код ввода даты должен выглядеть так:
Код:
objWord.Selection.ParagraphFormat.Alignment = wdAlignParagraphRight
objWord.Selection.ParagraphFormat.FirstLineIndent = 0
objWord.Selection.Text = "Дата " + TextBox1
Пименов Александр вне форума Ответить с цитированием
Старый 26.12.2011, 11:13   #5
Пименов Александр
Форумчанин
 
Регистрация: 17.11.2010
Сообщений: 222
По умолчанию

3. Соответственно следуюий код
Код:


Код:
objWord.Selection.ParagraphFormat.FirstLineIndent = 200
objWord.Selection.Text = "Заявление"
Должен выглядеть так
Код:


Код:
objWord.Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
objWord.Selection.ParagraphFormat.FirstLineIndent = 0
objWord.Selection.Text = "Заявление"
Пименов Александр вне форума Ответить с цитированием
Старый 26.12.2011, 12:42   #6
RaTeN
Пользователь
 
Регистрация: 14.11.2010
Сообщений: 25
По умолчанию

так я говорю, что

Код:
objWord.Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
не работает вообще, он не выравнивае никак текст
RaTeN вне форума Ответить с цитированием
Старый 26.12.2011, 13:31   #7
Пименов Александр
Форумчанин
 
Регистрация: 17.11.2010
Сообщений: 222
По умолчанию

Цитата:
Сообщение от RaTeN Посмотреть сообщение
так я говорю, что

Код:
objWord.Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
не работает вообще, он не выравнивае никак текст
Правильно, потому что ParagraphFormat относится к объекту Paragraph
Код:
objWord.Selection.Paragraph(1).ParagraphFormat.Alignment = wdAlignParagraphCenter
Пименов Александр вне форума Ответить с цитированием
Старый 26.12.2011, 13:34   #8
Пименов Александр
Форумчанин
 
Регистрация: 17.11.2010
Сообщений: 222
По умолчанию

Текст абзаца:
objWord.Selection.Paragraph(1).Rang e.Text = "Заявление"
Пименов Александр вне форума Ответить с цитированием
Старый 26.12.2011, 13:35   #9
Пименов Александр
Форумчанин
 
Регистрация: 17.11.2010
Сообщений: 222
По умолчанию

objWord.Selection.Paragraph(1).Range.Text = "Заявление"
Пименов Александр вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
VBA Word,VBA Excel решить 2 задачи fafolo4ka Фриланс 6 05.03.2012 01:15
Работа на VBA (Word) pro100 я Помощь студентам 1 29.05.2010 22:32
VBA в Word jilik Microsoft Office Word 4 06.04.2010 18:27
Работать в Word, не открывая документы (работа с закрытыми документами Word) Георгиевич Microsoft Office Word 10 07.09.2009 11:19
Работа с MS Word с помощью VBA. Нужна помощь. ereality Microsoft Office Word 5 28.05.2008 18:50