Советы

Объекты word vba. VBA Word, как это делается

Объекты word vba. VBA Word, как это делается

Эта книга поможет освоить интегрированную среду разработки VBA и научиться программировать в VBA с использование объектов, их свойств, методов и событий. Обсуждаемые приемы программирования иллюстрируются примерами, которые можно сразу же опробовать на практике. Полученные знания вы сможете применить как для настройки и усовершенствования популярный офисных приложений, включая приложения Office XP, так и для создания собственных приложений.

Книга рассчитана на тех, кто собирается быстро и без лишних усилий научиться программировать для Windows, используя VBA.

Книга:

Работа с текстом в Word VBA

Работа с текстом в Word VBA

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

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

Используйте объект Selection в том случае, если ваша процедура зависит от пользователя, например, он должен указать текст, с которым будут проведены определенные действия, или в том случае, если вам необходимо показать пользователю, какой именно текст будет изменен. В других ситуациях намного лучше подходят объекты Range. Они обеспечивают большую скорость выполнения программ и меньше отпугивают пользователя: Word обновляет содержимое экрана при каждом изменении содержимого выделенной области, а при изменении диапазона содержимое экрана не обновляется. Кроме того, изменения диапазонов не отражаются на выделенных областях, созданных пользователем.

Несмотря на их различия, объекты Selection и Range можно создавать один из другого. Эта возможность оказывается чрезвычайно важной, так как многие функции редактирования работают только с диапазонами. В противоположность этому, единственный способ отобразить содержимое диапазона пользователю- выделить его. Используйте следующие простые приемы.

* Для выделения диапазона используется его метод Select. Например, для объекта RangeR команда имеет вид RangeR. Select.

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

Помните: если метод, относящийся к текстовым данным, вызывается для диапазона, а вы хотите применить его к выделенной области, просто включите в свой код инструкцию Selection . Range . ИмяМетода.

Word VBA предлагает целый ряд методов для перемещения и изменения размеров диапазонов и выделенных областей. В настоящем разделе я рассматриваю только самые важные из них; для знакомства с другими методами вам придется обращаться к справочной системе.

Метод Expand увеличивает существующий диапазон или выделенную область, добавляя блок текста в их конец. Блок может представлять собой символ, слово, абзац или что-нибудь другое. Вы можете добавить только один заранее определенный блок; кроме того, добавление подобных блоков в начале диапазона или выделенной области не допускается.

Для добавления к выделенной области слова, которое будет следовать сразу за ней, используйте такую инструкцию:

Selection.Expand(wdWord)

Вы можете использовать любую из следующих констант для расширения объекта; wdCharct er, wdWord, wdSent ence, wdParagraph, wdSection, wdStory, wdCell, wdColumn, wdRow, wdTable и (только для объектов Selection) wdLine. По умолчанию используется константа wdWord.

Теперь нам следует остановиться на одном щекотливом моменте: объекты Selection (но не диапазоны) также содержат метод Expand. Этот метод включает соответствующее средство Word, которое позволяет расширять выделенную область при перемещении указателя мыши. Каждый раз, когда программа вызывает метод Extend, выделенная область увеличивается на блок текста, который следует сразу за точкой вставки: текущее слово, предложение, абзац, выделенный фрагмент пли целый документ. Если вы указали аргумент в виде одного символа, например, Selection.Expand ("С"). выделенная область будет расширена вплоть до первого встретившегося указанного символа.

Word VBA позволяет вам повторно определять начало и конец диапазона или выделенной области. Только имейте в виду, что методы, в имени которых присутствует слово Move, изменяют расположение диапазона или выделенной области: они не перемещают текст, который содержится в указанном объекте.

Метод Move изменяет диапазон или выделенную область, начиная с их сжатия, отмечая их расположение, а в них уже нет никакого текста. Расположение совпадает с началом исходного объекта. После этого метод Move перемещает "сжатый" объект в соответствии с вашими инструкциями. По окончании перемещения вы можете использовать методы Expand и Mover,nd для наполнения объекта текстом.

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

