Тарифы Услуги Сим-карты

Создание и использование макрокоманд». Макрокоманды, доступные для использования в макросах Способы выполнения макрокоманд

МАКРОСЫ.

Большинство пользователей создавая и используя документы Microsoft Office используют стандартные возможности приложений. Однако Office дает широкие возможности для автоматизации работы с документами – это программирование в VBA и использование макросов.

VBA, язык программирования Visial Basic for Applications, - язык программирования, встроенный в приложения Office, используемый для создания макросов.

Макрос и макрорекордер.

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

Макрос – это программа, написанная на VBA. VBA – специальная версия Visial Basic (for Application).

В Office существует 2 способа создания макроса:

§ запись макрорекордером действий пользователя

§ открытие окна VBA и ввод операторов VBA

Чаще всего пользователь использует VBA для коррекции макроса, записанного рекордером.

Для работы с макросами в MS Office 2007-13 выводим на ленту вкладку РАЗРАБОТЧИК (кнопка OFFICE/ ПАРАМЕТРЫ Word / НАСТРОЙКА ЛЕНТЫ).

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

Запись макроса.

§ вкладка РАЗРАБОТЧИК/ЗАПИСЬ МАКРОСА, даем имя макросу. Имя не должно содержать пробелы, начинаться с буквы, не содержать спец.символы. максимальная длина имени – 80 символов. Если созданному макросу присваивается имя, совпадающее с именем встроенного макроса Microsoft Word, то существующий макрос заменяется новым.

§ выполняем команды

§ вкладка РАЗРАБОТЧИК/ОСТАНОВИТЬ ЗАПИСЬ

Обычно, макрос доступен для шаблона Normal.dot, он автоматически сохраняется вместе c ним.

Запуск макроса.

§ вкладка РАЗРАБОТЧИК/МАКРОСЫ, выбираем нужный и ВЫПОЛНИТЬ.



Назначение макросу кнопки на панели быстрого доступа и/или сочетания клавиш.

§ или кнопка OFFICE/ ПАРАМЕТРЫ Word/НАСТРОЙКА

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

При назначении макросу сочетания клавиш, следует помнить, что в Worde зарезервированы многие сочетания и найти «свободное» сочетание непросто.

Удаление макроса.

§ вкладка РАЗРАБОТЧИК/МАКРОСЫ, выбираем нужный и УДАЛИТЬ.

Изменение текста макроса.

При записи макроса рекордер сохраняет последовательность текстовых инструкций на VBA. Это текстовое описание называется исходным кодом. Его можно просмотреть и исправить:

§ вкладка РАЗРАБОТЧИК/МАКРОСЫ, выбираем нужный и ИЗМЕНИТЬ.

Для запуска макроса из редактора VBA: кнопка RUN ( )

Создание автоматически выполняемых макрокоманд.

В Word предусмотрены 5 специальных имен для макрокоманд

VBA – программы состоят из простой последовательности действий: программа получает доступ к объекту, придает ему свойства, производит с ним действия. Каждый документ, абзац, … – это объекты. Например, объект Selection – выделенный фрагмент. Сам Word – объект Appication.(см. приложения 2,3)



Каждый объект имеет свои характеристики – свойства.

Многие объекты выполняют действия, которые называются методами.

Например,

ActiveDocument.Close (объект - активный документ, метод - закрыть)

В соответствии с синтаксисом VBA разделитель- точка.

Обычно: объект, точка, метод и/или свойства (через точку)

Правая мышь на объекте – список методов, свойств (List Properties/Methods)

Последовательность With ….. End With позволяет указать несколько методов/свойств для одного объекта, не повторяя многократно его имя.

Практическое задание 1.

Запишем макрос с именем «мой_первый_макрос», в который запишем следующие команды:

§ Альбомная ориентация страницы

§ Масштаб просмотра – 33%

В результате получим следующий код

Sub мой_первый_макрос()

"

" мой_первый_макрос Макрос

" Макрос записан 03.12.07

With ActiveDocument.PageSetup

LineNumbering.Active = False

Orientation = wdOrientLandscape

TopMargin = CentimetersToPoints(1.5)

BottomMargin = CentimetersToPoints(3)

LeftMargin = CentimetersToPoints(2)

.RightMargin = CentimetersToPoints(2)

Gutter = CentimetersToPoints(0)

HeaderDistance = CentimetersToPoints(1.25)

FooterDistance = CentimetersToPoints(1.25)

PageWidth = CentimetersToPoints(29.7)

PageHeight = CentimetersToPoints(21)

FirstPageTray = wdPrinterDefaultBin

OtherPagesTray = wdPrinterDefaultBin

SectionStart = wdSectionNewPage

OddAndEvenPagesHeaderFooter = False

DifferentFirstPageHeaderFooter = False

VerticalAlignment = wdAlignVerticalTop

SuppressEndnotes = False

MirrorMargins = False

TwoPagesOnOne = False

GutterPos = wdGutterPosLeft

ActiveWindow.ActivePane.View.Zoom.Percentage = 33

End Sub

Можно исправить текст этого макроса, например,

