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

ЖАНРЫ

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

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

Шрифт:

Таблица 11.8. Финансовые функции VBA

Функция

Возвращаемое значение

DDB(стоимость, остаток, период)

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

FV(ставка, кпер, плата, сумма)

Будущее значение вклада на основе периодических постоянных платежей и постоянной процентной ставки

Impt(ставка, период, кпер, сумма)

Величина выплаты за указанный период на основе периодических постоянных платежей и постоянной процентной ставки

IRR(значения)

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

MIRR(значения, фин_ставка, реинвест_ставка)

Модифицированная внутренняя скорость оборота средств для ряда последовательных периодических операций с наличными

Nper(ставка, платеж, сумма)

Общее количество периодов выплаты для данного вклада на основе периодических постоянных выплат и постоянной процентной ставки

NPV(ставка,

значения)

Чистый текущий объем вклада, используя учетную ставку, а также объемы будущих платежей (отрицательные значения) и поступлений (положительные значения)

Pmt(ставка, кпер, сумма)

Величина выплаты по ссуде на основе постоянных выплат и постоянной процентной ставки

PPmt

Платежи по процентам за данный период на основе периодических постоянных выплат и постоянной процентной ставки

РУ(ставка, кпер, плата)

Текущий объем вклада на основе периодических постоянных платежей и постоянной процентной ставки

Rate(кпер, плата, сумма)

Процентная ставка за один период при выплате ренты

SLN(стоимость, остаток, период)

Величина непосредственной амортизации имущества за один период

SYD(стоимость, остаток, жизнь, период)

Годовая амортизация имущества для указанного периода

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

Таблица 11.9. Различные встроенные команды VBA

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

Имя

Функция или оператор

Выполняемые действия (для операторов) и возвращаемые значения (для функций)

Работа с файлами

ChDir (путь)

Оператор

Изменяет текущий каталог (папку), но не активный диск

ChDrive(имя диска)

Оператор

Изменяет активный диск

CurDir

Функция

Текущий путь (диск и имя каталога) в виде строки

Dir(путь)

Функция

Имя первого файла или каталога, соответствующего аргументу путь, который может содержать подстановочные символы

FileCopy источник, цель

Оператор

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

FileDateTime(путь)

Функция

Значение типа Date с датой и временем создания или последнего изменения файла, заданного аргументом путь

FileLen(путь)

Функция

Длина (в байтах) файла заданного аргументом путь

GetAttr(путь)

Функция

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

Kill путь

Оператор

Удаляет один или больше файлов с диска (аргумент путь может содержать подстановочные символы)

MkDir путь

Оператор

Создает новый каталог

Name старый путь As новый путь

Оператор

Переименовывает и/или перемещает дисковый файл, каталог или папку

RmDir путь

Оператор

Удаляет каталог

SetAttr путь, атрибуты

Оператор

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

Разное

AppActivate название, ожидание

Оператор

Активизирует другое выполняемое приложение. Если необязательный аргумент ожидание имеет значение True, то VBA будет ждать, пока ваша программа не получит фокус ввода

Beep

Оператор

Извлекает звук с помощью громкоговорителя компьютера

Choose(индекс, вариант1, вариант2,

... варианты )

Функция

Значение объекта из списка аргументов вариант1, вариант2, ... варианты, определяемого аргументом индекс (индекс должен задавать число)

DoEvents

Функция

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

Environ (строка) Environ (число)

Функции

Содержимое переменной окружения, заданной строкой с именем или числом, определяющим позицию

RGB(красный, зеленый, синий)

Функция

Целое число, представляющее RGB-значение цвета, заданного компонентами красный, зеленый, синий (используйте это значение для установки цветовых свойств объектов)

Randomize

Оператор

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

Rnd(число)

Функция

Случайное значение; аргумент число необязателен

SendKeys строка, ожидание

Оператор

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

Работа с реестром Windows

Shell (путь)

Функция

Пытается

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

DeleteSetting Оператор имя_приложения, раздел, параметр