"Расширение диапазонов и выделенных областей" раньше в этой главе). Аргумент Count представляет собой целое положительное число, если вы хотите перемешать объект вперед по документу (т.е. к его концу), или отрицательное, если вы хотите перемещать объект назад по документу. В приведенном ниже примере аргументы не заключены в скобки, поскольку возвращенное методом значение (количество перемещенных элементов) здесь не используется:

oTheRange .Move Unit: = waParagraph, Count, : = -2

Методы MoveStart. и MoveEnd работают практически так же, как и метод Move, только они изменяют начальную или конечную точку диапазона или выделенной области соответственно. Приведенная ниже инструкция перемешает начало выделенной области на три слова ближе к концу документа:

Select-on.KoveStart Unit: = wdWord, Count:= 3

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

Еще одна пара методов, Start Of или EndOf, перемешает или расширяет начало или конец диапазона или выделенной области. Метод Start Of перемещает начало объекта обратно к началу текущего блока, в то время как метод EndOt перемешает конец объекта вперед к концу текущего блока.

Вы можете использовать аргумент Extend с любым методом для контроля над действиями Word. Если перемешаемая сторона объекта уже находится с того края, к которому вы пытаетесь ее переместить, ничею не происходит. Используйте константу wdMove для сжимания объекта или константу wdExtend для перемещения только указанной стороны. Ниже приведен соответствующий пример:

Selection. Start Of Unit:= wdSentence, Extend:= wdMove

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

Используйте метод Collapse для сжатия диапазона или выделенной области. Вы можете сжать объект к его начальной или конечной точке, используя необязательный аргумент Direction. Приведенная ниже инструкция сжимает выделенную область к ее начальной точке:

Selection.Collapse

А этот пример сжимает выделенную область к ее конечной точке:

Selection.Collapse(Direction:=wdCollapseEnd)

Если вы сожмете диапазон, который заканчивается знаком абзаца, к его конечной точке (используя константу wdCollapseEnd), Word разместит сжатый диапазон после знака абзаца (это означает, что сжатый диапазон будет находиться в следующем абзаце). Если же вы хотите разместить что-то перед знаком абзаца исходного диапазона, вы должны сначала переместить диапазон обратно с помощью метода MoveEnd, используя инструкцию, подобную этой:

Диапазон.MoveEnd Unit:= wdCharacter, Count:= -1

Удалить весь текст в диапазоне или выделенной области совсем несложно: просто используйте метод Delete соответствующего объекта. Вы можете использовать и метод Cut, если хотите удалить текст и поместить его в буфер обмена. Конечно же, метод Сору копирует текст в буфер обмена, не оказав влияния на текст в диапазоне или выделенной области.

Вы можете вставить текст, раньше помещенный в буфер обмена, в любой диапазон или выделенную область, воспользовавшись методом Paste этого объекта. Если объект назначения еще не сжат, вставленный текст просто заменит исходный текст в объекте, точно так же как это происходит после выполнения команды Вставить в Word.

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

Приведенный ниже фрагмент кода передает текст из выделенной области в сжатый диапазон, привязанный к закладке (операцию передачи проделывает четвертая строка кода). В новое место расположения попадает только сам текст; любое форматирование при этом теряется:

With ActiveDocument.Bookmarks("TheBookmark")

ActiveDocument.Range(Start:=.Start, End=.Start)

RangeY.Text = Selection.Text

Для передачи вместе с текстом и его форматирования просто замените свойство Text свойством FormattedText.

Простейшим для запоминания приемом добавления текста является задание свойства Text диапазона или выделенной области равным тексту, который вы решили вставить. Это проиллюстрировано на примере, показанном ниже:

Range2.Text = "Эй, эй! А ведь дома-то никого нет!"

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

