Чтение онлайн

на главную - закладки

Жанры

VBA для чайников

Каммингс Стив

Шрифт:

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

* Насколько быстро должен выполняться программный код проверки?

* В какой момент нужно информировать об ошибке пользователя- в момент появления неправильного значения или уже после того, как пользователь закончит формирование вводимых данных?

* Основывается ли проверка на значениях, полученных от нескольких элементов управления?

Часть III Практикуемся в программировании на VBA

В этой части...

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

силы, вам пора изучить материал части III В главе 11 рассматриваются встроенные функции и операторы VBA; я не рекомендую вам создавать собственную процедуру, если встроенная функция сможет выполнить те же действия всего в одну строку. В главе 12 мы поговорим об использовании объектов. В главе 13 мы еще раз затронем тему управления данными, однако на этот раз речь будет идти о таких сложных вопросах, как использование массивов и коллекций.

Глава 11. Инструменты встроенного оркестра VBA.

В этой главе ...

~ Использование встроенных команд вместо нового изобретения программирования

~ Безопасное форматирование данных с помощью функции Format

~ Преобразование данных одних типов в другие

~ Работа с текстовыми строками

~ Забавы с датами и временем

~ Использование математических и финансовых функций

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

Знакомство со встроенными командами

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

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

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

* Операторы. Хотя термин оператор уже используется для обозначения целой программной директивы (см. главу 7), VBA называет операторами и отдельные ключевые слова, выполняющие специальные задачи. Некоторые из таких ключевых слов функционируют сами по себе как целые операторы. Например, оператор Веер заставляет динамик компьютера издавать звук. Другие же должны использоваться как составные части законченных операторов. Например, оператор ChDi r (перейти в каталог) бесполезен без аргумента, задающего каталог или папку, куда нужно перейти:

ChDir("\Отчеты о мечтаниях ")

* Функции. Встроенные функции работают точно так же, как и процедуры типа Function, обсуждавшиеся в главе 7,- в том смысле, что они возвращают значение. Использование функции часто заключается в присваивании ее значения переменной, как в следующем примере с функцией Tan (тангенс):

dblТангенс = Tan (dblЛюбойУгол)

Функции могут также обеспечивать значения для более сложных выражений или условных операторов, например:

If Tan (dblОстрыйУгол) < 45 Then

*

Методы встроенных объектов. В этой группе курьезно выглядит метод Print, единственный для объекта Debug и предназначенный для направления вывода в окно немедленного выполнения команд (окно Immediate) в редакторе Visual Basic. Для этого используются операторы типа

Debug.Print (strПосланиеМарсианина)

* Лично я не вижу никаких преимуществ в связывании команды Print с объектом, но сам по себе метод Print оказывается очень полезным. Подробно он обсуждается в главе 14. Здесь же замечу, что, хотя VBA и не инкапсулирует файлы, как объекты, можно дополнительно установить программную надстройку, которая позволит управлять файлами и работать с их содержимым на основе объектно-ориентированного подхода (подробности - в главе 12).

В табл. 11.1 приводятся некоторые из встроенных VBA-команд, взятые для примера и относящиеся к различным категориям (операторы, функции, методы). Дальше в главе будут рассматриваться чаще всего используемые встроенные команды.

Таблица 11.1. Примеры встроенных функций, операторов и методов

Команда

Тип

Выполняемые действия

Randomize

Оператор

Инициализирует генератор случайных чисел

Sqr ( число)

Функция

Возвращает значение квадратного корня числа

Format ( строка )

Функция

Форматирует строку в соответствии с заданным описанием

Date

Оператор

Устанавливает системную дату

Date

Функция

Возвращает текущую системную дату

Err . Raise

Метод объекта Err

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

Форматирование данных

VBA-функции Format форматируют данные любого из встроенных типов по указанному образцу для отображения их на экране или на печати. С помощью этих функций очень просто отображать значения дат в виде короткого (19.12.99), среднего (19-дек-99) или длинного формата даты (19 декабря 1999 г.), или любого из нескольких других предлагаемых VBA форматов (VBA хранит значения дат в виде совершенно неудобоваримых чисел). Подобные трюки можно выполнять и с числовыми значениями, и со строками. На самом деле Format конвертирует предложенное вами значение в новую строку, добавляя в нее символы, необходимые для представления данных в нужном виде.

Функция Format предлагается и в VBA 5, и в VBA 6, однако VBA 6 может похвастать еще четырьмя новыми родственными функциями, каждая из которых предназначена для своего конкретного типа данных.

Работа с функцией Format

Функция Format, имеющаяся в VBA 5 и VBA 6,- невероятно гибкая. Она применима практически к любым типам данных и имеет настраиваемый вывод- если ни один из встроенных форматов не подойдет, вы можете создать свой, какой пожелаете.

Поделиться:
Популярные книги

Часовая башня

Щерба Наталья Васильевна
3. Часодеи
Фантастика:
фэнтези
9.43
рейтинг книги
Часовая башня

Попаданка в Измену или замуж за дракона

Жарова Анита
Любовные романы:
любовно-фантастические романы
6.25
рейтинг книги
Попаданка в Измену или замуж за дракона

На границе империй. Том 9. Часть 3

INDIGO
16. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 9. Часть 3

Жена на пробу, или Хозяйка проклятого замка

Васина Илана
Фантастика:
попаданцы
фэнтези
5.00
рейтинг книги
Жена на пробу, или Хозяйка проклятого замка

Ваше Сиятельство

Моури Эрли
1. Ваше Сиятельство
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Ваше Сиятельство

Восход. Солнцев. Книга I

Скабер Артемий
1. Голос Бога
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Восход. Солнцев. Книга I

Инвестиго, из медика в маги

Рэд Илья
1. Инвестиго
Фантастика:
фэнтези
городское фэнтези
попаданцы
5.00
рейтинг книги
Инвестиго, из медика в маги

Надуй щеки!

Вишневский Сергей Викторович
1. Чеболь за партой
Фантастика:
попаданцы
дорама
5.00
рейтинг книги
Надуй щеки!

Случайная свадьба (+ Бонус)

Тоцка Тала
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Случайная свадьба (+ Бонус)

Газлайтер. Том 5

Володин Григорий
5. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Газлайтер. Том 5

Мастер Разума III

Кронос Александр
3. Мастер Разума
Фантастика:
героическая фантастика
попаданцы
аниме
5.25
рейтинг книги
Мастер Разума III

Наследник 2

Шимохин Дмитрий
2. Старицкий
Фантастика:
попаданцы
альтернативная история
фэнтези
5.75
рейтинг книги
Наследник 2

Неучтенный. Дилогия

Муравьёв Константин Николаевич
Неучтенный
Фантастика:
боевая фантастика
попаданцы
7.98
рейтинг книги
Неучтенный. Дилогия

Светлая тьма. Советник

Шмаков Алексей Семенович
6. Светлая Тьма
Фантастика:
юмористическое фэнтези
городское фэнтези
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Светлая тьма. Советник