- •Учреждение образования "Гродненский государственный профессионально-технический колледж приборостроения"
- •1. Синтаксис и программные конструкции vba
- •1.1 Основы синтаксиса языка vba
- •1.2 Операторы vba
- •1.3 Переменные и типы данных
- •Задание для самостоятельной работы 1.1: Работа с переменными и операторами
- •1.4 Константы
- •1.5 Операторы условного и безусловного перехода
- •1.5.1 Операторы условного и безусловного перехода. Оператор If… Then... Else
- •1.5.2 Оператор Select Case
- •1.5.3 Оператор GoTo
- •Задание для самостоятельной работы 1.2: Работа с операторами условного перехода
- •1.6 Работа с циклами
- •1.7 Массивы
- •Задание для самостоятельной работы 1.3 Работа с циклами
- •1.8 Процедуры и функции
- •1.8.1 Процедуры и функции. Виды процедур
- •1.8.2 Область видимости процедур
- •1.8.3 Объявление процедур
- •1.8.4 Передача параметров
- •1.8.5 Запуск и завершение работы процедур
- •Задание для самостоятельной работы 1.4 Работа с процедурами и функциями
- •1.9 Встроенные функции языка Visual Basic For Applications
- •1.9.1 Встроенные функции языка Visual Basic For Applications
- •1.9.2 Функции преобразования и проверки типов данных
- •1.9.3 Строковые функции
- •1.9.4 Функции для работы с числовыми значениями
- •1.9.5 Функции для работы с датой и временем
- •1.9.6 Функции для форматирования данных
- •1.9.7 Функции для организации взаимодействия с пользователем
- •1.9.8 Функции — заменители синтаксических конструкций
- •1.9.9 Функции для работы с массивами
- •1.9.10 Функции для работы с файловой системой
- •1.9.11 Прочие функции vba
- •2. Работа с объектами и объектные модели
- •2.1 Что такое классы и объекты
- •2.2 Создание и удаление объектов
- •2.3 Методы объекта
- •2.4 Свойства объекта
- •2.5 События объекта и объявление WithEvents
- •2.6 Просмотр объектов
- •2.7 Объектные модели
- •Задание для самостоятельной работы 2.1 Windows Script Host в приложениях vba
- •3. Формы, элементы управления и события
- •3.1 Для чего нужны формы
- •3.2 Создание форм и самые важные свойства и методы форм
- •3.3 Элементы управления
- •3.3.1 Что такое элементы управления
- •3.3.2 Элемент управления Label (надпись)
- •3.3.3 Элемент управления TextBox (текстовое поле)
- •3.3.4 Элемент управления ComboBox (комбинированный список)
- •3.3.5 Элемент управления ListBox (список)
- •3.3.6 Элементы управления CheckBox (флажок) и ToggleButton (кнопка с фиксацией)
- •3.3.7 Элементы управления OptionButton (переключатель) и Frame (рамка)
- •3.3.8 Элемент управления CommandButton (кнопка)
- •3.3.9 Элементы управления ScrollBar (полоса прокрутки) и SpinButton (счетчик)
- •3.3.10 Элементы управления TabStrip (набор вкладок) и MultiPage (набор страниц)
- •3.3.11 Элемент управления Image (рисунок)
- •3.3.12 Применение дополнительных элементов управления. Элементы управления Microsoft Web Browser, Calendar, RefEdit
- •Задание для самостоятельной работы 3.1 Работа с элементами управления
- •4. Работа с панелями инструментов и меню
- •Задание для самостоятельной работы 4.1 Работа с панелями инструментов, меню и помощником
- •5. Программирование в Word
- •5.1 Зачем программировать в Word
- •5.2 Введение в программирование в Word. Обзор объектной модели Word
- •5.3 Объект Application
- •5.3.1 Как работать с объектом Application
- •5.3.2 Свойства, методы и события объекта Application
- •5.4 Коллекция Documents и объекты Document
- •5.4.1 Как работать с коллекцией Documents
- •5.4.2 Свойства и методы коллекции Documents
- •5.4.3 Работа с объектом Document , его свойства и методы
- •5.5 Объекты Selection , Range и Bookmark
- •5.5.1 Работа с объектом Selection
- •5.5.2 Свойства и методы объекта Selection
- •5.5.3 Работа с объектом Range, его свойства и методы
- •5.5.4 Объект Bookmark
- •5.6 Другие объекты Word
- •5.6.1 Коллекция AddIns и объекты AddIn
- •5.6.2 Объект AutoCorrect
- •5.6.3 Коллекция Languages и объект Language
- •5.6.4 Объект Options
- •5.6.5 Объекты Find и Replacement
- •5.6.6 Объекты Font и ParagraphFormat
- •5.6.7 Объект PageSetup
- •5.6.8 Объекты Table , Column, Rowи Cell
- •5.6.9 Объект System
- •5.6.10 Коллекция Tasks и объект Task
- •5.6.11 Коллекция Windows и объект Window
- •Задание для самостоятельной работы 5.1 Программное формирование документа в Word
- •6. Программирование в Excel
- •6.1 Зачем программировать в Excel
- •6.2 Объект Application
- •6.3 Свойства и методы объекта Application
- •6.4 Коллекция Workbooks и объект Workbook, их свойства и методы
- •6.5 Коллекция Sheets и объект Worksheet , их свойства и методы
- •6.6 Объект Range, его свойства и методы
- •6.7 Коллекция QueryTables и объект QueryTable
- •6.8 Работа со сводными таблицами (объект PivotTable)
- •6.9 Работа с диаграммами: объект Chart
- •6.10 Другие объекты Excel
- •Задание для самостоятельной работы 6.1 Применение Excel для анализа информации из базы данных
- •7. Программирование в Access
- •7.1 Отличительные особенности создания приложений Access
- •7.2 Основные этапы создания приложений Access
- •7.3 Объект Application , его свойства и методы
- •7.4 Макрокоманды и объект DoCmd
- •7.5 Работа с формами Access из vba (объект Form )
- •7.6 Свойства, методы и события форм
- •7.7 Работа с отчетами (объект Report )
- •7.8 Другие объекты Access
- •Задание для самостоятельной работы 7.1 Создание приложения vba в Access
- •8. Программирование в PowerPoint
- •Задание для самостоятельной работы 8.1 Программное добавление элементов в слайды
5.5.2 Свойства и методы объекта Selection
Свойства и методы объекта Word.Selection, программная работа с выделенным участком текста в VBA
Вначале — о самых часто используемых свойствах объекта Selection:
Bookmarks — возвращает коллекцию Bookmarks, то есть все закладки, которые имеются в выделенном участке текста. Закладки — один из самых часто используемых объектов в приложениях VBA с использованием Word. Подробнее о них будет рассказано в специальном разделе.
Start и End — свойства, которые определяют номер первого и последнего символа в выделении (по отношению к document story — то есть текста документа, или другого story — например, сносок). Первая позиция в document story — всегда 0. если вы создаете документ из неизменяемого шаблона, вполне можно использовать эти свойства, чтобы найти нужное место в документе для ввода текста (однако этот способ не очень рекомендуется — по причине того, что при правке шаблона вам придется править много программного кода).
ExtendMode — переключиться в режим выделения текста, когда нажатие клавиш со стрелками, <Home> и <End> приводит не к перемещению указателя ввода, а к изменению выделения.
Find — очень важное свойство, которое возвращает объект Find. Подробнее про этот объект и про его вложенный объект Replace будет рассказано в разделе, посвященном поиску и замене текста.
Flags — свойство, которое позволяет проверить или изменить некоторые моменты, связанные с выделением: является ли оно активным, находится ли в конце строки и т.п. Регулирует пять параметров одновременно при помощи битовой маски.
Font — возвращает объект Font, при помощи которого можно управлять оформлением текста в выделении. Доступны все возможности, которые есть на графическом интерфейсе в меню Формат->Шрифт. Например, чтобы назначить выделенному тексту шрифт Arial размера 10, можно использовать код
Selection.Font.Name = "Arial"
Selection.Font.Size = 10
Information — важнейшее свойство объекта Selection для целей проверок. Возвращает огромное количество информации о выделении (в какой части документа, внутри таблицы или нет, включены ли клавиши <CapsLock> и <NumLock>, включен ли режим "Замена" при вводе текста, на какой странице находится выделение и сколько всего страниц и т.п.).
IPAtEndOfLine — возвращает True, если курсор ввода текста (insertion point — IP) находится в конце строки (крайнем правом положении при выравнивании).
LanguageId — возможность пометить выделение, как написанное на определенном языке. Правильное определение языка позволяет избежать проблем при проверке орфографии.
NoProofing — возможность отменить для выделения проверку орфографии и грамматики. Очень рекомендуется помечать таким образом текст с программным кодом, списками фамилий, названий фирм, специфическими терминами и т.п.
Range — возможность создать из выделения объект Range.
StoryType — еще одно свойство для проверок. Определяет тип document story, в котором находится выделение.
Text — самое важное свойство объекта Selection. Позволяет ввести текст на месте выделения (или в месте, где стоит указатель). Например, чтобы 100 раз напечатать текст "Привет!", можно воспользоваться кодом:
For i = 0 To 100
Selection.Text = "Привет!"
Selection.EndOf
Next
Метод EndOf() здесь для того, чтобы не перезаписывать один и тот же текст 100 раз, поскольку после ввода текст остается выделенным.
Type — еще одно проверочное свойство, которое позволяет предупредить ошибку, если пользователь выделил что-то неположенное. Например, при обычном выделении значение этого свойства будет равно 1, а если выделены несмежные участки текста — 2.
Words — аналогично такому же свойству Document.
Методов у объекта Selection гораздо больше, чем свойств:
Calculate() — возможность посчитать математическое выражение прямо в процессе ввода текста и вернуть его результат (только используя тип данных Single).
ClearFormatting() — очистить форматирование (и на уровне текста, и на уровне параграфа). Свойство можно применять не только для объекта Selection, но и для объектов Find и Replace.
Collapse() — превратить выделение в точку вставки. Можно использовать два варианта: точка вставки на начало выделения и на конец выделения. Очень удобно, если вам требуется только вставить новый текст без удаления старого.
Copy(), CopyAsPicture(), Cut(), Paste() и Delete() — комментировать эти методы, видимо, необходимости нет.
EndKey() — этот метод так называется, поскольку он очень похож по функциональности на нажатие клавиши <End>. Он позволяет (в зависимости от переданных параметров) перейти на конец DocumentStory, строки, столбца или записи в таблице (по умолчанию — на конец строки) и либо выделить до этого момента, либо установить на нем точку вставки. Чтобы вставить перевести курсор вставки на конец текста документа, можно воспользоваться командой
Selection.EndKey Unit:=wdStory, Extend:=wdMove
Если же нужно перейти на начало элемента, используется аналогичный метод HomeKey().
EndOf() — в том же режиме, что и EndKey(), перейти на конец символа, слова, предложения, абзаца, секции, текста документа, таблицы и т.п. Чтобы перейти на начало, существует метод StartOf().
Expand() — расширить выделение на слово, предложение, абзац и т.п. — в зависимости от переданного параметра. Метод Extend() позволяет расширить выделение (вместо слова — предложение, вместо предложения — абзац и т.п.). Метод, обратный методу Expand() — Shrink().
GoTo() — работает практически аналогично такому же метода объекта Document.
GotoNext() — перейти на следующую строку, страницу, закладку и т.п. Аналогично работает метод GotoPrevious() (переход на предыдущий элемент).
назначение многочисленных методов Insert() очевидно. Чаще всего используются методы InsertBefore() (вставить перед выделением) и InsertAfter() (вставить после выделения).
методы Move() также встречаются едва ли не в любой программе, связанной с вводом текста в Word. Самые важные и удобные из этих методов:
MoveLeft() , MoveRight(), MoveUp(), MoveDown(), MoveEnd(), MoveStart() — назначение этих методов очевидно . Каждый из них принимает дополнительные параметры, при помощи которых можно определить, на сколько позиций будет перемещаться указатель, будет ли двигаться выделение, распространяясь на новую область и т.п.
MoveStartUntil(), MoveStartWhile(), MoveEndUntil(), MoveStartWhile() отличаются тем, что курсор вставки перемещается не на определенное количество символов, а пока не будет найдено (или пока встречается) определенная последовательность символов. Также очень удобно для установки курсора в нужное место в документе для ввода текста.
метод Move() — более гибкий. Он позволяет отсчитывать не только определенное количество символов, но и слов, предложений, абзацев, разделов, столбцов и строк в таблице и т.п. Позволяет обойтись минимальным количеством изменений в коде, если изменился исходный шаблон для ввода данных.
Next() — перейти вперед на определенное количество символов, слов, предложений, абзацев, разделов, столбцов и строк в таблице и т.п. Перейти назад позволяет метод Previous().
NextField() — перейти на следующее поле в форме (или проверить, не кончились ли поля (в этом случае этот метод вместо объекта Field возвратит Nothing). Есть также метод PreviousField().
SelectColumn(), SelectRow(), SelectCell() — очень удобные методы для выполнения различных операций в таблице Word.
SelectCurrent… Alignment(), Font(), Indent(), Color() и т.п. — выделить текст до изменения выравнивания, шрифта, отступа, цвета и т.п. Также очень удобно для целей форматирования или для выделения специальным образом добавленного текста.
SetRange() — самый простой способ настроить выделение. Передаются номер первого и последнего символа того участка текста, который нужно выделить. Нумерация начинается с 0, скрытые служебные символы также считаются. Такой же метод существует для объекта Range.
Sort(), SortAscending(), SortDescending() — возможность расставить по алфавиту, датам и т.п. абзацы или столбцы в таблице (которые входят в выделение). Этот метод сможет сэкономить вам множество времени и сил.
ToggleCharacterCode() — позволяет ввести код служебного символа и тут же преобразовать его в символ Unicode. Например, чтобы ввести символ Евро, можно воспользоваться командами
Selection.TypeText Text:="20ac"
Selection.ToggleCharacterCode
TypeText() — самый простой, надежный и часто используемый метод ввода текста. Принимает единственный параметр — текст, который нужно ввести. Будет ли перезаписан текущий текст выделения, зависит от свойства ReplaceSelection объекта Options.
WholeStory() — выделить текущую часть документа (document story). Обычно используется, чтобы выделить текст документа без сносок, редакторской правки, колонтитулов и т.п.