§ изменим процент, например 33 на 42

§ изменим поля

§ заменим False на True в строке.LineNumbering.Active = False (будет автонумерация строк)

§ заменим в строке.Orientation = wdOrientLandscape на wdOrientPortrait , ориентация бумаги будет книжная

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

Практическое задание 2.

Создадим макрос создающий окно сообщений при открытии файла.

MessageBox - окно сообщения, которое появляется на экране.

Для вывода MessageBox при открытии какого-либо файла MS Word необходимо создать макрос с именем AutoOpen и внутри него вызвать функцию msgbox. Это будет выглядеть так:

Sub AutoOpen()

" Данная функция вызывается при открытии документа

" Выводим MessageBox

MsgBox "Здравствуй, дружок!"

Последовательность действий (один из вариантов):

§ вкладка РАЗРАБОТЧИК/МАКРОСЫ, даем любое имя и СОЗДАТЬ

§ В окне редактора VBA, меняю имя и печатаем текст программы на VBA

§ Сохраняем

§ Запускаем

Теперь при открытии каждого документа, будем получим сообщение.

Команда для вывода окна сообщений имеет вид:

MsgBox (promt, button,title,helpfile)

· promt – обязательный аргумент, определяющий текст, который появится в окне сообщения

· button – необязательный аргумент, определяющий тип окна сообщения, наличие кнопок Ок, Отмена, Стоп, Пропустить и т.д

· title – необязательный аргумент, определяющий заголовок окна

· helpfile– необязательный аргумент, определяющий какой файл справки будет открыт, если пользователь нажмет F1

Практическое задание 3.

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

Для создания диалогового окна необходимо создать визуальный объект, именуемый формой. Форма – аналог окна, на которое можно помещать элементы управления (кнопки, переключатели, флажки и т.п). Каждая форма является частью пользовательского интерфейса. Каждая форма является объектом,и, в свою очередь, содержит множество объектов, каждым из которых можно управлять по отдельности.

Создание формы:

§ Окно VBA (ALT+F11)

§ INSERT/New Form или UserForm (вставка новой формы)

§ В окне Properties можно настроить свойства формы, например свойство Caption позволяет дать форме имя

§ Используя панель ToolBox устанавливаем на форму элементы управления:

· Label –надпись

· CommandButton- командная кнопка для выполнения какого-либо действия

· TextBox -текстовое поле

· Image – рисунок

· ChtckBox – флажок

§ Настраиваем работу каждого элемента. Например, 2 щелчка на CommandButton даст возможность написать те операторы VBA, которые должны выполняться при нажатии на эту кнопку.

Чтобы такое диалоговое окно появлялось при запуске макроса, необходимо добавить в макрос следующие строки:

Load UserForm1

UserForm1.Show

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


Созданный макрос следует выполнить. Существует несколько способов запуска макросов:

1. Посредством команды Макросы→ Макрос →Сервис

2. С помощью комбинации клавиш, назначенных макросу;

3. Посредством команды меню, назначенной для данного макроса;

4. Посредством кнопки, назначенной данному макросу на панели инструментов.

Выбор способа запуска макроса определяется самим пользователем исходя из собственных потребностей и предпочтений. Второй способов целесообразно использовать для запуска наиболее часто выполняемых макросов. Третий – иллюстрирует возможность вводить в основное меню собственные команды и тем самым совершенствовать меню. Последний способ отличает наглядность запуска.

Рассмотрим более подробно каждый из указанных способов запуска макросов.

1. Команда Макросы→Макрос →Сервис – стандартный вариант вызова макроса на выполнение. В диалоговом окне Макрос выбрать созданный макрос и нажать кнопку [Выполнить]. Данный способ пригоден также для редактирования и удаления макрокоманды – кнопки [Правка], [Удалить].

2. С помощью комбинации клавиш (рис. 2):

Рис. 2. Диалоговое окно. Настройка клавиатуры для назначения макросу

сочетания клавиш в Microsoft Word.

2. Для вызова макроса в диалоговом окне Настройка клавиатуры на вкладке Новое сочетание клавиш указывается комбинация управляющих клавиш. Например, совместно с комбинацией цифровых или алфавитных клавиш (на латинице);

Затем нажимается кнопка [Назначить], которая производит назначение.

3. Вызов командой в меню – осуществляется стандартная настройка меню: добавление пункта меню, связанного с вызовом макрокоманды:

В появившемся диалоговом окне Настройка , на вкладке Команды из поля со списком Категории выбирается команда Макросы , а затем имя макроса;

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

4. Посредством кнопки, назначенной данному макросу на панели инструментов (рис. 3):

В Word при нажатии кнопки [Панели] (см. рис. 1) в диалоговом окне Запись макроса появляется диалоговое окно Настройка , в котором на вкладке Команды из поля со списком Категории выбирается Макросы , а затем имя макроса;

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

щелкнув по кнопке [Изменить выделенный объект], можно выбрать понравившийся значок для кнопки, запустив командуü Выбрать значок для кнопки (рис. 4). Можно также редактировать значок с помощью команды Изменить значок для кнопки (окно Редактор кнопок ) (рис. 5).

