Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Учебник Макаровой

.pdf
Скачиваний:
90
Добавлен:
12.04.2015
Размер:
11.93 Mб
Скачать

Рис. 19.15. Панель инструментов Запись макрокоманды

Панель содержит две кнопки (слева направо): <Стоп> – завершает запись макрокоманды; <Пауза> – приостанавливает запись макрокоманды.

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

Стандартный вариант вызова макрокоманд на выполнение это команда СЕРВИС, Макрокоманда, диалоговое окно «Макрокоманда», кнопка <Выполнить>. Данный способ пригоден также для редактирования и удаления макрокоманд - кнопки <Правка>, <Удалить>.

Пример 19.2. Внутренняя структура макрокоманды М2 включает вызов макрокоманды M1, М3 вызов М2.

Пример 19.3. Клавишная макрокоманда выполняет следующие стандартные установки в меню ФОРМАТ для выделенного абзаца при нажатии на кнопку панели <Форматирование> с именем А1:

шрифт – Arial Cyr, высота – 10 пунктов, полужирный;

абзац выравнивание по обеим сторонам, красная строка 1 см; табуляторы левосторонние таблотступы на расстоянии 5 см, 12 см.

Последовательность действий:

выполнить команду СЕРВИС, Макрокоманда;

ввести в поле «Имя» – имя новой макрокоманды А1, указать сферу ее действия шаблон Normal.dot, записать произвольный комментарий к шаблону и нажать кнопку <Записать>;

вокне «Запись макрокоманды» назначить вызов макрокоманды с помощью кнопки на панели инструментов нажать кнопку <Панели>;

вокне «Настройка» на вкладке Панели выбрать категорию Макро. Курсор устанавливается на введенное имя макрокоманды, нажимается левая кнопка мыши и новая кнопка-заготовка перетаскивается в область окна документа;

вокне «Нестандартная кнопка» выбрать внешний вид новой кнопки;

на экран выводится новая панель инструментов Запись макро, которая имеет кнопки: <Стоп> – для завершения записи макрокоманды, <Пауза> – для временной приостановки записи макрокоманды (для возобновления записи повторно нажать кнопку <Пауза>);

сделать указанные установки с помощью команд режима

ФОРМАТ;

нажать кнопку <Стоп> на панели Запись макро.

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

Макрокоманды на языке WordBasic

571

Для создания макрокоманды на языке WordBasic выполняется команда СЕРВИС, Макрокоманда, в диалоговом окне «Макрокоманда» (см. рис. 19.14) указываются имя макрокоманды, сфера ее действия и краткое описание, затем нажимается кнопка <Создать>, после этого открывается новое окно для записи текста макрокоманды на языке WordBasic. На экран выводится панель инструментов Макро.

Рис. 19.16. Панель инструментов Макро

Используются следующие кнопки (слева направо):

<Список активных макрокоманд> – позволяет просматривать и переходить к активной макрокоманде; <Запись> – запись новой макрокоманды; <Записать следующую команду> – продолжить запись макрокоманды, начиная с позиции, на которой

установлен курсор; <Старт> – выполнить активную макрокоманду;

<Трасса> – пошагово выполнить активную макрокоманду; <Продолжить> – продолжить выполнение остановленной макрокоманды; <Стоп> – завершить выполнение макрокоманды;

<Шаг внутрь> – выполнить активную макрокоманду, останавливаясь перед каждой инструкцией и подсвечивая ее;

<Шаг через> - выполнить активную макрокоманду, останавливаясь перед каждой следующей инструкцией в основном теле макрокоманды и подсвечивая ее. Выполнение подпрограмм не прерывается;

<Показать переменные> – вывод на экран диалога «Переменные макрокоманды», с помощью которого можно просмотреть и изменить значения всех переменных остановленной макрокоманды;

<Добавить или удалить REM> – вставить или удалить инструкцию RЕМ в выделенных строках окна редактирования макрокоманд;

<Макро> – работу с макрокомандами, в том числе создание новых макрокоманд, выполнение существующих и т.д.;

<Редактор диалогов> – запуск или переключение в режим Редактора диалогов.

Более подробно о программировании см. подразд. 19.2 и сведения о макропрограммах Excel 5.0.