Используйте методы Insert Before или Insert After объектов Range или Selection для вставки текста в определенном месте документа, не затрагивая при этом существующий текст. Эти методы позволяют вставить новый текст непосредственно перед или после указанного объекта соответственно. Word включает вставленный текст в выделенную область или диапазон.

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

Форматирование документа

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

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

ActiveDocument.Paragraphs(1).Range.Text = «Oxo-xo!!»

Причем данная строка будет расположена в конце существующего параграфа. С другой стороны, используя объект Selection, можно также вставить некоторый текст в документ, используя метод Add и присвоение свойства Text объекту Selection:


Selection.Text = "Изучение работы с текстом в документе Word является важной составной частью умения программировать в VBA, « + TextBox1.Text +», и отвечает запросам всех программистов!»

В результате выполнения данного программного кода в документе Word будет выведена строка: “Изучение работы с текстом в документе Word является важной составной частью умения программировать в VBA, Светлана, и отвечает запросам всех программистов!”.

Описание процедур

Private Sub CommandButton1_Click()
If Documents.Count = 0 Then Documents.Add
Selection.Text = "При прохождении тока напряжением в " + TextBox1.Text + "вольт попроводнику длиной " + TextBox4.Text + " метров, сечением " + TextBox3.Text + "кв. мм и удельным сопротивлением " + TextBox5.Text + " Ом*мм^2/м за " + TextBox2.Text + " секунд выделится " + TextBox6.Text + « джоулей теплоты»
Selection.Collapse direction:=wdCollapseEnd
End Sub

Private Sub CommandButton2_Click()
Unload Me
End Sub

Private Sub TextBox1_Change()
scet
End Sub

Private Sub TextBox2_Change()
scet
End Sub

Private Sub TextBox3_Change()
scet
End Sub

Private Sub TextBox4_Change()
scet
End Sub

Private Sub TextBox5_Change()
scet
End Sub

Private Sub scet()
If IsNumeric(TextBox1.Text) = True And
IsNumeric(TextBox2.Text) = True And
IsNumeric(TextBox3.Text) = True And
IsNumeric(TextBox4.Text) = True And
IsNumeric(TextBox5.Text) = True And Not Val(TextBox4.Text) = 0 And Not Val(TextBox5.Text) = 0 Then rez = ((Val(TextBox1.Text) ^ 2) * Val(TextBox2.Text) * Val(TextBox3.Text)) / (Val(TextBox4.Text) * Val(TextBox5.Text))
TextBox6.Text = Str$(rez)
CommandButton1.Enabled = True
Else
TextBox6.Text = ""
CommandButton1.Enabled = False
End If
End Sub

При работе с текстом на рабочем листе Word необходимо знать следующие коды:

определение цвета
Selection.Font.Color =
wdColorRed – красный
wdColorDarkRed – бордовый
wdColorDarkTeal – бирюзовый
wdColorBlue – синий
wdColorGreen – зеленый
wdColorBlack – черный
wdColorOrange – оранжевый

определение жирности
Selection.Font.Bold =
wdToggle – жирность

определение начертания
Selection.Font.Italic=
wdToggle – курсив

определение выравнивания
Selection.ParagraphFormat.Alignment=
wdAlignParagraphRight – выравнивание по правому краю
wdAlignParagraphCenter – выравнивание по центру
wdAlignParagraphJustify – выравнивание по левому краю

вставка в текст конкретного предложения
Selection.TypeText Text:="Пример работы с текстом"
вставка новой пустой строки
Selection.TypeParagraph
установка размера букв
Selection.Font.Size = 14

Одним из элементов оформления диалоговых окон является элемент управления Image (рисунок). Его основные свойства:

Autosize – изменяет размер рисунка на форме (автоматически или нет);

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

pictureSizeMode – устанавливает масштабирование рисунка (не весь рисунок, вся поверхность объекта, целиком внутри объекта);

PictureAligment – устанавливает расположение рисунка внутри объекта (слева, справа, вверху, внизу);
pictureTilling – покрывает объект мозаикой из рисунка.