Рис. 3. Диалоговое окно Настройка для назначения макросу
кнопки на панели инструментов в Microsoft Word.

Рис. 4. Диалоговое окно выбора значка для кнопки

Рис. 5. Диалоговое окно Редактор кнопок

В Excel дополнительно имеется возможность запуска макроса посредством назначенного ему графического образа.

После выбора способа вызова появляется небольшая панель инструментов Остановить запись , содержащая кнопку:

- [Остановить запись] – завершает запись макрокоманды;

[Пауза] – приостанавливает запись макрокоманды (рис. 6).

Рис.6. Панель записи макроса в Microsoft Word

  1. Изменение макросов

Макросы сохраняются в шаблоне в виде текстов программ. Каждый шаблон может содержать произвольное количество макросов. Поскольку dot-файлы (dot – расширение файлов шаблонов) нельзя читать как документы, в Word существуют специальные средства, позволяющие просмотреть и отредактировать макрос как последовательность операторов на языке VBA (рис.7). В процессе редактирования любой макрос представлен в виде последовательности операторов языка VBA. Суть редактирования макроса состоит в удалении, добавлении и замене операторов, как при программировании на любом другом языке.

Рис.7. Диалоговое окно редактора VBA

Редактирование макроса выполняется посредствам команды Макросы . В диалоговом окне Макрос , в поле Имя выбирается имя макроса, подлежащего редактированию. Процесс начинается при нажатии кнопки [Отладка]. Можно указать имя несуществующего макроса. Если после этого нажать кнопку [Создать], будет создан новый макрос, а пользователь получит возможность получит возможность записать его на языке VBA.

Кнопка [Отладка] служит для открытия окна редактирования макроса, в котором отображается содержимое макроса на языке VBA. Окно редактирования макроса подобно обычному окну документа, но отличается отсутствием координатной линейки и наличием специальной панели инструментов. Можно открыть несколько окон обработки макросов. Текст макроса редактируется так же, как обычный текст программы VBA. При этом доступно большинство команд редактирования текста, например команды Копировать и Вырезать .

С помощью кнопки [Удалить] указанный макрос удаляется.

Чтобы закрыть окно редактирования макроса, можно использовать системное меню окна редактирования или команду Закрыть в меню Файл . Специфические команды, предназначенные для редактирования и отладки макроса, выполняются путем нажатия кнопок в строке удаления.

Список литературы:

1. Мусин К.А «Техническое приложение к Microsoft Word»

2. Бородина А.И «Макропрограммирование»

Макрокоманда Назначение
ОткрытьФорму Может открыть форму в режиме предварительного просмотра. Возможно применить фильтр и задать условия отбора
ОткрытьЗапрос Может открыть запрос в режиме предварительного просмотра
ОткрытьТаблицу Может открыть таблицу в режиме предварительного просмотра.
ВывестиВформате Выводит заданную таблицу, запрос, форму, отчет или модуль в файл в формате XLS, RTF или TXT, а также запускает соответствующее приложение для редактирования файла.
Печать Выполняет печать активной таблицы, формы или отчета. Можно задать диапазон печатаемых страниц, число копий и необходимость раскладки копий
КомандаМеню Выполняет команду главного меню Access
Выход Закрывает все окна и осуществляет выход из Access
ЗапускМакроса Запускает другой макрос
ОстановитьВсеМакросы Останавливает работу всех макросов, включая макрос, который запустил этот макрос
Добавить меню Добавляет в строке пользовательского меню раскрывающееся меню для формы или отчета. В аргументах данной макрокоманды указывается имя строки меню и имя другого макроса, который содержит все используемые в меню команды и все действия, соответствующие этим командам
КомандаМеню Выполняет команду одного из главных меню Access. Используя эту макрокоманду внутри строки пользовательского меню, можно выполнить в пользовательском меню имеющиеся в нем команды.
КомандыКлавиатуры Запоминает последовательность нажимаемых клавиш
ЗадатьЗначение Изменяет значение любого элемента управления или свойства, которое можно обновить
Сигнал Выдает звуковой сигнал
Сообщение Выводит предупреждающее или информационное сообщение
Установить Сообщения Когда она включена, клавиша Enter назначается как клавиша ответной реакции на все системные предупреждающие или информационные сообщения при работе макроса. Чтобы отменить вывод сообщений, надо использовать эту команду вместе с макрокомандой ВыводНаЭкран, установленной в состояние "Нет" (Off)
Вывести на экран Выводит на экран информацию о промежуточных действиях, выполняемых при работе макроса
Развернуть Увеличивает размер активного окна до полного размера
Свернуть Сворачивает активное окно в значок
СдвигРазмер Изменяет размер активного окна
Восстановить Восстанавливает окно в прежних размерах

Для работы с макросами в панели инструментов предназначены следующие кнопки (рис. 9.1.):

Кнопка Имена макросов (с изображением «XYZ») отображает или убирает столбец “Имя макроса” , где можно присваивать имена макросам, входящим в группу;