Для просмотра текста макрокоманды выполняется команда СЕРВИС, Макрокоманда, курсор устанавливается на имени макрокоманды, нажимается кнопка <Правка>.

Клавишные и языковые макрокоманды сохраняются в определенном шаблоне документов. С

помощью команды ФАЙЛ, Шаблоны или СЕРВИС, Макрокоманда вызывается диалоговое окно «Организатор», которое обеспечивает копирование, переименование и удаление макрокоманд на уровне шаблонов документов.

Макропрограммирование

Макропрограммирование в Excel 5.0 также осуществляется путем создания макросов (макрокоманд) двух видов:

572

клавишные макросы;

языковые макросы в виде программных модулей на языке Visual Basic.

Группа языковых макрокоманд подробно рассматривается в подразд. 19.2. Рассмотрим основы работы с клавишными макросами.

Для записи нового клавишного макроса выполняется команда СЕРВИС, Запись макроса, выбирается вариант Записать новый макрос. Макрос записывают с использованием абсолютных (точные адреса ячеек в стиле А1) или относительных ссылок на ячейки таблицы.

После указания вида записи появляется диалоговое окно «Запись макроса» (рис. 19.17), в котором указано:

Рис. 19.17. Диалоговое окно <<Запись макроса>>

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

Текстовая кнопка <Параметры> вызывает диалоговое окно для установки параметров: способ вызова;

место сохранения макроса (персональная рабочая книга, текущая рабочая книга, новая рабочая книга);

язык записи текста макроса (Visual Basic, макроязык Excel 4.0). Для вызова макросов можно использовать:

команды меню;

"горячие" клавиши <Ctrl> <буква>.

Другими средствами настройки можно связать нажатие кнопки на панели инструментов с запуском макроса (см. выше). Любому рисованному объекту на рабочем листе также можно приписать запуск

макроса с помощью команды контекстного меню Назначить макрос.

Создаваемый макрос может быть сохранен в персональной книге макросов (PERSONAL.XLS), общей для ряда рабочих книг одного автора или в текущей рабочей книге. Автоматически создается новый рабочий лист, на который записывается текст макроса на выбранном языке программирования - Visual Basic или макроязыке Excel 4.0. Макросы можно также размещать в отдельной рабочей книге, которая создается автоматически под стандартным именем ВООК#.

После задания параметров и нажатия клавиши <ОК> на экран выводится панель инструментов Остановка записи, которая останавливает запись макроса. Далее выполняются действия для записи в макросе.

Для запуска макроса через команду СЕРВИС, Макрос вызывают аналогичное диалоговое окно, с помощью которого выполняют, модифицируют или удаляют выделенный макрос.

Команда ВСТАВКА, Макрос вставляет в рабочую книгу под управлением пользователя: лист для размещения модуля Visual Basic;

лист диалога;

573

лист макросов Microsoft Excel 4.0.

Лист модуля Visual Basic используется для записи языковых макросов, лист макросов Microsoft Excel 4.0 – для записи новых макросов на языке предыдущей версии пакета Excel.

ШАБЛОНЫ ДОКУМЕНТОВ

Шаблон документов Word 6.0

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

Шаблон Word 6.0 совокупность постоянного текста, графики, доступных стилей для форматирования документов, макрокоманд, элементов автотекста, панелей инструментов, нестандартных меню и клавиш сокращения.

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

Шаблоны документов создаются различными методами.

Ручной вариант создания шаблона. С помощью команды ФАЙЛ, Создать с указанием типа документа Шаблон создается новый документ со стандартным именем Шаблон, для которого можно выполнить все необходимые оформления, разметки, подготовить стили, макрокоманды и т.д., а затем сохранить документ со стандартным расширением .DOT в каталоге, содержащем шаблоны.

Шаблон на базе другого шаблона. На базе существующего шаблона создается новый документ, который оформляется, а затем сохраняется с помощью команды ФАЙЛ, Сохранить как новый шаблон файл с расширением .DOT. Применительно к новому шаблону осуществляется разработка нужных макрокоманд, панелей инструментов, элементов автотекста и т.п. Этот вариант развивает существующие шаблоны документов, сохраняя преемственность их элементов.