Данные свойства либо устанавливаются в окне свойств объекта, либо прописываются в листинге.

Примечание . При работе данного приложения все значения полей ввода должны быть числовыми. В VBA есть специальная функция для проверки того, является или нет введенная строка записью числа – IsNumeric. Для проверки отличия от нуля значений в последних двух полях ввода используется функция Val, которая переводит строковое выражение в числовое, если это строковое выражение содержит в своем начале цифры (или все состоит из них).

Функция Str делает преобразование, обратное тому, что производит Val, – конвертирует числовое значение выражения в строковое, что позволяет этому значению в дальнейшем обрабатываться как строке.

Таким образом, функции Val и Str преобразуют типы данных обрабатываемых ими переменных, соответственно, из строкового в числовой и из числового в строковый.

Создание кнопки или панели в Word

Назначить форме кнопку или пункт меню для непосредственного вызова приложения из Word нельзя – это можно сделать только для модулей. Поэтому нужно применить следующий способ. Создайте макрос (Меню + Insert + Module) в открытом проекте:

Sub counter()

userForm1. Show

End Sub

Переименуйте этот макрос по своему усмотрению, например Teplo. И выполните следующие действия:

1. Щелкните правой кнопкой мыши в любом месте панели инструментов.

2. В этом меню выберите команду Настройка (или Сервис + Настройка).

3. В диалоговом окне Настройка щелкните на ярлыке вкладки Команды .

4. Прокрутите список Категории вниз и найдите пункт Макросы . Выберите этот пункт. В списке «Сохранить в» выберите имя вашего документа, в котором создан макрос.

5. В правом окне найдите необходимый макрос (либо VBA-программу).

6. Перетащите имя этого макроса или программы на панель инструментов.

7. Создайте соответствующую надпись кнопки и, если нужно, рисунок (при помощи правой кнопки мыши).

8. Закройте диалоговое окно Настройка, чтобы завершить работу.

9. В результате будет создана кнопка запуска приложения.


Лабораторная работа №5


Похожая информация.


Его свойства и методы

Объект Word.Document, программная работа со свойствами и методами документа в VBA

После того, как мы при помощи объекта Application запустили Word, при помощи коллекции Documents создали (или открыли, или нашли среди уже открытых) - в общем, получили ссылку на нужный нам документ, можно выполнять с этим документом различные действия, реализованные при помощи свойств, методов и событий объекта Document. У этого объекта десятки свойств и методов, и здесь мы рассмотрим только наиболее важные и часто используемые из них. Для самостоятельного рассмотрения будут оставлены очевидные и редкоиспользуемые свойства.

Обратите внимание, что к объекту Document можно обращаться и не создавая специальную объектную переменную. Существует еще по крайней мере три способа получения доступа к объекту Document:

  • работать с документом как с элементов коллекции Documents. Формате обращения может выглядеть, например, так: Documents.Item(1);
  • использовать специальное ключевое слово ThisDocument. При помощи него можно получить ссылку на объект документа, которому принадлежит исполняемый программный модуль, например:

MsgBox ThisDocument.Name

  • использовать свойство объекта Application ActiveDocument. Это свойство возвращает нам объект активного документа:

MsgBox Application.ActiveDocument.Name

или просто

MsgBox ActiveDocument.Name

