Литмир - Электронная Библиотека

Интернет-журнал "Домашняя лаборатория", 2007 №7 - img_164

Рис. 5.2. Менеджер проектов

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

Вот его содержимое (рис. 5.3):

Sub Макрос1()

'

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

' Макрос записан 27.01.00

'

Selection.WholeStory

With Selection.Font

Name = "Times New Roman"

Size = 12

Colorlndex = wdBlack

End With

With Selection.ParagraphFormat

LeftIndent = CentimetersToPoints(0)

Rightlndent = CentimetersToPoints(0)

SpaceBefore = 0. SpaceAfter = 0

LineSpacingRule = wdLineSpaceSingle

FirstLineIndent = CentimetersToPoints(1.27)

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

Ma tchAHWordForms = False

End With

Selection.Find.Execute Replace:=wdReplaceAll

ActiveDocument.Save

ActiveDocument.SaveAs FileName:="Доклад!.rtf", FileFormat:=wdFormatRTF, _ LockComments:=False, Password:="", AddToRecentFiles:=True, WritePassword _ ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, _

SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:= _

False

ActiveWindow.Close

End Sub

Рис. 5.3. Наш записанный макрос.

Разберем все его строки более подробно.

Sub Макрос1()

' Макрос1

'Макрос

' Макрос записан 13.01.02

'

Как нетрудно догадаться, это заголовок макроса. Слово "Sub" означает начало программы. Название программы — в данном случае "Макрос1" — является уникальным именем, по которому эту программу можно запустить из других программ этого модуля.

Знаки ' перед строчкой обозначают комментарии — то есть все, что стоит в той же строке после них, никак не влияет на работу программы. В окне редактора Visual Basic for Applications все комментарии отображаются зеленым цветом.

Selection.WholeStory

Скорее всего, это — переведенная на язык Visual Basic for Applications при записи макроса команда "Выделить все". В самом деле, ведь первое действие, выполненное в процессе записи — именно выделение всего текста. Подтвердить это нетрудно, просто поставив курсор на слово "WholeStory" и нажав кнопку вызова помощи F1. Справка языка Visual Basic for Applications устроена очень удобно — при ее вызове из редактора Visual Basic for Applications она "смотрит", не стоит ли курсор на одном из слов, являющихся командой Visual Basic for Applications, и, если курсор стоит именно на таком слове, то выводится справка, относящаяся к этой самой команде (рис. 5.4).

Рис. 5.4. Вот что показывает справка по слову WholeStory

Немножко непонятный текст, но при помощи словаря удастся перевести, что эта команда расширяет выделение на весь текст.

* * *

НЕБОЛЬШОЕ ОТСТУПЛЕНИЕ.

Конечно, при самом первом знакомстве с редактором Visual Basic for Applications эта информация вряд ли будет очевидной. Но стоит ее привести именно здесь, чтобы строение команд этого языка было более понятным.

Как уже говорилось в предыдущей главе, язык Visual Basic for Applications называется объектно-ориентированнным. Такое название дано этому языку, как, впрочем, и большому количеству других современных языков программирования, из-за особого строения его команд (более подробно синтаксис Visual Basic for Applications был описан выше). Типичная команда Visual Basic имеет такой вид: <Объект>.<Объект, входящий в первый объект>.<…>.<Тот объект, с которым нужно произвести действие>. «Собственно действие>. Иными словами, каждая команда пишется как бы "с конца": вначале определяется то, над чем надо произвести действие — объект, а затем само действие — метод. Разделителями компонентов команды служат знаки "точка". Вот пример такой команды:

Selection.Font.Size = 12

Эта команда устанавливает размер шрифта во всем выделенном тексте в 12 пунктов. У объекта Selection (то есть выделенная в данный момент часть текста) есть подобъект Font — шрифт выделенного текста, а у подобъекта Font — свойство Size. Свойство Size тоже можно считать подобъектом. Знак "=" — это оператор присваивания, в данном случае свойству Size объекта Font объекта Selection присваивается значение 12 — размер шрифта во всем выделенном тексте устанавливается в 12 пунктов. (Если в документе ничего не выделено, то в 12 пунктов устанавливается размер текущего шрифта и следующая набранная буква будет именно такого размера. Если выделен графический объект, то команда будет ошибочной, о чем Visual Basic for Applications выдаст соответствующее сообщение (рис. 5.5).)

Рис. 5.5. Попытка присвоить значение размера шрифта графическому объекту.

Кроме того, с помощью подобной команды можно получить информацию о текущем размере шрифта:

а = Selection.Font.Size

После ее выполнения переменная а будет иметь значение, равное размеру шрифта выделенного текста. Как видите, синтаксис команды подобен ситаксису предыдущей. (Если в документе ничего не выделено, то переменная а будет иметь значение размера шрифта следующего за курсором символа. Если разные части выделенного текста оформлены разными шрифтами, то переменная а будет иметь значение 9999999. Если выделен графический объект, то команда будет ошибочной, о чем Visual Basic for Applications выдаст соответствующее сообщение.)

* * *

With Selection

Font.Name = "Times New Roman"

Size = 12

Colorlndex = wdBlack

End With

Похоже, это что-то, связанное со шрифтом. В самом деле, ведь "Font" по-английски значит "шрифт", a "Selection" — "выделение". По слову "Name" можно заключить, что в этой команде устанавливается имя шрифта — "Times New Roman", а слово "Size", наверное, устанавливает его размер.".Colorlndex = wdBlack" — выглядит как команда, устанавливающая цвет шрифта: есть слово "Color" "цвет" и есть слово "Black" — "черный". Но чтобы не гадать попусту, посмотрим справку Visual Basic for Applications — поставим курсор на слово "Selection" и нажмем F1 (рис. 5.6).

Рис. 5.6. Справка по слову "Selection"

Используя англо-русский словарь, можно узнать, что "Selection" означает выделенный текст или точку ввода текста. Посмотрим справку по слову "Font" (рис. 5.7).

248
{"b":"870523","o":1}