Основные сведения об объектах Word, их свойствах и методах — КиберПедия 

Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...

Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...

Основные сведения об объектах Word, их свойствах и методах

2017-09-27 717
Основные сведения об объектах Word, их свойствах и методах 0.00 из 5.00 0 оценок
Заказать работу

Visual Basic for Applications поддерживает набор объектов, соответствующих элементам Word. Используя свойства и методы этих объектов можно автоматизировать все операции в Word. Однако целесообразно автоматизировать выполнение тех операций, для реализации которых нет стандартных средств в Word или их выполнение стандартными средствами является трудоемкой или рутинной работой.

Наиболее важными являются:

- Объект Document представляющий собой новый или созданный ранее открытый документ.

Основными свойствами объекта Document являются:

Count – количество открытых в данный момент документов;

ActiveDocument – активный документ.

Некоторые методы объекта Document и коллекции Documents:

Open – открывает файл, содержащий существующий документ и автоматически добавляет его в коллекцию;

Add добавляетновый пустой документ;

Save сохраняет изменения в существующем документе без закрытия;

SaveAs (только для объекта) сохраняет активный вновь созданный документ в текущей папке;

Item – позволяет получить доступ к элементу коллекции;

Activate (только для объекта) активизирует открытый документ;

PrintOut (только для объекта) печать документа;

Close закрывает документ.

- Объекты Character (символ), Word (слово), Sentence (предложение), Paragraph (абзац), Section (раздел документа), задающие структуризацию текста документа.

Все эти объекты имеют свойства:

Count – свойство возвращает количество элементов в коллекции;

First – свойство возвращает объект, являющийся первым элементом коллекции;

Last - свойство возвращает объект, являющийся последним элементом.

Коллекции Characters, Words, Sentences имеют единственный метод Item (Index).

Коллекция Paragraphs имеет все вышеперечисленные для данной группы коллекций свойства и множество свойств, значения которых определяют формат абзаца.

Формат абзаца может быть определен и с помощью методов. Приведем некоторые методы коллекции Paragraphs:

Item – определяет элемент коллекции;

Add – добавление нового пустого абзаца (параметр метода указывает точку вставки, задается объектом Range);

InsertParagraph, InsertParagraphAfter, InsertParagraphBefore – осуществляют вставку пустого абзаца вместо текста или после, или перед текстом, задаваемым объектом Selection или Range;

Reset – удаляет форматирование, сделанное вручную, применяя к абзацу формат, заданный стилем абзаца;

Indent, Outdent – увеличивают, уменьшают отступ абзаца от края листа;

TabHangingIndent (Count), TabIndent (Count) – увеличивают (Count>0), уменьшают (Count <0) выступ или отступ абзаца от края листа на заданное количество позиций;

Space1, Space2, Space15 – устанавливают межстрочный интервал (одинарный, двойной, полуторный).

- Объекты Range (диапазон) и Selection (выделение), представляющие части документа.

Объект Rangeпозволяет задать произвольный диапазон, представляющий собой последовательность индексированных элементов иможет быть получен через метод Range или свойство Range других объектов.

Свойствами объекта Range являются:

Start начальная символьная позиция диапазона.

End конечная символьная позиция диапазона.

Text позволяет получить или изменить содержимое объекта.

ОбъектSelectionзадает выделенную в документе область (фрагмент). Выделенный в документе фрагмент задает непрерывную область элементов, но не является диапазоном, заданным своим началом и концом.Выделить можно только один фрагмент, поэтому один объект Selectionможет быть активен в данный момент времени. Объект Selectionможет быть получен с помощью свойства Selectionили метода Select других объектов.

Ниже приведены некоторые методы присущие объектам Selection и Range:

Move – метод перемещения точки вставки;

MoveStart, MoveEND методы изменения значения свойств Start и End;

Collapse сворачивает диапазон к его началу или концу.

Next метод получения ссылки на очередной элемент коллекции объектов в диапазоне или выделенном фрагменте;

Delete - удаляет текст входящий в диапазон.

InsertAfter, InsertBefore вставляет текст до или после текста, входящего в диапазон. После вставки текста диапазон расширяется, включая в себя вставленный текст.

Copy копирует объект в буфер обмена;

Cut - перемещает объект в буфер обмена;

Paste позволяет поместить содержимое буфера в область, заданную объектом Range или Selection.

 

Содержание лабораторной работы

Довольно часто возникает ситуация, когда русский текст набирается в английской раскладке клавиатуры, или наоборот. Возникает необходимость решения задачи связанной с преобразованием символов в соответствии с их расположением на клавиатуре. Лабораторная работа предполагает решение следующих задач:

- создание процедуры преобразования набранного в английской раскладке клавиатуры текста в соответствии с русской раскладкой на основе предлагаемого алгоритма и ее отладка;

- написание процедуры создания нового документа, содержащего текст для отладки вышеуказанной процедуры;

- самостоятельное создание процедуры преобразования набранного в русской раскладке клавиатуры текста в соответствии с английской раскладкой и ее отладка;

- создание процедуры, создающей инструментальную панель с кнопками для запуска макросов преобразования текста.

Алгоритм процедуры преобразования набранного в английской раскладке клавиатуры текста в соответствии с русской раскладкой заключается в следующем. Для решения задачи построены две строковые константы Str_En и Str_Ru, каждая из которых содержит перечень символов, в той последовательности, как они расположены на клавиатуре и соответствует английской и русской раскладкам. В строке Str_En осуществляется поиск транслируемого символа, и, в случае его нахождения, он заменяется соответствующим символом строки Str_Ru. Из списка исключена русская буква "э". В английской раскладке этой букве соответствуют одинарные и двойные кавычки. Word может автоматически заменять прямые кавычки на угловые или "изящные", поэтому в алгоритме учтено, что букве "э" могут соответствовать символы кавычки с разной кодировкой.

Процедура преобразует текст выделенного фрагмента активного документа (объект Selection).

 

Выполнение лабораторной работы

1. Открыть новый документ Word и сохранить его в рабочей папке с именем Lab5.doc.

2. Создать новый модуль с именем Конвертор. Для этого:

- добавить новый модуль командой Insert\ Module;

- в окне свойств задать имя - Конвертор.

3. Добавить в модуль Конвертор текст процедуры, преобразующий введенные в английской раскладке клавиатуры символы в соответствии с русской раскладкой. Для этого:

- установить курсор в окно модуля и выполнить команду Insert/Procedure;

- в окне Add Procedure ввести имя Conv _En_Ru, выбрать тип процедуры - Подпрограмма (Sub), выбрать область определения процедуры - Общая (Public), нажать "Ok";

- ввести текст приведенной ниже процедуры Conv_En_Ru:

Public Sub Conv_En_Ru()

'Преобразование символов в соответствии с русской раскладкой клавиатуры

Const Str_En = "`qwertyuiop[]asdfghjkl;zxcvbnm,./" + _

"~QWERTYUIOP{}ASDFGHJKL:ZXCVBNM<>?"

Const Str_Ru = "ёйцукенгшщзхъфывапролджячсмитьбю." + _

"ЁЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЯЧСМИТЬБЮ,"

Dim Sym As String, Sym1 As Range

Dim PosSym As Byte

Dim TextResult As String

TextResult = ""

For Each Sym1 In Selection.Characters

Sym = Sym1

PosSym = InStr(Str_En, Sym)

If PosSym > 0 Then

Sym = Mid$(Str_Ru, PosSym, 1)

Else

Select Case Sym

'Кавычки переходящие в "э"

Case Chr(39): Sym = "э"

Case Chr(145): Sym = "э"

Case Chr(146): Sym = "э"

Case Chr(34): Sym = "Э"

Case Chr(147): Sym = "Э"

Case Chr(148): Sym = "Э"

Case Chr(171): Sym = "Э"

Case Chr(187): Sym = "Э"

Case Else: 'Кодировки совпадают

End Select

End If

TextResult = TextResult + Sym

Next

Selection.LanguageID = wdRussian

Selection.TypeText TextResult

End Sub

4. Подготовить пример для отладки процедуры. Для этого в окне редактора VBA нажать на инструментальной панели "Стандартная" кнопку "Вид Microsoft Word" и, перейдя в документ Word, создать таблицу. Ввести в первую ячейку первой строки текст всех символов, расположенных на алфавитно-цифровых клавишах в нижнем и верхнем регистре соответственно, расположив их в четыре строки, аналогично их расположению на клавиатуре:

`1234567890-=\~!@#$%^&*()_+| qwertyuiop[]QWERTYUIOP{} asdfghjkl;'ASDFGHJKL:" zxcvbnm,./ZXCVBNM<>?  

Скопировать введенный текст во вторую ячейку первого ряда и затем выделить содержимое второй ячейки;

5. Выполнить процедуру Conv_En_Ru. Для этого:

- перейти в редактор VBA;

6. выполнить команду Run\Run Sub/UserForm или нажать клавишу F5/

7. Проанализировать полученный результат. Возможно получение следующих результатов:

- выполнение процедуры завершилось аварийно - следует исправить синтаксическую ошибку и повторить выполнение процедуры;

- выполнение процедуры завершилось успешно, однако преобразование символов выполнилось неправильно - следует искать алгоритмическую ошибку, исправить ее и повторить выполнение программы;

- выполнение процедуры завершилось успешно, преобразование символов в соответствии с русской раскладкой выполнилось правильно - процедура отлажена и готова к использованию.

7. Добавить в модуль Конвертор процедуру Otl_э создания нового документа, содержащего текст на кавычки для отладки той части алгоритма процедуры Conv_En_Ru, которая преобразует введенный символ в букву "э". Текст процедуры:

Public Sub otl_э()

Dim Str_Sym As String

Set New_Doc = Documents.Add

New_Doc.Activate

Str_Sym = Chr(39) + Space(2) + Chr(145) + Space(2) + Chr(146) + Space(2)

Str_Sym = Str_Sym + Chr(34) + Space(2) + Chr(147) + Space(2) + _

Chr(148) + Space(2) + Chr(171) + Space(2) + Chr(187)

New_Doc.Paragraphs(1).Range.InsertBefore Text:=Str_Sym

New_Doc.SaveAs FileName:="Temp.doc"

End Sub

8. Выполнить процедуру Otl_э, убедиться в создании документа с именем Temp.doc. Документ должен содержать следующий текст кавычек: ' ‘ ’ " “ ” «».

9. Выполнить процедуру Conv_En_Ru, убедиться в правильности преобразования кавычек в букву "э".

10. По аналогии с алгоритмом процедуры Conv_En_Ru, самостоятельно разработать процедуру Conv_Ru_En преобразования набранного в русской раскладке клавиатуры текста в соответствии с английской раскладкой и добавить ее в модуль Конвертор. Подготовить пример для отладки процедуры Conv_Ru_En. Для этого скопировать содержимое второй ячейки первой строки таблицы документа Lab5.doc в первую и вторую ячейки второй строки. Текст из второй ячейки второй строки выделить. Выполнить отладку процедуры.

11. Добавить в модуль Конвертор процедуру, создающую инструментальную панель Преобразование с кнопками для запуска процедур преобразования текста Conv_En_Ru и Conv_Ru_En.

Текст процедуры:

Public Sub CreatePanel()

' Создание панели

Dim bar As CommandBar

Dim ctrl As CommandBarButton

Dim found As Boolean

found = False

' поиск в коллекции CommandBars создаваемой панели

For Each bar In CommandBars

If bar.Name = "Преобразование" Then found = True

Next

If Not found Then CommandBars.Add Name:="Преобразование",_ Position:=msoBarTop

Set bar = CommandBars("Преобразование")

On Error Resume Next

'Добавление кнопок на панель

Set ctrl = bar.FindControl(Tag:="Conv_En_Ru")

If ctrl Is Nothing Then

Set ctrl = bar.Controls.Add(Type:=msoControlButton)

With ctrl

.Caption = "En->Ru"

.OnAction = "Conv_En_Ru"

.TooltipText = "Перевод в русскую раскладку клавиатуры"

.Style = msoButtonCaption

.Tag = "Conv_En_Ru"

End With

End If

Set ctrl = bar.FindControl(Tag:="Conv_Ru_En")

If ctrl Is Nothing Then

Set ctrl = bar.Controls.Add(Type:=msoControlButton)

With ctrl

.Caption = "Ru->En"

.OnAction = "Conv_Ru_En"

.TooltipText = "Перевод в английскую раскладку клавиатуры"

.Style = msoButtonCaption

.Tag = "Conv_Ru_En"

End With

End If

bar.Visible = True

End Sub

Пояснения к тексту процедуры:

Перед созданием панели проверяется, не существует ли панель с таким именем. Если панель существует, то она выводиться на экран и процедура завершает свою работу. Перед созданием кнопки с помощью метода FindControl проверяется, нет ли на панели кнопки с указанной меткой. Если нет, то кнопка добавляется. Caption задает текст на кнопке, OnAction осуществляет связь с кнопкой процедуры, Tag определяет метку, связанную с кнопкой.

Выполнить отладку процедуры.

12. Продемонстрировать результаты работы процедур преподавателю.

13. Удалить панель Преобразование и сохранить файл Lab5.doc.

 


Поделиться с друзьями:

Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...

Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...

История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...

Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.073 с.