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

* * *

У программы Microsoft Word есть огромное количество возможностей по работе с текстом. И огромные возможности по замене и поиску, и средства помещения в документ графики, не уступающие многим современным издательским системам, и средства оформления документов красивыми шрифтами и границами… Казалось бы — что еще надо, все необходимые возможности уже учтены создателями Word? Однако иногда перед пользователями встают такие задачи, разрешить которые с помощью стандартных средств Word очень трудно, а то и вовсе невозможно. Но для этого в Word, как, впрочем, и во всех компонентах пакета Microsoft Office, как раз и есть очень мощное средство разрешения подобных проблем: встроенный язык программирования.

Вот наглядный пример, когда именно написание программы-макроса — единственный более-менее достойный выход из проблемы.

Все документы на моем компьютере оформлены приблизительно одинаково — для удобства редактирования, переноса текста из одного документа в другой и др. Можно даже сказать, в чем заключаются эти мои предпочтения — шрифт Times New Roman, 12 пунктов, выделения — жирным и курсивом, выравнивание по ширине, все отступы абзацев равны нулю, а красная строка — 1 см. Именно в таком формате я держу все свои документы Word. Кроме того, я очень люблю формат Rtf и стараюсь, по- возможности, делать копии своих документов в этом формате. Но вот из Internet'а я скачал 50 файлов с интересующей меня информацией — скажем, рефератов по актуальным вопросам кардиологии. И все они были набраны разными людьми в соответствии с предпочтениями каждого: везде разный шрифт, разные размеры шрифта, отступы абзацев — все вкривь и вкось, выравнивание — то влево, то по ширине. В общем, работы по приведению в приемлемый вид — куча. (Для тех, кто является решительным противником однообразия оформления своих документов, приведу другую ситуацию: Вы являетесь организатором конференции, на которую все заинтересованные лица прислали свои доклады, и Вам надо привести их в однообразный вид для помещения в Internet, например, или для последующей отдельной распечатки каждого доклада.)

Можно, конечно, повозиться с каждым документом: открывать, ставить нужный шрифт, отступы, сохранять в формате Word, потом Rtf… Если документов — два, да даже десять, то еще как-то можно справиться, а если их сорок или сто? И вот тут-то придут на помощь макросы.

Но как можно написать программу, да-да, настоящую программу на настоящем языке программирования, ничего не зная о нем, кроме того, что он существует? Это действительно было бы очень трудно сделать на С++ или даже Delphi. Но для написания программ на VBA не надо особых знаний — они появятся в процессе работы. Важно лишь уметь думать.

Итак, начинаем.

Вначале я определился, что мне надо сделать с каждым документом. Во-первых, обязательно заменить шрифт на Times New Roman, 12 пунктов. Кроме того, необходимо сделать весь текст одного цвета. Во-вторых, убрать все отступы абзацев. В-третьих, заменить все выравнивание по левому краю выравниванием по ширине. Наконец, нужно обработать все документы, предварительно сохранив каждый в формате Rtf.

Я открыл пару документов из общей кучи и включил запись макроса, согласившись на его имя по умолчанию — все равно потом буду его редактировать. После начала записи макроса я стал обрабатывать документ, а Word скрупулезно переводил мои действия на язык VBA. Выбрал 'Правка-Выделить все', выбрал «Формат-Шрифт», поставил шрифт Times New Roman, 12 пунктов, Черный цвет. Выбрал «Формат-Абзац», обнулил все отступы и поставил одинарный межстрочный интервал и красную строку. Затем выбрал «Правка-Заменить», и, указав в графе «Формат-Абзац» для заменяемого — выравнивание влево, а для заменяющего — выравнивание по ширине, а также «Везде» в графе «Направление», провел замену выравниваний во всем тексте (выделенном целиком еще на первом шаге).

После окончания всех этих действий я сохранил документ командой Файл-Сохранить. Затем я выбрал команду Файл-Сохранить в формате Rtf и сохранил документ и в этом формате, после чего закрыл его и выбрал на панели записи макроса кнопку Остановить.

В принципе, назначив записанный макрос какой-нибудь кнопке или сочетанию клавиш, я мог бы на этом остановиться и обработать все документы, открыв их в Word и только нажимая на эту кнопку. Макрос бы просто выполнялся для каждого документа. Но нажимать на кнопку сорок-шестьдесят раз и сидеть около компьютера, ждать, пока все выполнится — не очень приятная перспектива. Хотелось бы, чтобы все было сделано автоматически, а самому пойти выпить кофе или чаю. А вот для этого уже надо записанный макрос отредактировать, предварительно его изучив.

Итак, открываем редактор VBA и, развернув в Менеджере проектов содержимое папки Normal (то есть макросов в шаблоне Normal.dot), выберем модуль NewMacros. Именно в этот модуль попадают все макросы, записанные пользователем. Поскольку записанный нами макрос — первый, то он сразу и откроется.

Вот его содержимое:

Sub Макрос1()

' Макрос1 Макрос

Selection.WholeStory

With Selection.Font

Name = 'Times New Roman'

Size = 12

ColorIndex = wdBlack

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

Selection.Find.ParagraphFormat.Alignment = wdAlignParagraphLeft

Selection.Find.Replacement.ClearFormatting

Selection.Find.Replacement.ParagraphFormat.Alignment = wdAlignParagraphJustify

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,

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

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

Отметить Добавить цитату