Документ взят из кэша поисковой машины. Адрес оригинального документа : http://www.hist.msu.ru/Departments/Inf/Stud/les7.doc
Дата изменения: Tue Apr 7 05:38:29 2009
Дата индексирования: Tue Oct 2 12:41:47 2012
Кодировка: koi8-r

Занятие 7 (31 марта)
Часть 2 (методическая).
. Работа с объектами MS Word

Часть 3 (практикум).
. Упражнения 1-3

Упражнение 1. Запись макроса для автоматического ввода текста в MS Word
Допустим, Вам приходится часто создавать тексты, которые должны
заканчиваться строками с подписью начальника, фамилией референта и номером
телефона, например, в таком виде:
Генеральный директор Иванов А.А.

Референт Петров М.М.
Тел. 939-1234

Создайте при помощи макрорекордера макрос, который бы автоматически
создавал такие строки. Этот макрос должен быть доступен для всех
создаваемых вами документов (все макросы, записанные пользователем,
попадают в модуль NewMacros папки Normal, то есть шаблона Normal.dot) и
запускаться с помощью специальной кнопки с картинкой и всплывающей
подсказкой "Подпись" (см. рис.):
[pic]

Для выполнения задания в разделе меню Сервис выберите Макрос -> Начать
запись. В окне Запись макроса в качестве имени макроса введите Подпись и
нажмите на кнопку Назначить макрос панели.
В окне Настройка на вкладке Команды перетащите элемент
Normal.NewMacros.Подпись в нужное место на панели управления. Затем
щелкните по перемещенному элементу правой кнопкой мыши, в контекстном меню
выберите пункт Выбрать значок для кнопки, затем выберите изображение. Еще
раз щелкните правой кнопкой мыши по этому элементу и в контекстном меню
выберите Основной стиль. Нажмите на кнопку Закрыть. Начнется запись
макроса.
Выполните нужные команды, а затем нажмите на кнопку Остановить запись.
Запустите макрос на выполнение и убедитесь, что он работает.

Упражнение 2. Редактирование макроса
Измените макрос так, чтобы он запрашивал фамилию референта.
Для этого добавьте перед Selection.TypeText строки
Dim sInput As String
sInPut = InputBox ("Введите фамилию ответственного исполнителя", "Запрос
данных")

и замените строку
Selection.TypeText Text :=("Референт Петров М.М.")

на строку
Selection.TypeText Text:=("Референт " & sInput)

Код 2
Sub Подпись()
'
' Подпись Макрос
' Макрос создан 04.02.2009 1
'
Dim sInput As String
sInput = InputBox("Введите фамилию референта", "Запрос данных")
Selection.TypeParagraph
Selection.TypeText Text:="Генеральный директор" & vbTab & vbTab & vbTab & _
vbTab & vbTab & "Иванов А.А."
Selection.TypeParagraph
Selection.TypeText Text:=("Референт " & sInput)
Selection.TypeParagraph
Selection.TypeText Text:="тел. 9391234"

Упражнение 3. Форматирование текста в MS Word
С помощью макрорекордера записать следующие действия с текстом:
. задать шрифт Times New Roman, 12 пунктов;
. сделать весь текст одного цвета (авто, т.е. черного);
. убрать все отступы справа и слева;
. поставить абзацный отступ 1 см.;
. заменить выравнивание по левому краю выравниванием по ширине;
. сохранить файл в форматах doc и rtf.
Открыть и изучить записанный макрос.

Вот (примерное) содержимое полученного макроса.
Код 3
Sub Макрос1()
' Макрос1 Макрос

Selection.WholeStory
With Selection.Font
.Name = "Times New Roman"
.Size = 12
.Bold = False
.Italic = False
.Color = wdColorAutomatic
...
...
...
End With

With Selection.ParagraphFormat
.LeftIndent = CentimetersToPoints(0)
.RightIndent = CentimetersToPoints(0)
.SpaceBefore = 0
.SpaceAfter = 0
.LineSpacingRule = wdLineSpaceSingle
.FirstLineIndent = CentimetersToPoints(1)
End With

Selection.Find.ClearFormatting
With Selection.Find.ParagraphFormat
.SpaceBeforeAuto = False
.SpaceAfterAuto = False
.Alignment = wdAlignParagraphLeft
End With
Selection.Find.ParagraphFormat.Borders.Shadow = False

Selection.Find.Replacement.ClearFormatting
With Selection.Find.Replacement.ParagraphFormat
.SpaceBeforeAuto = False
.SpaceAfterAuto = False
.Alignment = wdAlignParagraphJustify
End With
Selection.Find.Replacement.ParagraphFormat.Borders.Shadow = False

With Selection.Find
.Text = ""
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With

Selection.Find.Execute Replace:=wdReplaceAll

ActiveDocument.Save
ActiveDocument.SaveAs FileName:="Доклад1.rtf", FileFormat:=wdFormatRTF,
LockComments:=False, Password:="", AddToRecentFiles:=True, WritePassword
:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False,
SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:=
False

ActiveWindow.Close
End Sub

Упражнение 4. Русификация текста
Требуется преобразовать текст из западноевропейской кодировки Windows в
кириллицу. Имя текста - русификация.doc. Имеется информация о содержании
заголовка (первых трех строк текста):

Кафедра исторической информатики
Исторического факультета МГУ:
Общая информация

1. Продумать алгоритм и провести перекодировку нескольких букв с помощью
макрорекордера.
2. Рассмотреть полученный код и отредактировать его, включив цикл по всем
символам русского алфавита.

Код 4.
Sub Русификация()
'
' Русификация Макрос
' Макрос записан 04.02.2009 1
'
For i = 192 To 255
Selection.HomeKey Unit:=wdStory
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = ChrW(i)
.Replacement.Text = ChrW(i + 848)
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = True
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Next
End Sub

Упражнение 5. Перекодировка текста из КОИ-8 в кириллицу Windows
Имя текста - перекодировка.doc. Имеется информация о содержании заголовка
(первых трех строк текста):

Кафедра исторической информатики
Исторического факультета МГУ:
Общая информация

Продумать алгоритм и провести перекодировку нескольких букв с помощью
макрорекордера.