Самые важные свойства объекта Document представлены ниже:

  • ActiveWritingStyle - текущий активный стиль (заголовок определенного уровня, обычный текст, гиперссылка и т.п.). Рекомендуется проверить перед вводом текста.
  • AttachedTemplate - возможность подключить шаблон (со всеми макросами, стилями, записями автотекста и т.п.) или проверить, какой шаблон подключен (вручную это можно сделать через меню Сервис -> Шаблоны и надстройки).
  • Background - возвращает объект Shape, представляющий фоновый рисунок (фоновые рисунки видны только в режиме Web-документ);
  • BuiltInDocumentProperties - возможность получить ссылку на коллекцию DocumentProperties с одноименными объектами, представляющими встроенные свойства документа (название, автор, категория, комментарии и т.п.);
  • Characters - возвращает коллекцию объектов Range, каждый из которых представляет один символ. Это свойство есть не только у объектов Document, но и у объектов Selection и Range. Может использоваться, например, для выполнения операция поиска и замены или статистических подсчетов (например, для если переводчику платят за количество символов);
  • Content - свойство, возвращающее объект Range, представляющий главную цепочку документа (main document story). Если говорить проще - просто текст документа, без колонтитулов, сносок, комментариев и т.п.
  • CustomDocumentsProperty - свойство, возвращающее коллекцию объектов DocumentProperties, представляющих пользовательские свойства документа. Можно использовать для сохранения вместе с документом любых значений переменных. Очень удобно, например, для подсчета количества открытий документов, флажков печатался/не печатался, сколько раз вызывалась та или иная функция, на каких компьютерах и каким пользователем открывался и т.п.
  • DefaultTabStop - определить отступ по умолчанию при использовании символа табуляции. По умолчанию - 35 пунктов, что примерно равно 1,25 см;
  • DisableFeatures - отключить возможности, которые понимают только последние версии Word (для совместимости с пользователями, у которых на компьютерах стоят старые версии). Обычно само свойство DisableFeatures просто включает этот режим, а конкретный уровень совместимости задается при помощи свойства DisableFeaturesIntroducedAfter.
  • DoNotEmbedSystemFonts - не вставлять в документ системные шрифты (по умолчанию для русского, японского и т.п. вставляются). Позволяет сократить размер документа - но тогда пользователи в системе, где не стоит русский язык, не смогут прочесть этот документ.
  • EmbedTrueTypeFonts - очень полезное свойство, если вы работаете с документом в месте, где используются экзотические шрифты (например, в издательстве). Вставка true-type шрифтов гарантирует, что получатели документа будут видеть его точно таким же, как и создатель.
  • Envelope - позволяет получить ссылку на специальный объект Envelope, который используется для создания почтовых конвертов.
  • Fields - возможность получить ссылку на коллекцию Fields одноименных объектов. Очень полезна при работе с полями.
  • Footnotes - возможность получить коллекцию сносок.
  • свойства Formatting… - что показывать в списке стилей в панели инструментов Форматирование .
  • FormFields - аналогично Fields, но в этом случае мы получаем ссылку на поля в формах.
  • FulName - полное имя объекта (вместе с путем к нему в файловой системе или Web). Доступно, конечно, только для чтения.
  • GrammarChecked - пометить весь документ, как проверенный с точки зрения грамматики (фактически отключить проверку грамматики для данного документа). Такое же свойство существует и у объекта Range. Коллекцию ошибок, выловленных при проверке грамматики, можно получить при помощи свойства GrammaticalErrors, а выделить ошибки зеленым волнистым подчеркиванием (если они еще не выделены) - при помощи свойства ShowGrammaticalErrors. Для орфографических ошибок существует аналогичные свойства SpellingChecked, SpellingErrors и ShowSpellingErrors.
  • HasPassword - проверить, назначен ли пароль для указанного документа. Password - назначить пароль. По причине крайней слабости парольной защиты пароли в Word, Excel и Access использовать не рекомендуется.
  • Indexes - возвращает коллекцию индексов (то есть предметных указателей) для документа.
  • Name - возвращает имя документа (без пути к нему).
  • OpenEncoding - возвращает кодовую страницу, которая использовалась для открытия документа. Для русского языка по умолчанию, конечно, 1251.
  • PageSetup - позволяет получить ссылку на одноименный объект. Используется, конечно, в основном при реализации печати.
  • Paragraphs - возвращает ссылку на коллекцию абзацев в данном документе.
  • Path - возвращает путь к документу в файловой системе (без имени). Может пригодиться, чтобы создать еще один файл по тому же пути.
  • Permission - возможность получить доступ к объекту Permission, который позволяет управлять системой внутренних разрешений документа Word (не разрешений файловой системы).
  • PrintRevisions - печатать или нет пометки редактора (исправления) вместе с документом. По умолчанию - печатать.
  • ProtectionType - проверить защиту данного документа (разрешено все, или только комментарии, чтение, изменения в полях форм и т.п.). Сама защита устанавливается при помощи метода Protec()t.
  • ReadOnly - здесь объяснений не требуется. Это свойство доступно только на чтение (поскольку соответствующий атрибут устанавливается в файловой системе).
  • RemoveDateAndTime и RemovePersonalInformation - удалить информацию о дате и времени произведенных изменений и всю информацию о пользователе из документа (включая свойства документа). Может быть полезным при создании файла-образца.
  • Saved - очень важное свойство. Позволяет определить, изменялся ли документ со времени последнего изменения.
  • SaveEncoding - позволяет явно указать (или получить) кодировку, которая будет использоваться при сохранении документа.
  • SaveFormat - позволяет получить информацию о формате документа (DOC, RTF, TXT, HTML и т.п.). Доступно только для чтения.
  • Sections - возвращает коллекцию разделов документа. Sentences - то же самое для предложений. Аналогично работают свойства Shapes , Styles , Subdocuments , Tables , Windows и Words .
  • Type - возвращает тип документа (обычный, шаблон или Web-страница с фреймами).
  • Variables - еще одно очень удобное свойство. Можно использовать для сохранения своих служебных данных вместе с документом, как и пользовательские атрибуты (custom attributes), но в отличие от пользовательских атрибутов документа, пользователям эти свойства не видны.