Шаблон из элементов других шаблонов. Вариант состоит в максимальном заимствовании элементов других шаблонов. С помощью команды ФАЙЛ, Шаблоны кнопка <Организатор> вызывает диалоговое окно для выполнения поэлементного формирования шаблонов (рис. 19.18).

Рис. 19.18. Диалоговое окно «Организатор»

Для элемента определенного типа выбирается соответствующая вкладка, на которой устанавливают

574

файл-источник элемента шаблона и файл-приемник, выполняется копирование.

Это же диалоговое окно позволяет удалить неактуальные элементы шаблона или переименовать их.

Шаблон рабочих книг Excel 5.0

Шаблон Excel 5.0 совокупность текста, графики, форматов данных и макета печатной страницы, формул, макросов и меню.

Существуют различные виды шаблонов: наиболее типичный шаблон рабочей книги.

Шаблон рабочей книги Excel 5.0 – это рабочая книга, которую используют как образец при создании других рабочих книг. По команде ФАЙЛ, Создать по выбранному шаблону создается новая рабочая книга (сам шаблон-оригинал остается нетронутым); книге присваивается временное имя файла шаблона, но без расширения.

Шаблон рабочей книги содержит параметры, соответствующие настройке в команде СЕРВИС,

Параметры:

заданное число листов в рабочей книге; шрифт основного текста; стиль ссылок; режимы правки и др.

Шаблон рабочей книги создается путем сохранения рабочей книги в виде файла с типом Шаблон и расширением .XLT. Если для сохранения выбран стартовый каталог XLSTART (или альтернативный стартовый каталог) и для файла использовано стандартное имя BOOK.XLT, шаблон становится

автошаблоном рабочей книги.

Автошаблон шаблон со специальным именем,

расположенный в стартовом или альтернативном стартовом каталогах.

Все рабочие книги стартового каталога (файлы с расширением .XLS) автоматически открываются при запуске Excel 5.0, а шаблоны (файлы с расширением .XLT) добавляются в список диалогового окна команды ФАЙЛ, Создать и выводятся для выбора.

Для редактирования шаблоны открывают особым образом. При выполнении команды ФАЙЛ, Открыть выделяется требуемый файл шаблона таблицы и при нажатой клавише <Shift> нажимается кнопка <ОК>. После завершения редактирования выполняется сохранение файла шаблона обычным образом.

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

Для включения нового листа на базе автошаблона выполняются следующие действия: выделяется лист, слева от которого вставляется новый лист на основе шаблона; правая кнопка мыши вызывает контекстное меню ярлычка выделенного листа; выполняется команда ВСТАВКА контекстного меню; из списка типов листов (рис. 19.19) выбирается требуемый, нажимается кнопка <ОК>.

Рис. 19.19. Список типов листов для вставки

575

19.2. СОЗДАНИЕ ПРИЛОЖЕНИЙ НА ЯЗЫКЕ VISUAL BASIC FOR APPLICATIONS

Характеристика языка VBA Операторы языка VBA

Работа с файлами Диалоговые окна

ХАРАКТЕРИСТИКА ЯЗЫКА VBA

Основные понятия

Visual Basic for Applications (VBA) является общей языковой платформой для всех приложений (Excel 5.0, Word 6.0, Mail, Power Point). VBA соблюдает основной синтаксис и правила программирования языков-диалектов Basic (BASICA, GW-BASIC). Концепция и синтаксис языка VBA рассмотрены в данной главе применительно к Excel 5.0.

Visual Basic for Applications (VBA) – развитая система визуального

программирования для создания прикладных программ в среде

Microsoft Office.

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

создание объектов управления и контроля (диалоговые окна, пиктограммы, меню); разработка процедур, используемых при вызове объектов.

Прикладные программы на языке VBA оперируют со следующими понятиями:

объект управления и контроля - экранные формы, графические элементы внутри форм, в том числе текстовые окна, линейки прокрутки, пиктограммы, окна-списки, командные кнопки и др.; свойство (параметр) – характеристика или атрибут объекта управления;

значение свойства; событие действие, которое распознается объектом управления;

метод доступа - аналогичное понятиям функция, оператор, который воздействует всегда на объект;

процедура подпрограммы и функции, произвольная последовательность операторов VBA; процедуры делятся на событийные (запускаются при наступлении событий) и общие процедуры.

Программы на языке VBA для приложений, функционирующих в среде Excel 5.0, создаются двумя способами:

вавтоматическом режиме как результат построения клавишной макрокоманды (см. подразд. 19.1);

внеавтоматическом режиме путем создания программного кода.

Ниже рассматривается вариант традиционного программирования на языке VBA применительно к

Excel 5.0.

Для создания программного модуля в составе рабочей книги выполняется команда меню ВСТАВКА, Макрос с указанием типа макроса Модуль. При этом создается новый рабочий лист со стандартным именем Модуль и порядковым номером программного модуля в рабочей книге. Имя модульного листа можно изменить.

При работе с модулем на экран выводится новая панель инструментов Visual Basic (рис. 19.20).

576

Рис. 19.20. Панель инструментов

Первый ряд кнопок панели (слева направо):

<Вставка Модуля> - вставляет в активную рабочую книгу новый программный модуль; <Редактор Меню> - редактирование строк и команд меню рабочей книги;

<Просмотр Объектов> – просмотр списка доступных в текущей рабочей книге процедур, модулей, объектов и их свойств.

Второй ряд кнопок:

<Выполнить Макрос> - выбор нужного макроса для запуска через окно диалога Макрос; <Шаг Макроса> – пошаговое выполнение выбранного макроса (шаг одна строка кода); <Продолжить Макрос> – возобновление выполнения макроса после его останова; <Остановить Макрос> – останов выполнения или записи макроса; <Записать Макрос> – ввод через окно диалога Макрос имени нового макроса и его запись.

Третий ряд кнопок:

<Точки Прерывания> – установление (снятие) точки прерывания для строки процедуры; <Наблюдение> – указание в окне диалога выражения VBA для наблюдения его значений; <Вход в Процедуру> – выполнение следующей строки кода процедуры VBA;

<Выход из Процедуры> - выполнение следующей строки кода процедуры VBA с приостановкой. Экран модуля используется для записи строк программы на языке VBA.

Основные наборы (классы объектов), с которыми работает программа на языке VBA в среде Excel 5.0, представлены в табл. 19.3.

Таблица 19.3. Перечень наборов VBA Excel 5.0

Имя набора

Вид объектов в наборе

Sheets

Все листы любых типов в рабочей книге

Workbooks

Все текущие открытые рабочие книги

Worksheets

Все таблицы в рабочей книге

Charts

Все листы диаграмм в рабочей книге

Range

Диапазон ячеек таблицы (строк, столбцов, несмежных ячеек, трехмерных

 

выделений)

Доступ к компоненту набора осуществляется двумя способами: 1) по номеру компонента

Пример 19.5.

Workbooks("Имя_книги").Worksheets(2)

2) по имени компонента

Пример 19.6.

Workbooks ("Имя_книги").Worksheets ("Имя-лиcтa")

Наборы обладают следующими свойствами:

Count – определяет число компонентов в наборе; Name – определяет имя компонента;

Parent – определяет имя объекта, включающего набор.

Для добавления и удаления компонентов набора используют методы Add и Delete. Отдельные ячейки таблицы доступны через объект Range и следующие методы:

1. Cell в качестве аргументов указываются два целых числа, определяющих местоположение

577

отдельной ячейки таблицы Cell (число1; число2)

Пример 19.7.

Cell(l;2).Value=5

Присваивает ячейке В2 текущего рабочего листа активной рабочей книги значение 5;

Cells(2, l).Formula= "=SUM(B1:B5)"

Записывает в ячейку А2 формулу суммирования значений в ячейках В1:В5.

2. Range работа с прямоугольной областью ячеек, в качестве аргументов используется одна или две ссылки на ячейки таблицы в стиле А1:

Range ("A2";"G10")

Range ("f4")

либо на блок ячеек по их имени.

Пример 19.8.

Worksheets("PRIMTR"). Range("A10"; "F12").Value=10

Присвоение блоку ячеек постоянного значения 10. Range("D15").Value = "Test"

Присвоение ячейке текущего рабочего листа активной рабочей книги значения "Test".

Range("Criteria").ClearContents

Очистка содержимого именованного блока ячеек текущего рабочего листа активной рабочей книги.

Примечание. Можно использовать форму записи

Range(Cells(1; 1); Cells(2; 2)).

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

Пример 19.9.

Selection.Offset(2, 5). Select

Относительно текущей ячейки, например, А1, происходит смещение в ячейку F3.

["Адрес_ячейки"] – краткая ссылка на ячейку по ее адресу.

4. Union метод множественного выделения областей ячеек Union (область1; область2). Каждую область формируют с помощью метода Range.

Пример 19.10.

Union(Range(Cells(l; l);Cells(2; 2)); Range(Cells(5; 5); Cells(7; 7)).Select

Выделяет области ячеек: А1:В2, E5:G7.

Встроенные типы данных

VBA использует 11 встроенных типов данных (табл. 19.4).

Boolean использует 2 байта, или 16 бит, памяти для хранения логических данных; имеет два возможных значения: True и False.

Integer использует 2 байта памяти для хранения целых чисел, в том числе 1 бит для хранения знака числа, 15 бит для числа.

Long использует 4 байта, или 32 бита, памяти для хранения целого числа двойной точности, в том числе 1 бит для хранения знака числа, 31 бит для числа.

578

Single использует 4 байта для раздельного хранения мантиссы (цифровая часть числа максимум 7 знаков) и порядка (расположение десятичной точки).

Double использует 8 байтов для раздельного хранения мантиссы (максимум 15 знаков) и порядка. Currency использует 8 байтов, десятичная точка всегда располагается между 4 и 5 цифрами справа,

обеспечивает автоматическое округление результатов вычислений.

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

String использует 1 байт для хранения 1 символа плюс 1 байт для отметки конца строки. Символы хранятся в виде кодов ANSI.

Object использует 4 байта памяти для ссылки на любой объект Visual Basic. Array определяет список данных любого типа и любой размерности.

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

Таблица 19.4. Встроенные типы данных VBA

Переменные

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

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

Пример 19.11.

Разрешенное имя

Неразрешенное имя

Комментарий

переменной

переменной

 

ПРИмер; приМЕР;

 

Нет различия прописных и

EXAMPLE; example

 

строчных букв, кириллицы и

 

 

латиницы в написании имен

Тарифная_ставка_1_разряда;

 

Для улучшения семантики

Tax_off_l_class

 

переменные могут состоять из

 

 

отдельных слов, соединенных

 

 

знаком _

579

 

Тарифная ставка $;

Нельзя использовать пробелы в

 

#room;

имени переменной, а также

 

Class&subclass

специальные символы типа:

 

 

#$%&!

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

Каждая переменная имеет определенный тип значений и сферу действия, в противном случае ей приписывается тип Variant. На рис. 19.21 показана сфера действия переменных.

Рис. 19.21. Сфера действия переменных в программе на языке VBA

Переменные, объявленные только в процедуре, действуют в пределах процедуры. Объявление переменной на уровне модуля делает ее доступной для всех процедур модуля. При этом допускается переопределение имени переменной во вложенных процедурах. Для использования переменной во всех вложенных процедурах и модулях она объявляется глобальной на уровне внешнего модуля (например, переменная Var0 доступна всем вложенным модулям и их процедурам).

Пример 19.12. Переменные var4, var5 используются только в самих процедурах. Переменная var2 объявлена в процедурах 1 и 2. Это

соответствует двум различным переменным с одинаковым именем и своей сферой действия (они имеют разные значения и/или типы данных, независимы друг от друга).

Переменные на уровне модуля, var1 – в модуле 1 и var3 – в модуле 2, используются во всех вложенных в модуль процедурах. Переменная var1 предопределена в процедуре 1, но сохраняет свое значение в процедуре 2; переменная var3 предопределена в процедуре 3.

Переменные в модуле объявляются с помощью операторов различных типов:

локальные переменные

Dim <var> As <type>, <var> As <type>, <var> As <type>, ....

глобальные переменные

Public <var> As <type>, <var> As <type>, <var> As <type>, ....

где <var> – имя переменной;

<type> – встроенный тип данных переменной.

Массивы переменных

Массивы переменных имеют произвольную размерность одномерные, двухмерные, трехмерные и

580