Кнопка Условия (с изображением блок-схемы) отображает или убирает столбец “Условие” в окне макроса, где можно задать условие, с которым связано какое-то действие;

Кнопка Выполнить (с изображением «!») запускает макрос;

Кнопка По шагам (с изображением стрелки и списка) выполняет макрос по шагам;

Для обслуживания некоторого объекта, входящего в базу данных, создается подчас многочисленная совокупность макросов, каждый из которых автоматизирует некоторую вполне конкретную процедуру. Рекомендуется все макросы, связанные с событиями в форме или отчету, объединить в отдельный объект (группу), соответствующий данной форме или отчету. Каждый макрос должен иметь уникальное имя в пределах группы. Имя объекта Макрос будет являться именем группы. Вызов макрокоманды из макрогруппы осуществляется точным указанием имени макрогруппы и макрокоманды в группе: имяГруппы.имяМакроса.

Порядок выполнения макрокоманд в макросе может быть изменен. Для этого в макросе вводятся условия выполнения или пропуска макрокоманд. Условия задаются в виде выражения в столбце Условие.

Ссылка на форму или отчет состоит из двух частей: имяСемейства!имяОбъекта. Все открытые формы входят в семейство Формы, открытые отчеты – в семейство Отчеты. Например, Формы![Заказы клиента] или Формы!Клиент; ссылка на отчет – Отчеты![Отчет о продажах]. Если имя объекта содержит пробелы или специальные символы, оно обязательно должно быть заключено в квадратные скобки. Ссылка на свойство формы или отчета состоит из трех частей: имяСемейства!имяОбъекта.имяСвойства. Например: Формы!Клиент.Вывод на экран.

имяСемейства!имяОбъекта!имяЭлемента (например, Формы![Заказы клиента]! [Номер клиента]);

имяСемейства!имяОбъекта!имяЭлемента.имяСвойства (например, Формы![Заказы клиента]! [Доступ]).

Задание

1. Создайте макрос, содержащий макрокоманду ОткрытьФорму. Форма должна открываться с помощью кнопки, расположенной в другой форме.

2. Создайте группу, включающую наряду с новыми макрокомандами предыдущую макрокоманду. Выбор макрокоманд сделайте по своему усмотрению.

3. Создайте макрос с условиями.

Порядок выполнения работы

Создание макроса

1. В окне Базы данных щелкните по вкладке Макросы и нажмите на кнопку Создать . Откроется окно проектирования макроса аналогичное окну, приведенному на рис. 9.1. (будут отсутствовать столбцы Имя макроса и Условие ). Каждая строка в этом окне может содержать одну макрокоманду и комментарий к ней.

2. В строку, помеченную указателем, введите Макрокоманду . Команду можно вводить с клавиатуры или воспользоваться списком, который доступен в ячейках колонки Макрокоманда .

3. Желательно ввести пояснения в столбец Примечание . Комментарии облегчают понимание и сопровождение макросов.

4. Когда поле Макрокоманда заполнено, в нижней части Конструктора макроса появится панель аргументов . Список полей этой панели зависит от выбранной макрокоманды и может отсутствовать, если макрокоманда не имеет аргументов. Укажите всю требуемую системой информацию в области аргументов макрокоманды. В общем случае рекомендуется задавать аргументы макрокоманды в том порядке, в котором они перечислены, поскольку выбор одного аргумента может определять возможные значения следующего аргумента.

5. Сохраните макрос. Для этого можно воспользоваться кнопкой Сохранить , либо выполните команду ФАЙЛ/Сохранить . Присвойте имя макросу (имя должно нести смысловую нагрузку).

6. Запустите макрос на исполнение.

Вызвать и выполнить макрос можно одним из нескольких способов:

В режиме проектирования макроса (см. рис. 9.1.) щелкнуть по кнопке Выполнить ;

Выполнить команду СЕРВИС/Запуск макроса и выбрать из списка имя макроса для выполнения;

В окне Базы данных на вкладке Макросы выполнить двойной щелчок на имени подлежащего выполнению макроса.

7. Откройте в режиме Конструктора какую-либо форму, отличную от формы, для которой разрабатывается макрос.

8. Создайте кнопку, разместив его в области заголовка открытой формы. Откройте окно свойств кнопки (рис. 9.2): выделите кнопку, нажмите правую кнопку мыши, в появившемся меню выберите пункт Свойства (открыть окно свойств можно, дважды щелкнув по кнопке). В окне свойств укажите, с каким событием связывается макрос. По умолчанию это событие Нажатие кнопки .

Создание групп макросов

Объедините макросы в макрогруппу (можно сделать новый объект или преобразовать ранее созданный макрос в группу макросов).

1. Откройте Конструктор макросов .

2. Нажмите кнопку Имена макросов на панели инструментов. В окне Конструктора макросов появится еще один столбец Имя макроса .

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

4. Пропустите строчку.

5. Введите имя следующего макроса и соответствующие ему макрокоманды. На рис. 9.3, в качестве примера, представлен макрос “Поставщики” БД “Борей”.

