0 / 0 / 0 Регистрация: 29.12.2014 Сообщений: 4 |
|
1 |
|
16.12.2015, 01:56. Показов 11208. Ответов 5
Здравствуйте. нужна помощь в данном вопросе.
0 |
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
16.12.2015, 01:56 |
5 |
Ушел с CyberForum совсем! 873 / 182 / 25 Регистрация: 04.05.2011 Сообщений: 1,020 Записей в блоге: 110 |
|
16.12.2015, 07:24 |
2 |
могу посоветовать такой вариант
0 |
Модератор 11341 / 4660 / 748 Регистрация: 07.08.2010 Сообщений: 13,497 Записей в блоге: 4 |
|
16.12.2015, 07:41 |
3 |
пройти по параграфам правда непонятно, что делать с маркированными и нумерованными списками и если заголовок выделен только жирностью, а не стилем или уровнем
1 |
FloyraitFai 0 / 0 / 0 Регистрация: 29.12.2014 Сообщений: 4 |
||||
16.12.2015, 09:47 [ТС] |
4 |
|||
Вот что накодил тоько что-то не работает=)
0 |
shanemac51 Модератор 11341 / 4660 / 748 Регистрация: 07.08.2010 Сообщений: 13,497 Записей в блоге: 4 |
||||
16.12.2015, 10:44 |
5 |
|||
ДОБАВИЛА ОТЛАДОК
0 |
KoGG 5590 / 1580 / 406 Регистрация: 23.12.2010 Сообщений: 2,366 Записей в блоге: 1 |
||||
16.12.2015, 15:23 |
6 |
|||
0 |
I have created a textbox in Word and can set various properties for it, such as position, text, text style, text horizontal alignment (left/right/center), color, and so on.
But I cannot find any settings to set the vertical alignment of text in the box to Top/Middle/Bottom. There’s a button for vertical alignment on the ribbon to set that property, but I can’t find it through the object inspector, through Intellisense, or through searching the net. I tried recording a macro, but the only line that showed up in the macro was the VBA line to select the textbox. Nothing else.
The ribbon button is beside the «set text direction» option, but I couldn’t find VBA for that setting either. I also tried the Textframe2 property, but saw nothing in there for vertical alignment.
Here’s the code that sets the horizontal alignment of text. Also, I included the enum that I think I need to use. But I can’t find the property to accept a value from the enum.
tbox.TextFrame.TextRange.ParagraphFormat.Alignment = wdAlignParagraphRight
WdVerticalAlignment enumeration (Word):
Name Value Description
wdAlignVerticalBottom 3 Bottom vertical alignment.
wdAlignVerticalCenter 1 Center vertical alignment.
wdAlignVerticalJustify 2 Justified vertical alignment.
wdAlignVerticalTop 0 Top vertical alignment.
Does anyone know the syntax for the property that I need to set to vertically align text inside a textbox shape? Thank you
- Добро пожаловать на Форум по VBA, Excel и Word.
-
Войти -
Регистрация
Форум по VBA, Excel и Word
Почта для связи: Box1100@yandex.ru
14 апреля 2023, 20:32
Главное меню
Главное меню
-
Начало
-
Поиск
- Форум по VBA, Excel и Word
-
►
Word -
►
Макросы в Word -
►
Word VBA Макросы. Как выровнять текст по центру ячейки?
Автор Посетитель 08.07.2021, 21 июля 2021, 16:12
Печать
Вниз
Страницы1
Действия пользователя
Посетитель 08.07.2021
- Посетитель форума
- Сообщения: 12
- Записан
Word VBA Макросы. Как выровнять текст по центру ячейки?
21 июля 2021, 16:12
Как сделать так, чтобы текст был в ячейке не слева, а по центру?
Администратор
- Administrator
- Сообщения: 2,252
- Записан
Re: Word VBA Макросы. Как выровнять текст по центру ячейки?
#1
21 июля 2021, 16:15
Этот макрос выравнивает текст по центру ячейки, внутри которой находится курсор.
Sub Макрос()
Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
End Sub
Посетитель 08.07.2021
- Посетитель форума
- Сообщения: 12
- Записан
Re: Word VBA Макросы. Как выровнять текст по центру ячейки?
#2
21 июля 2021, 16:19
спасибо
Печать
Вверх
Страницы1
Действия пользователя
- Форум по VBA, Excel и Word
-
►
Word -
►
Макросы в Word -
►
Word VBA Макросы. Как выровнять текст по центру ячейки?
Действия пользователя
Печать
Sub CommandButton2_Click() Dim FileName As String, oMyDoc As Word.Document FileName = GetFilePath If FileName$ = "" Then Exit Sub MsgBox "Выбран файл: " & FileName$ Set oMyDoc = Documents.Open(FileName$) oMyDoc.Activate Dim P As Paragraph For Each P In ActiveDocument.Paragraphs If IsOrdinaryParagraph(P) Then P.Range.ParagraphFormat.Alignment = wdAlignParagraphCenter Next End Sub Function IsOrdinaryParagraph(Par As Paragraph) As Boolean Dim ParCharLen&, i& With Par.Range ParCharLen = Len(Trim$(.Text)) If ParCharLen = 1 Then Exit Function ' Пустая строка If .ListFormat.ListType > 0 Then Exit Function ' Список If .Tables.Count > 0 Then Exit Function ' Таблица If .InlineShapes.Count > 0 Then Exit Function ' Рисунок If .OMaths.Count > 0 Then Exit Function ' Формула If .Style.NameLocal Like "Заголовок*" Then Exit Function 'Заголовок Select Case .StoryType Case wdCommentsStory ' Комментарии. Exit Function Case wdEndnoteContinuationNoticeStory Exit Function Case wdEndnoteContinuationSeparatorStory Exit Function Case wdEndnoteSeparatorStory Exit Function Case wdEndnotesStory Exit Function Case wdEvenPagesFooterStory ' Нижний колонтитул Exit Function Case wdEvenPagesHeaderStory ' Верхний колонтитул Exit Function Case wdFirstPageFooterStory ' Нижний колонтитул 1-ой страницы раздела Exit Function Case wdFirstPageHeaderStory ' Верхний колонтитул 1-ой страницы раздела Exit Function Case wdFootnoteContinuationNoticeStory Exit Function Case wdFootnoteContinuationSeparatorStory Exit Function Case wdFootnoteSeparatorStory Exit Function Case wdFootnotesStory 'Текст сноски. Exit Function Case wdPrimaryFooterStory ' Нижний колонтитул Exit Function Case wdPrimaryHeaderStory ' Верхний колонтитул Exit Function Case wdTextFrameStory 'Текстовая рамка - полотно Exit Function Case wdMainTextStory ' Основной текст , только его и надо проверять Case Else Exit Function End Select If .Fields.Count > 0 Then For i = 1 To .Fields.Count Select Case .Fields(i).Type Case wdFieldTOC: Exit Function ' Содержание Case wdFieldEmbed: Exit Function ' Внедренный OLE объект Case wdFieldIncludePicture: Exit Function ' Поле с рисунком Case wdFieldBibliography: Exit Function ' Поле - библиография End Select Next i End If If ParCharLen < 20 And (UCase$(.Text) Like "РИС*") Then Exit Function ' Нумерация рисунков If ParCharLen < 20 And (UCase$(.Text) Like "ДИА*") Then Exit Function ' Нумерация диаграмм If ParCharLen < 20 And (UCase$(.Text) Like "ТАБ*") Then Exit Function ' Нумерация таблиц End With IsOrdinaryParagraph = True End Function
- Remove From My Forums
-
Question
-
Feeling like a complete idiot and not sure if I’m posting to the right place but this should be the last of 3 posts. I’m creating an MS Word table. Inserting text OK. Now that the text is inserted I want to set it to be aligned to the bottom of the cell
that it’s in.However this is not working and the closest thing I can find.
In fact I’m finding very little about aligning text inside a cell of an MS Word table with VBA at all. I’ve actually tried four variations of this with no luck.
WordObj.ActiveDocument.Tables(4).Cell(Row:=N, Column:=1).Range.ParagraphFormat.Alignment = wdAlignVerticalBottom
I’m very new to VBA and my first code is to copy excel tables and paste it at word. It’s working, but the problem is that all tables are pasted left-aligned and I want it center aligned. Does anyone knows how to do it? Going to post my code here:
Sub excel2word()
Dim objWord As New Word.Application
'Copy the range Which you want to paste in a New Word Document
Set objWord = CreateObject("Word.Application")
For i = 2 To 200
With objWord
.Documents.Add
Sheets("Plan2").Select
Range("A" & i).Copy
.Selection.PasteAndFormat (wdFormatPlainText)
.Selection.TypeParagraph
Sheets("Teste").Select
Range(Cells((26 * (i - 1) + 1), 1).Address, Cells(((26 * (i - 1) + 7)), 3).Address).Copy
.Selection.PasteExcelTable True, False, False
.Visible = True
.Selection.TypeParagraph
Sheets("Teste").Select
Range(Cells((26 * (i - 1) + 8), 1).Address, Cells(((26 * (i - 1) + 16)), 3).Address).Copy
.Selection.PasteExcelTable True, False, False
.Visible = True
.Selection.TypeParagraph
Sheets("Teste").Select
Range(Cells((26 * (i - 1) + 17), 1).Address, Cells(((26 * (i - 1) + 25)), 3).Address).Copy
.Selection.PasteExcelTable True, False, False
.Visible = True
.Selection.TypeParagraph
End With
Next
End Sub
As you can see, this code copy paste 3 tables at one interaction, that is 600 tables in total! So, it gets very boring to center one by one.
Any help is very appreciated!
- Коллекция
Paragrahs. - Интервалы.
- Отступы
и выступы. - Создание
структуры документа. - Горизонтальное
выравнивание. - Буквица.
- Формат
абзацев. - Границы.
1.Коллекция Paragraphs.
Любой документ Word состоит из
набора абзацев, которые образуют структуру документа. Признаком конца абзаца
является непечатаемый символ абзаца, который по умолчанию невидим.
Для его отображения в окне диалога Параметры, которое
отображается выбором команды Сервис необходимо установить флажок Знаки
абзацев. Это также можно выполнить, используя следующий код:
ActiveWindow.View.ShowParagraphs
= True
ActiveWindow – это объект типа Window, связанный с текущим активным окном редактирования Word. Чтобы скрыть знаки абзацев, свойству ShowParagraphs необходимо присвоить значение False.
Для автоматизации работы с абзацами следует использовать
коллекцию Paragraphs, которая содержит все абзацы
конкретного документа. Доступ к нужному абзацу осуществляется с помощью объекта
Paragraph, являющегося конкретным абзацем документа.
Для получения ссылки на коллекцию можно использовать
следующий синтаксис.
Dim objParagraphs as Paragraphs
Set objParagraphs = Documents(Item).Paragraphs
Здесь Item – индекс, указывающий
на определенный документ из семейства открытых документов Documents.
Для перебора всех абзацев документа можно использовать цикл For Each…Next
В примере показан код, позволяющий выровнять все
абзацы по центру.
Dim b As Paragraph
For Each b In ActiveDocument.Paragraphs
b.Alignment = wdAlignParagraphJustify
Next
Для получения ссылки к отдельному абзацу можно получить с
помощью метода Item, являющегося
методом по умолчанию.
Синтаксис:
Dim objParagraph as Paragraph
Set objParagraph = Doocuments
(Item).Paragraphs.[Item](Index)
Item – индекс
указывающий на определенный документ из семейства открытых документов Documents.
Index – указывает на порядковый
номер абзаца в семействе Paragraphs. Первый абзац
документа имеет индекс 1, а индекс последнего можно узнать с помощью свойства Count объекта Paragraphs.
В примере показан код, позволяющий отобразить
информационное окно, в котором будет показан индекс последнего абзаца активного
документа:
MsgBox
«индекс последнего абзаца:» & ActiveDocument.Paragraphs.Count
Для перемещения по абзацам документа можно использовать методы
Next и Previews.
Первый метод позволяет получить ссылку на следующий абзац, а
второй на предыдущий абзац.
Синтаксис:
objParagraph.Next
или
objParagraph.Preview
Для форматирования абзацев также можно использовать объект ParagraphFormat. Этот объект обладает такими же свойствами
и методами, связанными с форматированием отдельного абзаца, как и объект Paragraph. Для объявления объекта типа ParagraphFormat
можно использовать следующий синтаксис:
Dim objParformat
as ParagraphFormat
Set objParFormat = Document(Item).Paragraph(Index).Format
Для создания нового абзаца используется метод Add объекта Paragraphs.
Синтаксис:
ObjParagraph.Add[(range)]
Параметр Range позволяет указать
область, перед которой будет добавлен новый абзац. Если параметр опущен, то
абзац добавляется в конец документа.
В примере показан код позволяющий присвоить
переменной objParagraph ссылку на новый абзац,
добавленный перед выделенным фрагментом или в месте, на которое указывал
курсор.
Dim g As Paragraph
Set g = ActiveDocument.Paragraphs.Add(Selection.Range)
2.Интервалы.
Абзацные.
Интервалы между абзацами позволяют создавать визуальное
разделение между значимыми абзацами, например между заголовками и основным
текстом.
Для задания интервалов между абзацами можно использовать три
метода и два свойства.
Метод OpenUp – позволяет
вставить перед данным параграфом интервал, равный 12 пунктам. Использование
этого метода эквивалентно присвоению соответствующего значения свойству SpaceBefore.
ObjParagraph.SpaceBefore[=space]
Параметр Space (тип Long) содержит целое неотрицательное число, указывающее на
величину интервала перед данным абзацем.
Свойство SpaceAfter — содержит
целое неотрицательное число, указывающее на величину интервала после данного
абзаца.
Метод CloseUp – позволяет
удалить интервалы перед данным абзацем. Использование этого метода эквивалентно
присвоению свойству SpaceBefore значение 0.
Метод OpenOrCloseUp – позволяет
управлять установлением и удалением абзацных интервалов. Если абзац не имеет
интервала (свойство SpaceBefore имеет значение 0), то
этот метод позволяет установить его подобно методу OpenUp.
Если интервал уже существует, то метод удаляет его подобно методу CloseUp.
Методы DecreaseSpacing и IncreaseSpacing позволяют соответственно уменьшить или
увеличить величину абзацного интервала на 6 пунктов одновременно перед абзацем
и после него.
Межстрочные.
Межстрочные интервалы позволяют задать величину расстояния
между строк в пунктах. По умолчанию для текста, отформатированного стилем Обычный, величина межстрочного интервала равна 12 пунктам.
Межстрочные интервалы изменяются с помощью методов
Space1, Space15 и Space2. Применение этих методов позволяет увеличить
стандартный межстрочный размер в один, полтора и два раза соответственно.
Свойство LineSpacing – содержит
текущую величину межстрочного значения.
ObjParagraph.LineSpacing[=Space]
Параметр Space позволяет
указать необходимую величину межстрокового интервала.
Пример: показан код, позволяющий проверить величину межстрокового интервала у всех в документе и, если такие имеются, присвоить им значение по умолчанию (12 пунктов)
Dim G As Paragraph
For Each G In ActiveDocument.Paragraphs
With G
If .LineSpacing > Application.LinesToPoints(1) Then
.Space1
End If
End With
Next
Метод LinesToPoints объекта
Application позволяет преобразовать линии в пункты.
Application.LinesToPoints(Lines)
Параметр Lines позволяет
задать число линий, значение которых нужно преобразовать в пункты. Например,
если параметр Lines имеет значение 2, то метод
возвращает число 24.
Свойство LineSpacingRule позволяет установить значение межстрокового интервала в абзаце.
wdLineSpaceAtLeast – минимальный
размер
wWdLineSpaceExactly – точный
размер
wdLineSpaceMultiple
— множитель
3.Отступы и выступы.
Отступы и выступы позволяют выполнить в документе выделения
определенных абзацев текста. Они создаются с помощью дополнительных полей
страницы.
Метод Indent – позволяет
сместить все строки абзаца вправо на величину равную одной табуляции.
Использование этого метода аналогично смещению вправо указателя отступа,
находящегося на верхней линейке в окне редактирования.
Метод IndentCharWidth позволяет
сместить все строки абзаца вправо на указанное число символов.
ObjParagraph.IndentCharWidth (Count)
Метод IndentFirstLineCharWidth позволяет
сместить вправо только первую строку абзаца, т.е. создать «красную строку».
Свойство FirstLineIndent содержит
число пунктов, на которые первая строка абзаца смещена вправо или влево. Если
«красной строки» нет, то свойство возвращает нуль. Если строка имеет отступ, то
возвращается значение большее нуля, если выступ – меньше нуля.
objParagraph.FirstLineIndent[=count]
При присвоении свойству некоторой величины в пунктах можно
использовать метод LinesToPoints объекта Application, который позволяет преобразовать размер
стандартной ширины линии в пункты: одна линия = 12 пунктам.
Пример: показан код, позволяющий выполнить отступ первого
абзаца и отступ его первой строки на 12 пунктов.
With ActiveDocument.Paragraphs(1)
.Indent
.FirstLineIndent = LinesToPoints(1)
End With
Метод TabHangingIndent позволяет
выполнить отступ и выступ первой строки абзаца на значение, кратное величине
табуляции.
ObjParagraph.TabHangingIndent(count)
Параметр Count (тип Integer) содержит число, характеризующее количество
символов табуляции, на которое должна быть смещена первая строка абзаца -–при смещении вправо значение должно быть положительным, а
влево – отрицательно.
Метод Outdent позволяет
сместить все строки абзаца влево на величину, равную одной табуляции.
Свойство LeftIndent содержит
значение в пунктах, на которые смещен абзац слева.
Свойство RightIndent содержит
значение в пунктах, на которые смещен абзац справа.
Метод TabIndent позволяет
выполнить отступ или выступ левой границы абзаца на значение, кратное величине
табуляции.
4.Создание структуры документа.
Режим структуры документа – это особый режим, в котором
документ может быть представлен на необходимом уровне детализации: от
заголовков первого уровня до абзацев. Режим структуры предназначен для работы с
большими документами, имеющими множество заголовков разных уровней.
В режиме структуры базовым элементом для работы является
абзац. Это не исключает возможность редактирования текста, однако, все
инструменты, определенные для этого режима, действуют только на абзацы или
структуры образованные абзацами.
Как правило, при работе с текстом документа управляющие его
структурой, применяются ко всем абзацам, а свойства – к конкретным абзацам.
Метод OutLinePromote позволяет
повысить уровень текущего абзаца.(если абзац
отформатирован стилем Заголовок2, то применение этого метода автоматически
назначит ему стиль Заголовок1.)максимальный уровень – первый.
Метод OutLineDemote позволяет
понизить уровень текущего абзаца. Минимальный уровень – девятый.
Метод OutLineDemoteToBody позволяет
понизить абзац, являющийся заголовком любого уровня, до обычного текста.
Пример: показан код позволяющий преобразовать все абзацы,
отформатированные стилем заголовок9 в обычный текст
Dim t As Paragraph
For Each t In ActiveDocument.Paragraphs
If t.OutlineLevel = wdOutlineLevel9 Then
t.OutlineDemoteToBody
End If
Next
Свойство OutLineLevel содержит
значение, указывающее на текущий уровень абзаца.
5.Горизонтальное выравнивание.
Для горизонтального выравнивания текста в документе можно
использовать выравнивание строк абзаца по левому или правому краю, по ширине или
по центру. По умолчанию Word выравнивает весь текст
по левому полю документа.
Свойство Aligment позволяет
выполнить горизонтальное выравнивание.
ObjParagraph.Aligment [=Aligment]
Параметр Aligment позволяет
установить порядок выравнивания:
wdAlignParagraphLeft – по левому
краю
wdAlignParagraphCenter
– по центру
wdAlignParagraphRight
– по правому краю
wdAlignParagraphJustify
– по ширине
6.Буквица.
Буквица – это большая заглавная буква первого слова в
абзаце.
В VBA создание буквиц в документе реализуется с помощью свойства
DropCap объекта Paragraph.
Пример: создать буквицу для первого абзаца активного
документа.
With ActiveDocument.Paragraphs(1).DropCap
.Position =
wdDropNormal
.LinesToDrop = 3
End
With
7.Формат абзацев.
Форматирование абзаца документа выполняется с помощью
объекта ParagraphFormat, ссылку на который можно
получить с помощью свойства Format объекта Paragarph. (смотрите выше)
Ссылку на объект типа ParagraphFormat
можно сделать также с помощью свойства Paragraphformat
объекта Selection.
Selection.ParagraphFormat
Этот способ более предпочтителен, так в этом случае ссылка
не будет привязана к конкретному абзацу. Объект ParagarphFormat
будет связан с абзацем, выделенным в текущий момент, или с тем, в котором
находится курсор.
Объявлять переменную и типа ParagarphFormat
имеет смысл только при использовании сложного форматирования. Для внесения
небольших изменений удобнее использовать
свойство Format.
Пример: горизонтальное выравнивание всех абзацев документа
по центру.
ActiveDocument.Paragraphs.Format.Alignment = wdAlignParagraphCenter
8.Границы.
В VBA для доступа к любым границам используется объект Borders, являющийся семейством объектов Border,
каждый из которых связан с границей.
Для получения ссылки на семейство Borders
можно использовать свойство Borders.
ObjParagraph.Borders[(Border)]
Параметр Boredr позволяет
указать на конкретную границу.
Пример: назначаем нижней границе первого абзаца стиль
двойной линии.
ActiveDocument.Paragraphs(1).Borders(wdBorderBottom).LineStyle = wdLineStyleDouble
Формат границы устанавливается с помощью свойств linestyle и LineWidth. Свойство lifestyle – позволяет установить стиль линии границы, а
свойство LineWidth – ее ширину.
objBorder.LineStyle[=LineStyle]
objBorder.LineWidth[=LineWidth]
Цвет линии определяется с помощью свойства Color.
objBorder.ColorIndex [=Color]
Dim s As Border
Set s = ActiveDocument.Paragraphs(1).Borders(wdBorderLeft)
With s
. LineStyle = wdLineStyleDot
. ColorIndex = wdBlue
. LineWidth = wdLineWidth025pt
End With
9.Объект
Document.
Объект Document представляет собой
конкретный документ, открытый в MS Word. Доступ к
нему можно получить с помощью коллекции Documents.
По умолчанию любой только что открытый документ является
активным. Однако при работе с несколько открытыми документами требуется механизм активизации нужного документа для этого
используется метод Activate.
Синтаксис:
ObjDocument.Activate
Метод возвращает ссылку на объект типа Document.
Пример:
Set objDocument1=Documents.Add
‘создание и активизация документа Doc1
Set objDocument2=Documents.Add
‘создание и активизация документа Doc2
objDocument1.Activate ‘активизация документа Doc1
Для обращения к активному документу можно использовать
глобальное свойство ActiveDocument, которое
возвращает ссылку на объект типа Document. При таком
обращении можно избежать идентификации конкретного документа, обращаясь к
активному в данный момент времени документу напрямую.
Кроме объекта
связанного с активным документом, в VBA имеется объект, связанный с текущим
документом. Объект ThisDocumentсе всегда указывает на
тот документ , в проектк
которого он объявлен. Свойства и методы объекта ThisDocument
соответствуют свойствам и событиям объекта Document
Этот объект является глобальным и его дополнительное
объявление не требуется. Свойства.
GrammarChecked – определяет была ли запущена проверку грамматики для
заданного документа(true) или нет (false). В случае необходимости повторного запуска
грамматики этому свойству следует задать значение false.
GrammaticalErrors – возвращает
коллекцию ProfreadingErrors, которая включает
предложения, содержащие грамматические ошибки диапазона или всего документа. В
том случае, если грамматические ошибки отсутствуют, свойство GrammaticalErrors возвращает значение 0.
Name – определяет имя файла на
диске, в котором хранится документ. С помощью этого свойства можно получить имя
файла, но нельзя изменить его.
Paragraphs – возвращает коллекцию Paragraphs, которая содержит все абзацы в заданном
документе, диапазоне или выделении.
ReadOnly – это свойство имеет
значение true, если внесенные в документ изменения не
могут быть сохранены в нем.
Saved – если файл не сохранен, то
данное свойство имеет значение true; еслм нет – False.
ShowSpellingErrors – true _позволяет установить режим
подчеркивания слов, содержащих орфографические ошибки.
ShowGrammaticalErrors – позволяет
задать режим подчеркивания грамматических ошибок во время ввода текста в
документ(true).
Styles – возвращает коллекцию Styles, которая содержит все стили данного документа. Tables —
возвращает коллекцию Tables, которая содержит все
таблицы данного документа, диапазона или выделения.
TablesOfContents — возвращает
коллекцию TablesOfContents, которая содержит все
оглавления данного документа.
Type – возвращает тип документа:
wdTypeDocument – обычный документ,
wdTypeTemplate – шаблон.
Windows — возвращает коллекцию Windows, которая содержит все окна данного документа.
Tables — возвращает коллекцию Tables, которая содержит все таблицы данного документа,
диапазона или выделения.
TablesOfContents — возвращает
коллекцию TablesOfContents, которая содержит все
оглавления данного документа.
Type – возвращает тип документа:
wdTypeDocument – обычный документ,
wdTypeTemplate – шаблон.
Windows — возвращает коллекцию Windows, которая содержит все окна данного документа.
Методы.
CheckGrammar – предназначен для проверки орфографии и грамматики в заданном
документе или диапазоне. Если в результате проверки были найдены ошибки, то
будет автоматически загружено окно диалога Правописание. Заметим, что проверка
правописания может выполнятся для выделенного
текстового фрагмента или отдельного строкового выражения. В первом случае в
качестве родительского объекта используется объект Selection.
Selection.CheckGrammar
Чтобы проверить правописание в стоковом выражении,
необходимо использовать метод CheckGrammar объекта Application. Проверяемое выражение передается в метод с
помощью параметра String
Синтаксис: Application.CheckGrammar(String)
Признак выполнения проверки содержится в свойстве GrammarChecked.
В приведенном примере показан код, позволяющий создать
информационное окно, в котором содержатся все найденные в документе ошибки.
Sub ошибки()
With ActiveDocument.GrammaticalErrors
For i = 1 To .Count
s = s
& .Item(i) & vbCrLf(Комбинация символов возврата каретки и перевода
строки)
Next
End With
MsgBox s
End Sub
CheckSpelling –
начинает проверку орфографии для заданного документа или диапазона.
PrintPreview – переключает
MS Word в режим предварительного просмотра документа.
Range – возвращает объект Range, задаваемый начальной и конечной позициями символов
фрагмента текста.
Синтаксис:
ObjDocument.Range(Start, End)
Start – определяет
позицию первого символа диапазона. Нулевое значение данного свойства
соответствует началу документа.
End – определяет позицию последнего символа диапазона.
Redo – повторяет последнее
из отмененных до этого действий или целую последовательность отмененных
действий. Данный метод возвращает значение true, если
действие было повторено.
Синтаксис:
ObjDocument.Redo(Times)
Times – определяет количество
повторяемых действий.
Пример: ActiveDocument.Redo 2
Save – в отличии от одноименного метода коллекции Documents,
не имеет параметров. Данный метод аналогичен выполнению команды Файл®Сохранить.
SaveAs – позволяет
выполнить действия, аналогичные действиям, выполняемым командой Файл®Сохранить
Как. Параметры этого метода совпадают с параметрами, установленными в окне
диалога Сохранение документа.
objDocument.SaveAs(FileName, FileFormat,
LockComments, Password, AddToRecentFiles,
WritePassword, ReadOnlyRecommended,
EmbedTrueTypeFonts, SaveNativePictureFormat,
SaveFormsData, SaveAsAOCELetter)
Параметр FileName –
содержит имя сохраняемого файла.
FileFormat – содержит формат в котором будет выполнено сохранение.
LockComments – содержит
указание на возможность добавления коментариев.
Password – пароль на открытие документа.
AddToRecentFiles – указывает на возможность добавления сохраняемого файла в список
недавно открытых в меню Файл.
WritePassword – пароль на
запись в документе.
ReadOnlyRecommended –
указывает на создание обязательного предупреждения об открытии только для
чтения.
EmbedTrueTypeFonts –
указывает на сохранение шрифтов вместе с документом.
SaveNativePictureFormat
– указывает на сохранение внедренной графики в формате Windows.
SaveFormsData – указывает
на сохранение данных, внесенных пользователем в форму.
SaveAsAOCELetter – если
сохраненный документ имеет присоединенную почтовую программу, то при задании
этому параметру значения true
документ будет сохранен как письмо.
Undo – отменяет последнее
выполненное действие или последовательность действий.
Синтаксис: objDocument.Undo(times).
UpdateStyle – копирует все стили из
присоединенного шаблона в документ. При этом выполняется автоматическая
замена всех уже имеющихся стилей с именами, совпадающими с именами стилей из шаблона.
Режим отображения документа.
Для управлениями
отображения документа используется объект View, являющийся объектом-свойством объекта Window.
Синтаксис:
ObjWindow.View.Type[ = ViewType]
wdOutlineView – режим
структуры.
wdPrintView – режим
разметки.
wdNormalView – обычный
режим.
wdPruntPreview – режим
предварительного просмотра.
wdWebView – режим Web – документа.
Пример: показан код позволяющий перевести
документ из режима предварительного просмотра документа в обычный режим
просмотра
With ActiveWindow.View
If .Type = wdPrintPreview Then
.Type = wdNormalView
Else
MsgBox
«режим отображения:» & .Type
End If
End WithРежим
отображения документа.
Для управлениями
отображения документа используется объект View, являющийся объектом-свойством объекта Window.
Синтаксис:
ObjWindow.View.Type[ = ViewType]
wdOutlineView – режим
структуры.
wdPrintView – режим
разметки.
wdNormalView – обычный
режим.
wdPruntPreview – режим
предварительного просмотра.
wdWebView – режим Web – документа.
Пример: показан код позволяющий перевести
документ из режима предварительного просмотра документа в обычный режим
просмотра
With ActiveWindow.View
If .Type = wdPrintPreview Then
.Type = wdNormalView
Else
MsgBox
«режим отображения:» & .Type
End If
End With
- Коллекция
Paragrahs. - Интервалы.
- Отступы
и выступы. - Создание
структуры документа. - Горизонтальное
выравнивание. - Буквица.
- Формат
абзацев. - Границы.
1.Коллекция Paragraphs.
Любой документ Word состоит из
набора абзацев, которые образуют структуру документа. Признаком конца абзаца
является непечатаемый символ абзаца, который по умолчанию невидим.
Для его отображения в окне диалога Параметры, которое
отображается выбором команды Сервис необходимо установить флажок Знаки
абзацев. Это также можно выполнить, используя следующий код:
ActiveWindow.View.ShowParagraphs
= True
ActiveWindow – это объект типа Window, связанный с текущим активным окном редактирования Word. Чтобы скрыть знаки абзацев, свойству ShowParagraphs необходимо присвоить значение False.
Для автоматизации работы с абзацами следует использовать
коллекцию Paragraphs, которая содержит все абзацы
конкретного документа. Доступ к нужному абзацу осуществляется с помощью объекта
Paragraph, являющегося конкретным абзацем документа.
Для получения ссылки на коллекцию можно использовать
следующий синтаксис.
Dim objParagraphs as Paragraphs
Set objParagraphs = Documents(Item).Paragraphs
Здесь Item – индекс, указывающий
на определенный документ из семейства открытых документов Documents.
Для перебора всех абзацев документа можно использовать цикл For Each…Next
В примере показан код, позволяющий выровнять все
абзацы по центру.
Dim b As Paragraph
For Each b In ActiveDocument.Paragraphs
b.Alignment = wdAlignParagraphJustify
Next
Для получения ссылки к отдельному абзацу можно получить с
помощью метода Item, являющегося
методом по умолчанию.
Синтаксис:
Dim objParagraph as Paragraph
Set objParagraph = Doocuments
(Item).Paragraphs.[Item](Index)
Item – индекс
указывающий на определенный документ из семейства открытых документов Documents.
Index – указывает на порядковый
номер абзаца в семействе Paragraphs. Первый абзац
документа имеет индекс 1, а индекс последнего можно узнать с помощью свойства Count объекта Paragraphs.
В примере показан код, позволяющий отобразить
информационное окно, в котором будет показан индекс последнего абзаца активного
документа:
MsgBox
«индекс последнего абзаца:» & ActiveDocument.Paragraphs.Count
Для перемещения по абзацам документа можно использовать методы
Next и Previews.
Первый метод позволяет получить ссылку на следующий абзац, а
второй на предыдущий абзац.
Синтаксис:
objParagraph.Next
или
objParagraph.Preview
Для форматирования абзацев также можно использовать объект ParagraphFormat. Этот объект обладает такими же свойствами
и методами, связанными с форматированием отдельного абзаца, как и объект Paragraph. Для объявления объекта типа ParagraphFormat
можно использовать следующий синтаксис:
Dim objParformat
as ParagraphFormat
Set objParFormat = Document(Item).Paragraph(Index).Format
Для создания нового абзаца используется метод Add объекта Paragraphs.
Синтаксис:
ObjParagraph.Add[(range)]
Параметр Range позволяет указать
область, перед которой будет добавлен новый абзац. Если параметр опущен, то
абзац добавляется в конец документа.
В примере показан код позволяющий присвоить
переменной objParagraph ссылку на новый абзац,
добавленный перед выделенным фрагментом или в месте, на которое указывал
курсор.
Dim g As Paragraph
Set g = ActiveDocument.Paragraphs.Add(Selection.Range)
2.Интервалы.
Абзацные.
Интервалы между абзацами позволяют создавать визуальное
разделение между значимыми абзацами, например между заголовками и основным
текстом.
Для задания интервалов между абзацами можно использовать три
метода и два свойства.
Метод OpenUp – позволяет
вставить перед данным параграфом интервал, равный 12 пунктам. Использование
этого метода эквивалентно присвоению соответствующего значения свойству SpaceBefore.