Теперь - о самых важных методах объекта Document:

  • Activate() - этот метод позволяет сделать указанный вами документ активным (например, для ввода текста).
  • AddToFavorities() - добавить ссылку на документ в каталог "Избранное". Может быть полезным, если пользователь будет работать с ним постоянно.
  • CheckSpelling() и CheckGrammar() - запустить проверку орфографии и грамматики соответственно.
  • Close() - закрыть документ. Можно закрыть с сохранением (по умолчанию), а можно - без (если указать соответствующий параметр).
  • Compare() - сравнить документ с другим и сгенерировать редакторские пометки в местах, где обнаружены различия.
  • DataForm() - возможность редактирования форм данных - то есть данных, которые в документе разделены разделителями полей и строк. Вообще говоря, формы данных в Word рекомендуется использовать только в случае крайней необходимости - гораздо больше дл работы с упорядоченными данными приспособлены Excel и Access.
  • DetectLanguage() - определить язык текста. Проверка производится по предложениям, на основе сверки слов в них со встроенными словарями. Такая проверка производится автоматически во время ввода текста или открытия нового документа. Чтобы заново провести проверку языков, свойство LanguageDetected нужно перевести в False.
  • FitToPages() - очень интересный метод. Размер шрифта автоматически меняется таким образом, чтобы текст стал занимать на одну страницу меньше. Можно использовать для устранения "висячих страниц" и других проблем верстки.
  • FollowHyperlink() - открыть указанный вами документ в соответствующем приложений (если HTML, то в Internet Explorer).
  • GoTo() - очень мощный метод, существует для объектов Document, Range и Selection. В первых двух случаях он возвращает объект Range, в третьем - просто перемещает указатель ввода текста на нужное место. Умеет переходить на начало страницы, строки, закладки, комментария, таблицы, секции, поля, ссылки, формулы и т.п. Может на определенный номер этого объекта, первый, последний, следующий и т.п. Очень удобно использовать для установки указателя в нужное место для автоматического ввода текста.
  • Merge() - возможность произвести слияние двух документов. Метод очень сложный и мощный, основывается на применении редакторских пометок.
  • PresentIt() - открывает данный документ Word в PowerPoint.
  • PrintOut() - очень сложный метод, который позволяет вывести на печать весь документ или его часть. Принимает два десятка параметров (все - необязательные). Может использоваться для объектов Application, Document и Window.
  • PrintPreview() - перевести документ в режим предпросмотра.
  • Protect() - возможность ограничить внесения изменений в документ при помощи пароля или IRM.
  • Range() - очень важный метод. Возвращает объект Range (он будет рассмотрен ниже), принимает в качестве параметров номер начального символа диапазона и номер конечного символа.
  • Redo() - повторить последнее действие. В качестве параметра принимает количество последних действий, возвращает True, если повтор был произведен успешно.
  • Repaginate() - переразбить документ на страницы. Обычно используется, если автоматическая разбивка была ранее отключена.
  • Save() - смысл этого метода очевиден. Если документ еще не сохранялся, открывается диалоговое окно Save As .
  • SaveAs() - очень мощный и сложный метод. Можно определить путь для сохраняемого документа, его формат, кодировку, пароли на открытие и изменение документа, вставку шрифтов и многое другое. Очень полезный метод, например, для автоматической конвертации документов.
  • Select() - позволяет просто выделить весь документ. Этот метод существует для очень большого количества объектов, в том числе Selection и Range.
  • TransformDocument() - исключительно мощный метод, но только для программистов, которые хорошо разбираются в XML и XSLT. Позволяет применить к документу таблицу преобразований стилей (Extensible Stylesheet Language Transformation, XSLT), при помощи которой можно поменять все, что угодно.
  • Undo() - отменить определенное количество последних действий. По синтаксису и принципам работы - полный аналог Redo() .
  • UndoClear() - очистить буфер отмены изменений, чтобы пользователь не смог откатить произведенные действия.
  • UnProtect() - снять защиту с документа (определенную методом Protect() или на графическом интерфейсе). Может быть очень полезным перед программным внесением изменений в защищенный документ.