Удаляет элемент реестра

Get All Settings (имя_приложения, раздел)

Функция

Значение типа Variant, содержащее список всех установок для указанного раздела приложения в реестре Windows (в виде двумерного массива)

Get Setting (имя_приложения, раздел, параметр)

Функция

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

SaveSetting имя_приложения, раздел, параметр, значение

Оператор

Сохраняет значение в реестре

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

Spc(число)

Функция

Не возвращает никаких полезных значений, используется для размещения указанного числа пробелов в потоке вывода оператора Print # или метода Debug.Print

Tab(столбец)

Функция

Не возвращает никаких полезных значений, смещает поток вывода оператора Print # или метода Debug.

Работа с переменными

IsDate (переменная)

IsNumeric(переменная)

IsObject(переменная)

IsArray(переменная)

IsNull(переменная)

IsEmpty(переменная)

Функции

True, если переменная имеет соответствующий тип или содержит значение соответствующего типа; иначе False

Len (переменная)

Функция

Число байтов, необходимое для хранения информации, помещенной в переменную

TypeName (переменная)

Функция

Строка, представляющая тип переменной

VarType (переменная)

Функция

Целое число, представляющее подчиненный тип переменной

Глава 12. Объектно-ориентированное программирование.

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

~ Концептуализация объектов

~ Понимание свойств, методов и событий - главных компонентов VBA-объектов

~ Работа с объектными моделями

~ Использование форм как объектов

~ Выяснение и установка свойств объектов

~ Вызов методов

~ Использование ссылок на объект для идентификации объекта, с которым нужно работать

~ Присваивание переменным ссылок на объект

~ Создание своих собственных объектов с помощью модулей классов

~ Эффективное использование объектов с помощью операторов For Each ... Next и With

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

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

Что такое объект

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

Объекты как компоненты VBA-приложений

Начать изучение объектов лучше всего с рассмотрения их как частей VBA приложения и его документов. Любой элемент графики (shape) в Visio является объектом, равно как и любая связь (connect), установленная между двумя такими элементами графики (рис. 12.1). Точно так же объектами являются и слои, на которых размещаются элементы графики, и страницы, на которых располагаются слои. Объектом будет и сам документ, содержащий все эти страницы, слои, элементы графики и связи.

Рис. 12. l Примеры объектов VBA

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

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

"Что такое объектная модель", а пока что мы сконцентрируем внимание на обсуждении понятия индивидуального объекта.

Объекты на уровне понятий

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

Правда, кроме таких конкретных объектов, VBA-приложения предлагают и более абстрактные.

* в Microsoft Excel объект CustomView задает пользовательское представление рабочей книги (в Excel пользовательское представление определяет внешний вил рабочей книги на экране и ее параметры печати).

* В Microsoft Word объект File Search представляет, как сказано в соответствующем разделе справки, "функциональные возможности диалогового окна Открытие документа (меню Файл)". Обратите внимание, этот объект представляет не само диалоговое окно, а его функциональные возможности.

* В Visio объект Style представляет атрибуты линий, текста и заливки для графических элементов.

* В VBA имеется несколько объектов, доступных для всех VBA-приложениЙ. Так, например, объект Collection представляет контейнер для переменных или других объектов, с которыми, независимо от типов этих объектов, предполагается работать как с единым целым.

Практическое определение объекта

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

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

* свойства, т.е. установки, которые можно проверить и изменить;

* методы, т.е. действия, которые может выполнить объект, когда программа попросит об этом;

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

Если вам не чуждо чувство прекрасного, вы можете заметить, что для таких щедро одаренных созданий термин объект не очень-то подходит, поскольку эти объекты больше похожи на братьев наших меньших, чем на инертные лампы. У тигров и китов есть отличительные особенности глаз, конечностей и хвостов, а у объектов - свойства. Лошади и собаки умеют по команде выполнять разные трюки или убегать от опасности, а объекты имеют методы и события.

Поделиться с друзьями: