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

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

 

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

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

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

заданное число листов в рабочей книге;

шрифт основного текста;

стиль ссылок;

режимы правки и др.

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

Автошаблон– шаблон со специальным именем, расположенный в стартовом или альтернативном стартовом каталогах.

 

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

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

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

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

выделяется лист, слева от которого вставляется новый лист на основе шаблона;

правая кнопка мыши вызывает контекстное меню ярлычка выделенного листа;

выполняется команда ВСТАВКАконтекстного меню;

из списка типов листов (рис. 19.19) выбирается требуемый, нажимается кнопка <ОК>.

 

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

СОЗДАНИЕ ПРИЛОЖЕНИЙ НА ЯЗЫКЕ 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).

Рис. 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 – в качестве аргументов указываются два целых числа, определяющих местоположение отдельной ячейки таблицы – 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 бит – для числа.

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   Для улучшения семантики переменные могут состоять из отдельных слов, соединенных знаком _
  Тарифная ставка $; #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> – встроенный тип данных переменной.

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

 

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

локальный массив

 

Dim <Arr> (размерность) As <type>

 

глобальный массив

 

Public <Arr> (размерность) As <type>

 

где <Arr> – имя массива,

(размерность) – размерность массива.

Пример 19.13.