Часто используемых событий у объекта Document всего три - New() (можно определить только для шаблона, срабатывает, когда на основе этого шаблона создается новый документ), Open() и Close(). Все эти свойства очевидны и изначально доступны в окне редактора кода Visual Basic.

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

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

Некоторые принципы работы с объектами Word можно освоить, если записать некоторую последовательность своих действий с помощью сред- ства Word Запись макроса, которое присутствует на вкладке ленты Разра- ботчик. Данная вкладка присутствует, если в Параметрах Word на стра- нице Основные стоит галочка у пункта Показывать вкладку Разработчик на ленте.

Выполним следующие действия:

1) нажмем на кнопку Запись макроса, ни кнопку, ни клавиши макросу можно не назначать, зададим, где будет сохраняться текст макроса: Макрос доступен для текущего документа;

2) переместимся в конец документа с текущей позиции (была не в конце), нажав клавиши Ctrl+End;

3) нажмем клавишу Enter и напишем слово «Привет!»;

4) еще раз повторим операцию пункта 3;

5) выделим последнее слово, нажав Shift+Home и нажмем клавишу Delete;

6) перейдем в начало первой строки «Привет!», нажмем Shift+End и затем клавишу Delete;

7) на вкладке Разработчик сначала нажмем кнопку Остановить запись, затем кнопку Visual Basic;

8) в открывшемся окне редактора Visual Basic слева на панели Project сделаем двойной щелчок мышкой на разделе Progect() - Modules - NewMacros и увидим справа окно с текстом программы на языке VBA, которое показано на рисунке 5.43.

При сохранении документа, в котором присутствуют программные модули, в системе Microsoft Office 2007 следует выбрать тип файла Доку- мент Word с поддержкой макросов, иначе текст программ не будет сохра- нен.

В тексте макроса на рисунке 5.43 Selection - один из основных объ- ектов, которые содержит главный объект Application - приложение Word.

Рисунок 5.43. Текст макроса на языке VBA


При написании текста программ можно использовать всплывающий список свойств и методов, который появляется для стандартных объектов в редакторе Visual Basic после написания имени объекта и нажатия после неё точки (см. рисунок 5.44), полное описание свойств и методов объектов присутствует в справочной системе.

Всплывающий список свойств и методов можно получить также, на- жав комбинацию клавиш Ctrl+пробел.


Кроме того, при написании текста программы для стандартный про- цедур и функций появляются всплывающие подсказки по их синтаксису (см. рисунок 5.45).

МsgВоА(Рrотрt [ШстеЛз VbМsgВохStуlе = vbОКОпlу], автора Фултон Хэл

Глава 18. Сетевое программирование Если торговец в разговоре с вами произносит слово «сеть», скорее всего, он желает всучить свою визитную карточку. Но в устах программиста это слово обозначает электронное взаимодействие физически удаленных машин - неважно, находятся

Из книги VBA для чайников автора Каммингс Стив

Глава 16. VBA-программирование в Excel. В этой главе...~ Что такое объектная модель Excel~ Управление ячейками с использованием объектов диапазонов~ Создание собственных функций для использования в формулах рабочих листов~ Использование встроенных функций Excel в VBA-коле~ Работа с

Из книги Программирование КПК и смартфонов на.NET Compact Framework автора Климов Александр П.

Глава 17. Программирование баз данных. В этой главе...~ Знакомство с терминологией~ Написание кода баз данных с помощью объектов данных ActiveX~ Программирование с помощью DAO~ Ускорение с помощью SQLНесмотря на то, что Access - официальное приложение для работы с базами данных,

Из книги С компьютером на ты. Самое необходимое автора Егоров А. А.

Глава 9 Программирование для смартфонов Особенности программирования для смартфонов В этой главе мы научимся создавать приложения для смартфонов под управлением системы Windows Mobile 5.0. Так получилось, что в России смартфоны под управлением Smartphone 2003 поначалу не получили

Из книги Linux: Полное руководство автора Колисниченко Денис Николаевич

Глава 4 Microsoft Word 4.1. Возможности Microsoft Word Microsoft Word - один из самых лучших и мощных текстовых редакторов на сегодняшний день. Word, в отличие от Блокнота и WordPad, не входит в состав Windows, а распространяется в составе программного пакета Microsoft Office. Программа обладает огромным

Из книги Компьютер для бухгалтера автора Филатова Виолетта

Глава 28 Программирование ядра Из главы 7 вы узнали, что драйверы устройств в Linux выполнены в виде модулей ядра, и познакомились с пакетом module-init-tools (он же modutils для ядер 2.4), содержащим утилиты для выполнения основных операций над модулями ядра. В этой главе я покажу, как

Из книги Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ автора Борри Хелен

Глава 6 Работа с программой Word Обычно работа с редактором Word не вызывает трудностей: текст набирается в нем так же, как и в редакторе Блокнот. Трудности начинаются тогда, когда приходится вносить в созданный документ исправления и добавления. К удивлению пользователя,

Из книги Access 2002: Самоучитель автора Дубнов Павел Юрьевич

ГЛАВА 27. Программирование с транзакциями. Транзакция является начальной точкой для всех взаимодействий клиентского приложения с сервером. В этой главе мы с точки зрения различных интерфейсов клиента рассмотрим запуск, управление и завершение транзакций.Многие языки и

Из книги Офисный компьютер для женщин автора Пастернак Евгения

Глава 11 Программирование на языке SQL Как уже говорилось в главе 9, главной «специальностью» языка SQL является конструирование запросов пользователя к базе данных. Поэтому программирование на языке SQL – это в основном формирование таких

Из книги Компьютер – это просто! автора Алиев Валерий

Глава 1 Текстовый редактор Microsoft Word

Из книги автора

Глава 3 Microsoft Word, или Как печатать на компьютере Для чего нужен текстовый процессор? Начало работы Настройки Microsoft Word Панели инструментов Создание документа Форматирование документа Выделение Редактирование документа Таблицы и границы WordArt.