6. Проверьте работу макроса. Выполните команду СЕРВИС/Запуск макроса (будет выполнен только первый макрос из макрогруппы). Вызов других макросов из группы возможен, если в диалоговом окне ввести имя макрогруппы и через точку имя макроса.

7. Сохраните макрос.

Создание макроса с условием

Для примера на рис. 9.4 представлено окно проектирования макроса, который будет выводить на экран таблицу о товарах, находящихся на складе фирмы. Таблица “Товары на складе” будет открываться лишь тогда, когда в поле Цена формы будет внесено значение, меньше 1000. Макрос связан с элементом управления Цена в форме “Товары, проданные со склада” . Подключение этого макроса к элементу управления Цена происходит также, как и подключение макроса кнопки. Макрос будет связываться либо с событием Выход , либо с событием Вход .

1. Откройте Конструктор макросов .

2. Нажмите кнопку Условие. Запишите в столбце Условие выражение, при истинности которого будет выполняться создаваемый макрос. Выражения для условия удобнее задавать в окне Построитель выражений .

3. Задайте макрокоманду.

4. Сохраните макрос.

5. Откройте в режиме Конструктора форму, в которой предполагается один из элементов управления связать с разрабатываемым макросом. Свяжите элемент управления и макрос.

6. Проверьте работу макроса.

Приложение 1

Статистические функции

Функция Описание
Sum Вычисляет сумму всех значений заданного поля в каждой группе. Используется только для числовых и денежных поле.
Avg Вычисляет среднее арифметическое всех значений заданного поля в каждой группе. Используется только для числовых и денежных поле. Значения Null не включаются в вычисления.
Min (Max) Возвращает наименьшее (наибольшее) значение, найденное в заданном числовом поле внутри каждой группы. Для текстовых полей - наименьшее из символьных значений независимо от регистра. Значения Null игнорируется.
Count Возвращает число записей, в которых значения данного поля отличны от Null. Для учета значений Null используется Count(*)
StDev* Вычисляет смещенное статистическое стандартное отклонение для всех значений данного поля в каждой группе. Применяется к числовым и денежным полям. Если в группе меньше двух строк, возвращает значение Null.
StDevP* Вычисляет несмещенное статистическое стандартное отклонение
Var* Вычисляет смещенную статистическую дисперсию для всех значений данного поля в каждой группе. Применяется к числовым и денежным полям. Если в группе меньше двух строк, возвращает значение Null.
VarP* Вычисляет несмещенную статистическую дисперсию
First* Возвращает первое значение в заданном поле.
Last* Возвращает последнее значение в заданном поле.

Примечание: функции, отмеченные *, в Мастере запросов не применяются.


Приложение 2

Построитель выражений

Построитель выражений – средство построения сложных выражений. Структура окна Построителя выражений представлена на рис. П.2.1.

Текстовое поле для ввода выражения

Выражение – совокупность операторов и операндов (константы, идентификаторы и функций).

Идентификаторы – имена объектов (например, полей таблиц или запросов), которые при вычислении выражений заменяются их текущими значениями. Если имя объекта состоит более чем из одного слова, то его обязательно заключают в квадратные скобки. Однако обычно скобки ставят даже, если имя объекта состоит из одного слова, чтобы имена объектов сразу бросались в глаза при работе с выражениями.

Идентификаторами являются имена констант и переменных, применяемые в программах на языке Visual Basic для приложений, а также именованные константы True, False, Yes, No, Null.

Функции – возвращают в выражение значение вместо имени функции. Большинство функций требует заключать в скобки свои аргументы. Пример функции с пустым списком аргументов: Date () – возвращает текущую дату.

Для создания выражений существует шесть категорий операторов, которые представлены в таблице П. 2.1

Таблица П. 2.1

Операторы для создания выражений

Категория операторов Оператор Пример Описание
Арифметические операторы + [Итог]+[Надбавка] Складывает два операнда
- Date() – 7 Считает разность двух операндов
* [Коробок]*[Цена] Перемножает два операнда
/ [Количество] / 5.33 Делит один операнд на другой
\ [Количество] \ 2 Делит один целый операнд на другой нацело. При этом операнды с десятичными дробями округляются до целого
Mod [Коробок] Mod 3 Возвращает остаток отделения нацело
^ [А] ^ [b] Возводит операнд А в степень b
Операторы сравнивания 1 < 1 < 100 Меньше
<= [a] <= 2 Меньше либо равно
= [b] = 3 Равно
> [a] > 2 Больше
>= [b] >= 3 Больше либо равно
<> 1<>100 Неравно
Логические операторы 2 And [A] And [B] Конъюнкция (логическое И)
Or [A] Or [B] Дизъюнкция (логическое Или)
Not Not [A] Логическое отрицание
Xor [A] Xor [B] Исключающее ИЛИ
Eqv [A] Eqv [B] Логическая эквивалентность
Imp [A] Imp [B] Логическая импликация
Операторы конкатенации + “Visual “+”Basic” Объединение двух текстовых
& “Visual “ & ”Basic” значений в единую строку. Оба операнда эквивалентны, но & - предпочтительнее
Продолжение таблицы П.2.1
Операторы идентификации ! КлассОбъекта! ИмяОбъекта Разделитель в ссылках на объекты
. ИмяОбъекта.Метод Разделитель в ссылках на методы и свойства объектов
Операторы сравнения с образцом Between Between(-100) And (100) Определяет, находится ли числовое значение в определенном диапазоне
Is [Имя] Is Null Используется только для сравнения со значением. В примере выражение принимает истинное значение, когда в поле Имя нет никаких данных.
In In (“Москва”, ”Киев”, ”Мурманск”) Определяет, является ли строковое значение элементом списка значений
Like Like “Ив*” Like “db??” Определяет, начинается ли строковое значение с указанных символов (символ “*” замещает любое число знаков, “?” – замещает только один знак)

Примечания:

1. Результат применения операторов сравнения – True или False. Если один из операндов имеет значение Null (пустое значение), то любое сравнение возвращает значение Null.

2. Результат применения логических операторов – True или False. Операнды имеют значение из множества (True, False, Null). Для всех логических операторов, кроме Imp, значение одного из операндов Null приводит к значению результата Null.

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

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

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

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


Приложение 3

Кнопки панели элементов ACCESS

Кнопка Название кнопки Функция
Выбор объекта Превращает указатель мыши в инструмент выборки объектов
Мастера Включает и отключает мастеров создания элементов управления
Надпись Текст заголовков, подписей или пояснений, этот текст остается неизменным
Поле Создает поле для отображения и редактирования текстовых данных
Группа Создает рамку для размещения выключателей, переключателей, флажков. Одновременно может быть выбран только один из объектов, помещенных в рамку. Каждому элементу рамки соответствует уникальное число
Выключатель Переключатель Флажок Выключатель, переключатель, флажок, не включенные в группу, определяют значение логического типа Да (Yes) или Нет (Nо) , до- пускается использовать Истина (True) или любое положительное число, Ложь (False) или ноль
Поле со списком Создает поле со списком, содержащее поле для ввода значения, и список, в котором можно выбрать значение из набора значений
Список Создает раскрывающийся список для выборки значений
Кнопка Создает кнопку, после щелчка на которой запускается процедура обработки событий Access VBA
Рисунок Добавляет в форму или отчет точечный рисунок. Рисунок не относится к числу объектов OLE, после размещения в форме его изменение невозможно
Свободная рамка Добавляет в форму или отчет объект OLE
Присоединенная рамка Отображает содержимое поля OLE записи, если в поле имеется графический объект, иначе отображается значок объекта
Продолжение прил. 3
Разрыв страницы При печати формы или отчета заставляет принтер начинать новую страницу в месте разрыва страницы. В режиме просмотра формы или отчета разрыв не отображается
Набор вкладок Вставляет набор вкладок для создания формы, разделенной вкладками.
Подчиненные форма/отчет Добавляет подчиненные форму/отчет в главную форму/отчет
Линия Прямоугольник Применяются для разделения формы на логические группы для имитации рамок, границ. Цвет, ширину линий, заливку прямоугольника устанавливают с помощью панели инструментов форматирования
Дополнительные элементы

Приложение 4

Список контрольных вопросов

1. Каков порядок определения структуры БД в СУБД ACCESS?

2. В каком режиме описывается структура таблицы БД?

3. Дайте определения терминам: “объект”, “свойство”, “метод”, “событие”.

4. Какие типы объектов можно увидеть в окне БД ACCESS?

5. Какое расширение принято для файлов БД?

6. Можно ли изменить структуру таблицы после ее создания?

7. Какие типы полей БД предусмотрены в ACCESS?

8. Каковы правила именования полей БД?

9. Какая информация может храниться в полях типа "объект OLE"?

10. Какие свойства поля должны быть определены обязательно?

11. Поясните назначение первичного ключа в реляционной БД. Какие ограничения накладываются на значения первичного ключа?

12. Поясните назначение индексов.

13. Можно ли создать индекс по части поля? Если “да”, то как это сделать?

14. Какие виды контроля данных могут автоматически выполняться в СУБД ACCESS?

15. Для чего необходимо описывать связи между таблицами базы данных?

16. В каком режиме следует описывать связи между таблицами?

17. Какие типы связей поддерживает СУБД ACCESS?

18. Какое влияние оказывает установка связей на ввод и изменение информации в БД?

19. В чем состоят задачи ввода и коррекции данных в БД?

20. Какие типичные операции включает задача коррекции данных?

21. Какие приемы контроля данных имеются в ACCESS?

22. Когда производится проверка данных?

23. Как добавить в таблицу новую запись?

24. Как удалить запись из таблицы?

25. Можно ли восстановить удаленную из БД информацию?

26. Как найти в таблице нужное значение?

27. Как заменить во всех записях БД название фирмы ТОО "Заря" на АО "Рассвет"?

28. Что такое шаблон поиска, какие символы и для чего применяют в шаблоне?

29. С какой целью и как производится сортировка записей БД?

30. Как ведут себя данные в других полях таблицы при сортировке по полю "Фирма" ?

31. Как отменить сортировку данных?

32. Что такое запрос и какие типы запросов поддерживает в ACCESS?

33. Как задать параметры при создании запроса-выборки с параметрами?

34. Что такое агрегированные (групповые) операции и как они применяются в запросах?

35. Как определить из каких таблиц взяты поля в шаблон вывода при конструировании запроса?

36. Что такое перекрестный запрос и как он конструируется?

37. К какому классу языков относится SQL? Как язык SQL используется при формировании запросов?

38. Какова структура запроса на языке SQL, содержащего подзапросы?

39. Можно ли передать параметры в запрос из некоторой формы, если можно, то как это сделать?

40. Можно ли вводить данные в таблицы через запросы, если можно, то в каких случаях, каковы ограничения, накладываемые на взаимосвязанные таблицы, на ввод данных в через запросы в таблицы?

41. Что такое поля группировки, можно использовать одновременно несколько полей группировки в одном запросе и каков смысл получаемого результата?

42. Что представляет из себя запрос на создание таблицы, как он работает, какую таблицу можно создать?

43. Как конструируются запросы на изменение в таблицах БД? Можно ли в одном запросе включать изменения в нескольких таблицах?

44. Что такое запросы на удаление, как они конструируются? Для чего могут быть использованы запросы на удаление? Могут ли быть запросы данного типа с параметрами.?

45. Что такое вычисляемые поля в запросах, для чего они нужны и как они конструируются?

46. Могут ли вычисляемые поля участвовать в формировании условия отбора в запросе?

48. Что такое видимые или выводимые и невидимые или невыводимые поля запроса? Зачем нужны невидимые поля запроса?

49. Как в построителе выражений можно увидеть поля конкретной таблицы, поля данного запроса? Почему при конструировании запроса не все поля видны в построителе выражений?

50. Сколько баз данных может быть открыто одновременно?

51. Какие свойства имеет объект “таблица”?

52. Назначение объекта “форма”. Какие свойства имеет объект “форма”?

53. Позволяет ли ACCESS создавать многоэкранные формы?

54. Можно ли пользоваться одной и той же экранной формой для ввода информации в разные файлы БД?

55. Как внедрить в форму подчиненную форму?

56. Назначение объекта “отчет”. Какие свойства имеет объект “отчет”?

57. Можно ли получить отчет, содержащий только итоговые строки? Если “Да”, то как?

58. Можно ли изменять длину и формат поля в выходном документе по сравнению с тем, который был задан в файле БД?

59. Что такое макрос? Назначение макросов.

60. Какие режимы допускает окно БД для таблиц, запросов и форм? Чем они отличаются от допустимых режимов для макросов?

61. Как выявить ошибки в работе макроса?

62. Можно ли в ACCESS использовать данные, которые хранятся в других форматах?

63. Как создать таблицу путем импорта данных из рабочего листа EXCEL?

Из этой лекции вы узнаете следующее:

  • для чего нужны макросы;
  • как создать и использовать макрос;
  • как экспортировать и импортировать макросы;
  • как обеспечить безопасность при работе с макросами.

9.1. Что такое макросы и зачем они нужны

У каждого опытного пользователя интерфейс Microsoft Word уникальный и изменяется в зависимости от того, какие инструменты ему необходимы в работе. Вы вряд ли увидите одинаковые панели инструментов или пункты главного меню - чтобы сделать работу наиболее удобной, каждый пользователь стремится настроить программу по-своему. Однако иногда изменения только интерфейса (вынесение основных команд на панель инструментов и создание пользовательских меню ) недостаточно.

Если работа однообразная, то пользователю приходится часто повторять те или иные команды в определенной последовательности (например, оформлять текст курсивом, кеглем 10, гарнитурой Arial). Чтобы произвести такое небольшое форматирование , может понадобиться достаточно большое количество времени, особенно если таким образом необходимо выделить несколько десятков слов. Получается, что для каждого участка нужно проделывать несколько операций. Конечно, можно отформатировать только один участок и создать пользовательский стиль, но и это не самый быстрый способ применения оформления.

Если вам часто приходится выполнять одни и те же действия, то эффективность вашей работы можно заметно увеличить при помощи макросов. Макросы - это небольшие программы на языке Visual Basic . Они могут помочь не только в ситуациях, когда требуется много раз выполнить сложное форматирование , но и при вставке объектов, печати выделенного текста и в других случаях.

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

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

Внешний макрос можно применять в случае, если он полезен при работе с документами, созданными на основе разных шаблонов. Если вы пользуетесь большим количеством шаблонов, то вносить в каждый из них макрос будет неудобно, как придется делать при использовании внутреннего макроса. Внешний же макрос можно применять для работы с любыми документами, а также свободно переносить с компьютера на компьютер . Для создания внешнего макроса его нужно сохранить с расширением BAS .

9.2. Создание макросов

Самый простой способ создания макроса - запись нужных действий в документе. Записав последовательность команд один раз, можно будет вызывать макрос щелчком мышью, когда нужно выполнить такие же действия. Для записи макросов сделайте следующее.

Назначение макроса кнопке

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


Назначение макроса клавишам

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


Запись макроса

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

Упражнение 9.1. Запись макроса

Создадим макрос, с помощью которого можно щелчком мышью применить к выделенному участку текста гарнитуру Arial, полужирное начертание и размер шрифта 10.

Когда появится панель записи макроса, сделайте следующее.


Теперь можно проверить его действие. Откройте любой документ, выделите требуемый участок и вызовите макрос с помощью кнопки на панели быстрого запуска или сочетания клавиш. Вы увидите, что форматировать текст, используя макрос, гораздо удобнее, чем каким-либо другим способом.

Язык макросов является языком программирования, который позволяет реализовать задачи пользователя, выполняя необходимые действия над объектами Access и их элементами. Макрос — программа, состоящая из последовательности макрокоманд . Макрокоманда — это инструкция, ориентированная на выполнение определенного действия.

Например, макрокомандой можно открыть форму, отчет, напечатать отчет, запустить на выполнение запрос, применить фильтр, присвоить значение, создать свое меню для формы или отчета. Макрокоманда ЗадатьКомандуМеню позволяет выполнить любую заданную команду меню. Имеющийся в Access набор макрокоманд реализует практически любые действия, которые необходимы для решения задачи.

Язык макросов обеспечивает возможность выполнения большинства задач, не прибегая к программированию на Visual Basic. Макросы, являясь надстройкой над Visual Basic, обеспечивают пользователя средствами решения задач, не требующими знания детального программирования. Язык макросов является языком более высокого уровня, чем Visual Basic.

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

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

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

Конструирование макроса

Создание макросов осуществляется в диалоговом режиме и сводится к записи в окне макроса последовательности макрокоманд, для которых задаются параметры. Каждому макросу присваивается имя. При выполнении макроса макрокоманды выполняются последовательно в порядке их расположения. При этом используются объекты или данные, указанные в аргументах макрокоманд. Имеется возможность определить условия выполнения макрокоманды.

Выполнение макросов инициируется простой операцией и может сводиться к его открытию, как это делается и для других объектов базы данных. Помимо этого, Access предоставляет возможность автоматически инициировать выполнение макроса при наступлении некоторого события. Для связи макроса с событием достаточно в бланке свойств объекта или его элемента управления внести в строку этого события имя макроса. События, с которыми можно связать макрос, определяются в свойствах форм и отчетов и их элементах управления. Создание макроса начинается в окне базы данных, где надо выбрать закладку Макросы (Macros) и нажать кнопку Создать (New) . После этого открывается окно макроса.

Формирование макрокоманд в окне макроса

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

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

После ввода всех макрокоманд в макрос его надо сохранить, воспользовавшись командой меню Файл/Сохранить или кнопкой панели инструментов макроса.

Для выполнения макроса можно нажать кнопку панели инструментов Запуск . Если макрос уже закрыт, то для его выполнения надо в окне базы данных выбрать макрос и нажать кнопку Запуск в этом окне. Таким образом, по инициативе пользователя задача может решаться многократно.

Для просмотра и редактирования существующего макроса надо выбрать его в окне базы данных и нажать кнопку Конструктор .

Пример разработки макроса

Пусть необходимо рассчитать количество студентов в группах и внести эти данные в поле КОЛ таблицы ГРУППА . Подсчет количества студентов реализован запросом Число студентов в группе . Обновление поля КОЛ на основе полученных в этом запросе данных выполняет запрос Обновление ГРУППА_КОЛ . Последовательное выполнение этих запросов решает поставленную задачу.

  1. Сначала создадим запрос на обновление.
    Оформим окно конструктора запроса как показано на рисунке:

В схему данных запроса добавлены таблица Группа и таблица Число студентов , полученная после выполнения запроса на создание Число студентов в группе .

  1. Преобразуем запрос на выборку в запрос на обновление. Для этого выполним команду меню Запрос/Обновление . В строке Обновление введем имя поля таблицы Число студентов , из которой выбираются значения для обновления.
    Сохраним запрос на обновление под именем Обновление ГРУППА_КОЛ .
  2. Создадим макрос, состоящий из макрокоманд, показанных в окне конструктора:

В столбце Примечания записаны комментарии к макрокомандам. В зависимости от выбранной макрокоманды меняется нижняя часть окна конструктора — Аргументы макрокоманды . На рисунке активна макрокоманда СдвигРазмера , которая устанавливает положение и размеры окна таблицы Группа , демонстрируемого после ее обновления.

Сохраним макрос под именем Расчет количества студентов в группах . После нажатия кнопки Запуск получим результаты выполнения макроса, показанные на рисунке.

Поверх окна Группа выводится сообщение, в соответствии с последней макрокомандой.

Контрольные вопросы

  1. Чем отличаются макросы в Access от макросов в Word и Excel?
  2. Как организовать запуск макроса по некоторому событию?
  3. В чем сходство и различие между макросами и модулями в Access?
  4. Как получить справку о той или иной макрокоманде?
  5. Вывод каких сообщений в рассмотренном примере отключает макрокоманда ВыводНаЭкран?